|
miniOS
x86_64 hobby kernel with SMP, VFS, and POSIX process model
|
#include <miniOS/types.h>

Go to the source code of this file.
Classes | |
| struct | segment_descriptor |
Functions | |
| struct segment_descriptor | __attribute__ ((__packed__)) |
Variables | |
| uint16_t | limit_15_0 |
| uint16_t | base_addr_15_0 |
| uint8_t | base_addr_23_16 |
| uint8_t | access |
| uint8_t | limit_19_16 |
| uint8_t | u |
| uint8_t | long_mode |
| uint8_t | size |
| uint8_t | granularity |
| uint8_t | base_addr_31_24 |
| #define __BUILD_SEG_DESC | ( | base_addr, | |
| limit, | |||
| _access, | |||
| _long_mode, | |||
| _size, | |||
| _granularity ) |
| #define GDT_CS SEG_REG_VAL(KERN_PRIVILEGE_LEVEL, 0, GDT_CS_INDEX) |
| #define GDT_CS_INDEX 1 |
| #define GDT_CS_TYPE 0x9A |
| #define GDT_DS SEG_REG_VAL(KERN_PRIVILEGE_LEVEL, 0, GDT_DS_INDEX) |
| #define GDT_DS_INDEX 2 |
| #define GDT_DS_TYPE 0x92 |
| #define GDT_LDT SEG_REG_VAL(KERN_PRIVILEGE_LEVEL, 0, GDT_LDT_INDEX) |
| #define GDT_LDT_INDEX 6 |
| #define GDT_LDT_TYPE 0x82 |
| #define GDT_TSS SEG_REG_VAL(KERN_PRIVILEGE_LEVEL, 0, GDT_TSS_INDEX) |
| #define GDT_TSS_INDEX 5 |
| #define GDT_TSS_TYPE 0x89 |
| #define KERN_PRIVILEGE_LEVEL 0 |
| #define KERNEL_CS_SEL SEG_REG_VAL(KERN_PRIVILEGE_LEVEL, 0, GDT_CS_INDEX) /* 0x08 */ |
| #define KERNEL_SS_SEL SEG_REG_VAL(KERN_PRIVILEGE_LEVEL, 0, GDT_DS_INDEX) /* 0x10 */ |
| #define LDT_CS_INDEX 0 |
| #define LDT_DS_INDEX 1 |
| #define NR_LDT_ENTRIES 2 |
| #define restore_system_segments |
| #define RFLAGS_IF 0x202ULL |
| #define SEG_ADDR | ( | seg_desc | ) |
| #define SEG_REG_RPL | ( | seg_reg_val | ) |
| #define SEG_REG_VAL | ( | privilege, | |
| in_ldt, | |||
| segment_index ) |
| #define SEG_SIZE | ( | seg_desc | ) |
| #define USER_CS_INDEX 4 |
| #define USER_CS_SEL SEG_REG_VAL(USER_PRIVILEGE_LEVEL, 0, USER_CS_INDEX) /* 0x23 */ |
| #define USER_CS_TYPE 0xFA |
| #define USER_DS_INDEX 3 |
| #define USER_DS_SEL SEG_REG_VAL(USER_PRIVILEGE_LEVEL, 0, USER_DS_INDEX) /* 0x1B */ |
| #define USER_DS_TYPE 0xF2 |
| #define USER_PRIVILEGE_LEVEL 3 |
| struct segment_descriptor __attribute__ | ( | (__packed__) | ) |
| uint8_t access |
| uint16_t base_addr_15_0 |
| uint8_t base_addr_23_16 |
| uint8_t base_addr_31_24 |
| uint8_t granularity |
| uint16_t limit_15_0 |
| uint8_t limit_19_16 |
| uint8_t long_mode |
| uint8_t size |
| uint8_t u |