|
IBNOS
|
#include <hardware/gdt.h>#include <memory/paging.h>#include <memory/physmem.h>#include <console/console.h>#include <interrupt/interrupt.h>#include <process/thread.h>
Go to the source code of this file.
Macros | |
| #define | INTJMP_ENTRY_SIZE 8 |
| #define | INTJMP_ENTRY_MASK 7 |
| #define | INTJMP_ENTRY_BITS 3 |
| #define | KERNEL_IDLE_BEGIN ((uint32_t)&__kernelIdleBegin) |
| #define | KERNEL_IDLE_END ((uint32_t)&__kernelIdleEnd) |
| #define | __isErrorCodeInterrupt(i) ((i) == 8 || ((i) >= 10 && (i) <= 14) || (i) == 17) |
Functions | |
| void | __attribute__ ((cdecl)) |
| void | gdtInit () |
| Initializes the GDT, task registers, and sets up everything required for multiprocessing. More... | |
| struct GDTEntry * | gdtGetFreeEntry () |
| Get a free entry in the GDT. More... | |
| uint32_t | gdtGetEntryOffset (struct GDTEntry *entry, uint32_t ring) |
| Determines the offset of a GDT entry. More... | |
| void | gdtEntrySetAddress (struct GDTEntry *entry, uint32_t address) |
| Helper function to set the address inside a GDTEntry. More... | |
| void | gdtEntrySetLimit (struct GDTEntry *entry, uint64_t length) |
| Helper function to set the length inside a GDTEntry. More... | |
| void | gdtReleaseEntry (struct GDTEntry *entry) |
| Mark a GDTEntry as free. More... | |
| uint32_t | tssRunUsermodeThread (struct thread *t) |
| Run a thread. More... | |
Variables | |
| void * | kernelStack |
| void * | intJmpTable_kernel |
| void * | intJmpTable_user |
| struct GDTEntry * | codeRing0 |
| struct GDTEntry * | dataRing0 |
| struct GDTEntry * | codeRing3 |
| struct GDTEntry * | dataRing3 |
| struct GDTEntry * | kernelTask |
| struct GDTEntry * | usermodeTask |
| uint32_t | __kernelIdleBegin |
| uint32_t | __kernelIdleEnd |
| #define __isErrorCodeInterrupt | ( | i | ) | ((i) == 8 || ((i) >= 10 && (i) <= 14) || (i) == 17) |
1.8.13