|
Kintsugi OS 0.5.0
x86 Monolithic OS
|
#include "process.h"#include "../cpu/idt.h"#include "../drivers/keyboard.h"#include "../drivers/terminal.h"#include "../fs/vfs.h"#include "../kernel/log.h"#include "../kklibc/kklibc.h"#include "../mm/memory.h"Classes | |
| struct | elf_segment_t |
| struct | syscall_regs_t |
Macros | |
| #define | STACK_BOTTOM (USER_TOP - 9 * PAGE_SIZE) |
| #define | STACK_START (STACK_BOTTOM + PAGE_SIZE) |
| #define | USER_HEAP_BASE 0x60000000u |
| #define | USER_HEAP_LIMIT 0x61000000u |
Functions | |
| static u8 kernel_stack[16384] | __attribute__ ((aligned(16))) |
| static u32 gdt[12] | __attribute__ ((aligned(8))) |
| int | user_enter (u32 entry, u32 stack) |
| void | user_leave (int status) __attribute__((noreturn)) |
| void | syscall_entry (void) |
| void | process_init (void) |
| int | process_active (void) |
| void | process_exit (int status) |
| struct | __attribute__ ((packed)) |
| static int | user_copy (u32 address, const void *source, u32 length) |
| int | process_run (const char *path, int argc, char **argv) |
| static int | user_range (u32 address, u32 length, int write) |
| static int | user_path (u32 address, char path[VFS_PATH_MAX]) |
| void | syscall_dispatch (syscall_regs_t *r) |
Variables | |
| static u32 | tss [26] |
| static u32 | space |
| static u32 | user_heap_end |
| elf_header_t | |
| #define STACK_START (STACK_BOTTOM + PAGE_SIZE) |
| #define USER_HEAP_BASE 0x60000000u |
| #define USER_HEAP_LIMIT 0x61000000u |
|
static |
|
static |
| struct __attribute__ | ( | (packed) | ) |
| int process_active | ( | void | ) |
| void process_exit | ( | int | status | ) |
| void process_init | ( | void | ) |
| int process_run | ( | const char * | path, |
| int | argc, | ||
| char ** | argv | ||
| ) |
| void syscall_dispatch | ( | syscall_regs_t * | r | ) |
|
extern |
|
extern |
|
static |
| elf_header_t |
|
static |
|
static |
|
static |