diff options
Diffstat (limited to 'arch/x86/um/shared/sysdep/tls.h')
-rw-r--r-- | arch/x86/um/shared/sysdep/tls.h | 39 |
1 files changed, 39 insertions, 0 deletions
diff --git a/arch/x86/um/shared/sysdep/tls.h b/arch/x86/um/shared/sysdep/tls.h new file mode 100644 index 000000000000..27cce00c6b30 --- /dev/null +++ b/arch/x86/um/shared/sysdep/tls.h | |||
@@ -0,0 +1,39 @@ | |||
1 | #ifndef _SYSDEP_TLS_H | ||
2 | #define _SYSDEP_TLS_H | ||
3 | |||
4 | # ifndef __KERNEL__ | ||
5 | |||
6 | /* Change name to avoid conflicts with the original one from <asm/ldt.h>, which | ||
7 | * may be named user_desc (but in 2.4 and in header matching its API was named | ||
8 | * modify_ldt_ldt_s). */ | ||
9 | |||
10 | typedef struct um_dup_user_desc { | ||
11 | unsigned int entry_number; | ||
12 | unsigned int base_addr; | ||
13 | unsigned int limit; | ||
14 | unsigned int seg_32bit:1; | ||
15 | unsigned int contents:2; | ||
16 | unsigned int read_exec_only:1; | ||
17 | unsigned int limit_in_pages:1; | ||
18 | unsigned int seg_not_present:1; | ||
19 | unsigned int useable:1; | ||
20 | #ifdef __x86_64__ | ||
21 | unsigned int lm:1; | ||
22 | #endif | ||
23 | } user_desc_t; | ||
24 | |||
25 | # else /* __KERNEL__ */ | ||
26 | |||
27 | typedef struct user_desc user_desc_t; | ||
28 | |||
29 | # endif /* __KERNEL__ */ | ||
30 | |||
31 | extern int os_set_thread_area(user_desc_t *info, int pid); | ||
32 | extern int os_get_thread_area(user_desc_t *info, int pid); | ||
33 | |||
34 | #ifdef __i386__ | ||
35 | #define GDT_ENTRY_TLS_MIN_I386 6 | ||
36 | #define GDT_ENTRY_TLS_MIN_X86_64 12 | ||
37 | #endif | ||
38 | |||
39 | #endif /* _SYSDEP_TLS_H */ | ||