You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
|
|
|
#ifndef _ASM_X86_SEGMENT_H_
|
|
|
|
#define _ASM_X86_SEGMENT_H_
|
|
|
|
|
|
|
|
#ifdef CONFIG_X86_32
|
|
|
|
# include "segment_32.h"
|
|
|
|
#else
|
|
|
|
# include "segment_64.h"
|
|
|
|
#endif
|
|
|
|
|
|
|
|
#ifndef CONFIG_PARAVIRT
|
|
|
|
#define get_kernel_rpl() 0
|
|
|
|
#endif
|
|
|
|
|
|
|
|
/* User mode is privilege level 3 */
|
|
|
|
#define USER_RPL 0x3
|
|
|
|
/* LDT segment has TI set, GDT has it cleared */
|
|
|
|
#define SEGMENT_LDT 0x4
|
|
|
|
#define SEGMENT_GDT 0x0
|
|
|
|
|
|
|
|
/* Bottom two bits of selector give the ring privilege level */
|
|
|
|
#define SEGMENT_RPL_MASK 0x3
|
|
|
|
/* Bit 2 is table indicator (LDT/GDT) */
|
|
|
|
#define SEGMENT_TI_MASK 0x4
|
|
|
|
|
|
|
|
#define IDT_ENTRIES 256
|
|
|
|
#define GDT_SIZE (GDT_ENTRIES * 8)
|
|
|
|
#define GDT_ENTRY_TLS_ENTRIES 3
|
|
|
|
#define TLS_SIZE (GDT_ENTRY_TLS_ENTRIES * 8)
|
|
|
|
|
|
|
|
#endif
|