#ifndef __SEGMENT_DESCRIPTOR_H | |
#define __SEGMENT_DESCRIPTOR_H | |
struct segment_descriptor { | |
u16 limit_low; | |
u16 base_low; | |
u8 base_mid; | |
u8 type : 4; | |
u8 system : 1; | |
u8 dpl : 2; | |
u8 present : 1; | |
u8 limit_high : 4; | |
u8 avl : 1; | |
u8 long_mode : 1; | |
u8 default_op : 1; | |
u8 granularity : 1; | |
u8 base_high; | |
} __attribute__((packed)); | |
#ifdef CONFIG_X86_64 | |
/* LDT or TSS descriptor in the GDT. 16 bytes. */ | |
struct segment_descriptor_64 { | |
struct segment_descriptor s; | |
u32 base_higher; | |
u32 pad_zero; | |
}; | |
#endif | |
#endif |