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 <tglx@linutronix.de> Signed-off-by: Ingo Molnar <mingo@elte.hu>
This commit is contained in:
parent
686d8c63d5
commit
f6a2e7f201
@ -4,8 +4,6 @@ header-y += boot.h
|
|||||||
header-y += debugreg_32.h
|
header-y += debugreg_32.h
|
||||||
header-y += debugreg_64.h
|
header-y += debugreg_64.h
|
||||||
header-y += debugreg.h
|
header-y += debugreg.h
|
||||||
header-y += ldt_32.h
|
|
||||||
header-y += ldt_64.h
|
|
||||||
header-y += ldt.h
|
header-y += ldt.h
|
||||||
header-y += msr-index.h
|
header-y += msr-index.h
|
||||||
header-y += prctl.h
|
header-y += prctl.h
|
||||||
|
@ -1,13 +1,40 @@
|
|||||||
#ifdef __KERNEL__
|
/*
|
||||||
# ifdef CONFIG_X86_32
|
* ldt.h
|
||||||
# include "ldt_32.h"
|
*
|
||||||
# else
|
* Definitions of structures used with the modify_ldt system call.
|
||||||
# include "ldt_64.h"
|
*/
|
||||||
# endif
|
#ifndef _ASM_X86_LDT_H
|
||||||
#else
|
#define _ASM_X86_LDT_H
|
||||||
# ifdef __i386__
|
|
||||||
# include "ldt_32.h"
|
/* Maximum number of LDT entries supported. */
|
||||||
# else
|
#define LDT_ENTRIES 8192
|
||||||
# include "ldt_64.h"
|
/* The size of each LDT entry. */
|
||||||
# endif
|
#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
|
#endif
|
||||||
|
@ -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
|
|
@ -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
|
|
Loading…
Reference in New Issue
Block a user