From f6a2e7f2012eeced1dbf093bb98a1c38fee91f78 Mon Sep 17 00:00:00 2001 From: Thomas Gleixner Date: Wed, 17 Oct 2007 18:04:40 +0200 Subject: x86: unify include/asm/ldt_32/64.h The additional struct member of user_desc can be made conditional for 64 bit compiles. Signed-off-by: Thomas Gleixner Signed-off-by: Ingo Molnar --- include/asm-x86/Kbuild | 2 -- include/asm-x86/ldt.h | 51 ++++++++++++++++++++++++++++++++++++------------ include/asm-x86/ldt_32.h | 32 ------------------------------ include/asm-x86/ldt_64.h | 36 ---------------------------------- 4 files changed, 39 insertions(+), 82 deletions(-) delete mode 100644 include/asm-x86/ldt_32.h delete mode 100644 include/asm-x86/ldt_64.h diff --git a/include/asm-x86/Kbuild b/include/asm-x86/Kbuild index 30f22442872..a0c0b80c7f2 100644 --- a/include/asm-x86/Kbuild +++ b/include/asm-x86/Kbuild @@ -4,8 +4,6 @@ header-y += boot.h header-y += debugreg_32.h header-y += debugreg_64.h header-y += debugreg.h -header-y += ldt_32.h -header-y += ldt_64.h header-y += ldt.h header-y += msr-index.h header-y += prctl.h diff --git a/include/asm-x86/ldt.h b/include/asm-x86/ldt.h index 3d9cc20d2ba..20c597242b5 100644 --- a/include/asm-x86/ldt.h +++ b/include/asm-x86/ldt.h @@ -1,13 +1,40 @@ -#ifdef __KERNEL__ -# ifdef CONFIG_X86_32 -# include "ldt_32.h" -# else -# include "ldt_64.h" -# endif -#else -# ifdef __i386__ -# include "ldt_32.h" -# else -# include "ldt_64.h" -# endif +/* + * ldt.h + * + * Definitions of structures used with the modify_ldt system call. + */ +#ifndef _ASM_X86_LDT_H +#define _ASM_X86_LDT_H + +/* Maximum number of LDT entries supported. */ +#define LDT_ENTRIES 8192 +/* The size of each LDT entry. */ +#define LDT_ENTRY_SIZE 8 + +#ifndef __ASSEMBLY__ +/* + * Note on 64bit base and limit is ignored and you cannot set DS/ES/CS + * not to the default values if you still want to do syscalls. This + * call is more for 32bit mode therefore. + */ +struct user_desc { + unsigned int entry_number; + unsigned int base_addr; + unsigned int limit; + unsigned int seg_32bit:1; + unsigned int contents:2; + unsigned int read_exec_only:1; + unsigned int limit_in_pages:1; + unsigned int seg_not_present:1; + unsigned int useable:1; +#ifdef __x86_64__ + unsigned int lm:1; +#endif +}; + +#define MODIFY_LDT_CONTENTS_DATA 0 +#define MODIFY_LDT_CONTENTS_STACK 1 +#define MODIFY_LDT_CONTENTS_CODE 2 + +#endif /* !__ASSEMBLY__ */ #endif diff --git a/include/asm-x86/ldt_32.h b/include/asm-x86/ldt_32.h deleted file mode 100644 index e9d3de1dee6..00000000000 --- a/include/asm-x86/ldt_32.h +++ /dev/null @@ -1,32 +0,0 @@ -/* - * ldt.h - * - * Definitions of structures used with the modify_ldt system call. - */ -#ifndef _LINUX_LDT_H -#define _LINUX_LDT_H - -/* Maximum number of LDT entries supported. */ -#define LDT_ENTRIES 8192 -/* The size of each LDT entry. */ -#define LDT_ENTRY_SIZE 8 - -#ifndef __ASSEMBLY__ -struct user_desc { - unsigned int entry_number; - unsigned long base_addr; - unsigned int limit; - unsigned int seg_32bit:1; - unsigned int contents:2; - unsigned int read_exec_only:1; - unsigned int limit_in_pages:1; - unsigned int seg_not_present:1; - unsigned int useable:1; -}; - -#define MODIFY_LDT_CONTENTS_DATA 0 -#define MODIFY_LDT_CONTENTS_STACK 1 -#define MODIFY_LDT_CONTENTS_CODE 2 - -#endif /* !__ASSEMBLY__ */ -#endif diff --git a/include/asm-x86/ldt_64.h b/include/asm-x86/ldt_64.h deleted file mode 100644 index 9ef647b890d..00000000000 --- a/include/asm-x86/ldt_64.h +++ /dev/null @@ -1,36 +0,0 @@ -/* - * ldt.h - * - * Definitions of structures used with the modify_ldt system call. - */ -#ifndef _LINUX_LDT_H -#define _LINUX_LDT_H - -/* Maximum number of LDT entries supported. */ -#define LDT_ENTRIES 8192 -/* The size of each LDT entry. */ -#define LDT_ENTRY_SIZE 8 - -#ifndef __ASSEMBLY__ -/* Note on 64bit base and limit is ignored and you cannot set - DS/ES/CS not to the default values if you still want to do syscalls. This - call is more for 32bit mode therefore. */ -struct user_desc { - unsigned int entry_number; - unsigned int base_addr; - unsigned int limit; - unsigned int seg_32bit:1; - unsigned int contents:2; - unsigned int read_exec_only:1; - unsigned int limit_in_pages:1; - unsigned int seg_not_present:1; - unsigned int useable:1; - unsigned int lm:1; -}; - -#define MODIFY_LDT_CONTENTS_DATA 0 -#define MODIFY_LDT_CONTENTS_STACK 1 -#define MODIFY_LDT_CONTENTS_CODE 2 - -#endif /* !__ASSEMBLY__ */ -#endif -- cgit v1.2.3