linux/arch/x86/include/uapi/asm/ldt.h
<<
>>
Prefs
   1/*
   2 * ldt.h
   3 *
   4 * Definitions of structures used with the modify_ldt system call.
   5 */
   6#ifndef _ASM_X86_LDT_H
   7#define _ASM_X86_LDT_H
   8
   9/* Maximum number of LDT entries supported. */
  10#define LDT_ENTRIES     8192
  11/* The size of each LDT entry. */
  12#define LDT_ENTRY_SIZE  8
  13
  14#ifndef __ASSEMBLY__
  15/*
  16 * Note on 64bit base and limit is ignored and you cannot set DS/ES/CS
  17 * not to the default values if you still want to do syscalls. This
  18 * call is more for 32bit mode therefore.
  19 */
  20struct user_desc {
  21        unsigned int  entry_number;
  22        unsigned int  base_addr;
  23        unsigned int  limit;
  24        unsigned int  seg_32bit:1;
  25        unsigned int  contents:2;
  26        unsigned int  read_exec_only:1;
  27        unsigned int  limit_in_pages:1;
  28        unsigned int  seg_not_present:1;
  29        unsigned int  useable:1;
  30#ifdef __x86_64__
  31        unsigned int  lm:1;
  32#endif
  33};
  34
  35#define MODIFY_LDT_CONTENTS_DATA        0
  36#define MODIFY_LDT_CONTENTS_STACK       1
  37#define MODIFY_LDT_CONTENTS_CODE        2
  38
  39#endif /* !__ASSEMBLY__ */
  40#endif /* _ASM_X86_LDT_H */
  41