#define ASSERT(CONDITION)
This is outside the header guard so that debug.h may be included multiple times with different settin...
#define SEL_KDSEG
Kernel data selector.
void * palloc_get_page(enum palloc_flags flags)
Obtains a single free page and returns its kernel virtual address.
@ PAL_ZERO
Zero page contents.
@ PAL_ASSERT
Panic on failure.
unsigned short int uint16_t
The Task-State Segment (TSS).
uint16_t uint16_t uint16_t uint16_t uint16_t uint16_t gs
uint16_t uint16_t uint16_t uint16_t ds
uint16_t uint16_t uint16_t uint16_t uint16_t uint16_t uint16_t uint16_t bitmap
uint16_t uint16_t uint16_t uint16_t uint16_t uint16_t uint16_t ldt
uint16_t void * esp0
Ring 0 stack virtual address.
uint16_t uint16_t uint16_t ss
uint16_t void * esp1
Ring 0 stack segment selector.
uint16_t uint16_t uint16_t uint16_t uint16_t uint16_t uint16_t uint16_t trace
uint16_t uint16_t uint16_t uint16_t uint16_t fs
struct thread * thread_current(void)
Returns the running thread.
static struct tss * tss
Kernel TSS.
void tss_update(void)
Sets the ring 0 stack pointer in the TSS to point to the end of the thread stack.
void tss_init(void)
Initializes the kernel TSS.
struct tss * tss_get(void)
Returns the kernel TSS.
#define PGSIZE
Bytes in a page.