Rev 1113 | Go to most recent revision | Show entire file | Ignore whitespace | Details | Blame | Last modification | View Log | RSS feed
| Rev 1113 | Rev 1129 | ||
|---|---|---|---|
| Line 29... | Line 29... | ||
| 29 | #ifndef __LIBC__amd64THREAD_H__ |
29 | #ifndef __LIBC__amd64THREAD_H__ |
| 30 | #define __LIBC__amd64THREAD_H__ |
30 | #define __LIBC__amd64THREAD_H__ |
| 31 | 31 | ||
| 32 | #include <libc.h> |
32 | #include <libc.h> |
| 33 | 33 | ||
| - | 34 | typedef struct { |
|
| - | 35 | void *self; |
|
| - | 36 | void *pst_data; |
|
| - | 37 | } tcb_t; |
|
| - | 38 | ||
| 34 | static inline void __tls_set(void *tls) |
39 | static inline void __tcb_set(tcb_t *tcb) |
| 35 | { |
40 | { |
| 36 | __SYSCALL1(SYS_TLS_SET, (sysarg_t) tls); |
41 | __SYSCALL1(SYS_TLS_SET, (sysarg_t) tcb); |
| 37 | } |
42 | } |
| 38 | 43 | ||
| 39 | static inline void * __tls_get(void) |
44 | static inline tcb_t * __tcb_get(void) |
| 40 | { |
45 | { |
| 41 | void * retval; |
46 | void * retval; |
| 42 | 47 | ||
| 43 | __asm__ ("movq %%fs:0, %0" : "=r"(retval)); |
48 | __asm__ ("movq %%fs:0, %0" : "=r"(retval)); |
| 44 | return retval; |
49 | return retval; |