30 lines
526 B
C
30 lines
526 B
C
#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
|