am 71e0b240: am 41ba05e2: Merge "x86_64: Fix get_tls and statvfs"

* commit '71e0b240ed980e77f736be2a27d255d64747b388':
  x86_64: Fix get_tls and statvfs
This commit is contained in:
Elliott Hughes 2013-10-04 09:58:23 -07:00 committed by Android Git Automerger
commit 9d3b4b48d8
2 changed files with 14 additions and 1 deletions

View file

@ -18,8 +18,15 @@
#include <sys/statfs.h>
extern "C" int __statfs64(const char*, size_t, struct statfs*);
// Paper over the fact that 32-bit kernels use fstatfs64/statfs64 with an extra argument,
// but 64-bit kernels don't have the "64" bit suffix or the extra size_t argument.
#if __LP64__
# define __fstatfs64(fd,size,buf) fstatfs(fd,buf)
# define __statfs64(path,size,buf) statfs(path,buf)
#else
extern "C" int __fstatfs64(int, size_t, struct statfs*);
extern "C" int __statfs64(const char*, size_t, struct statfs*);
#endif
#define ST_VALID 0x0020

View file

@ -106,6 +106,12 @@ extern int __set_tls(void* ptr);
({ register void* __val; \
asm ("movl %%gs:0, %0" : "=r"(__val)); \
(volatile void*) __val; })
#elif defined(__x86_64__)
# define __get_tls() \
({ register void* __val; \
asm ("mov %%fs:0, %0" : "=r"(__val)); \
(volatile void*) __val; })
#else
#error unsupported architecture
#endif