diff options
| author | Jon Santmyer <jon@jonsantmyer.com> | 2026-10-09 10:24:41 -0400 |
|---|---|---|
| committer | Jon Santmyer <jon@jonsantmyer.com> | 2026-10-09 10:24:41 -0400 |
| commit | cc23ea5a4b38807e79aceb23e6f43e965926618f (patch) | |
| tree | 90142bb44186f4dad7bbd82d3d53655b835c822b /api | |
| parent | 434ddcd907832b1febc7d70e4faa52109c7eb3bd (diff) | |
| download | jove-kernel-cc23ea5a4b38807e79aceb23e6f43e965926618f.tar.gz jove-kernel-cc23ea5a4b38807e79aceb23e6f43e965926618f.tar.bz2 jove-kernel-cc23ea5a4b38807e79aceb23e6f43e965926618f.zip | |
add basic scheduler logic. rename init rootdir indexes
Diffstat (limited to 'api')
| -rw-r--r-- | api/error.h | 1 | ||||
| -rw-r--r-- | api/init.h | 31 | ||||
| -rw-r--r-- | api/process.h | 18 | ||||
| -rw-r--r-- | api/syscall.h | 20 |
4 files changed, 50 insertions, 20 deletions
diff --git a/api/error.h b/api/error.h index af85bd9..d938100 100644 --- a/api/error.h +++ b/api/error.h @@ -21,5 +21,6 @@ #define EBADPROC 18 #define ENOMAIL 19 #define ETIMEOUT 20 +#define ENOTFOUND 21 #endif @@ -4,26 +4,25 @@ #include <stdint.h> enum { - ROOTDIR_NULL_I = 0, - ROOTDIR_DIR_I, - ROOTDIR_PROCESSORS_I, - ROOTDIR_PAGEDIR_I, - ROOTDIR_FREEMEMORY_I, - ROOTDIR_HWMEMORY_I, - ROOTDIR_PCB_I, - ROOTDIR_INTERRUPTS_I, - ROOTDIR_INITRD_I, - ROOTDIR_MESSAGE_I, - ROOTDIR_FRAMEBUFFER_I, - ROOTDIR_VIRTTERM_I, - _ROOTDIR_LAST_I + INIT_ROOTDIR_DIR_I = 0, + INIT_ROOTDIR_PCB_I, + INIT_ROOTDIR_PAGEDIR_I, + INIT_ROOTDIR_PROCESSORS_I, + INIT_ROOTDIR_FREEMEMORY_I, + INIT_ROOTDIR_HWMEMORY_I, + INIT_ROOTDIR_INTERRUPTS_I, + INIT_ROOTDIR_INITRD_I, + INIT_ROOTDIR_MESSAGE_I, + INIT_ROOTDIR_FRAMEBUFFER_I, + INIT_ROOTDIR_VIRTTERM_I, + _INIT_ROOTDIR_LAST_I }; #ifdef __x86_64__ enum { - ROOTDIR_IOPB_I = _ROOTDIR_LAST_I, - ROOTDIR_SERIAL_COM_I, - _ROOTDIR_LAST_ARCH_I + INIT_ROOTDIR_IOPB_I = _INIT_ROOTDIR_LAST_I, + INIT_ROOTDIR_SERIAL_COM_I, + _INIT_ROOTDIR_LAST_ARCH_I }; #endif diff --git a/api/process.h b/api/process.h index 080e001..5ccf69d 100644 --- a/api/process.h +++ b/api/process.h @@ -5,4 +5,22 @@ typedef intmax_t pid_t; +enum pcb_state +{ + _PCB_STATE_INVALID = 0, + PCB_STATE_DEAD, + PCB_STATE_EMBRYO, + PCB_STATE_READY, + PCB_STATE_RUNNING, + PCB_STATE_WAITING, + PCB_STATE_BLOCKED_MAIL +}; + +enum pcb_rootdir_entries +{ + _PCB_ROOTDIR_NULL = 0, + PCB_ROOTDIR_SELF_I, + PCB_ROOTDIR_PAGEDIR_I, +}; + #endif diff --git a/api/syscall.h b/api/syscall.h index 3f9d115..88aad81 100644 --- a/api/syscall.h +++ b/api/syscall.h @@ -46,13 +46,19 @@ enum SYSCALL_UNTYPED_SIZE, SYSCALL_UNTYPED_SPLIT, SYSCALL_UNTYPED_MERGE, - SYSCALL_UNTYPED_RETYPE, + SYSCALL_UNTYPED_RETYPE_OBJDIR, + SYSCALL_UNTYPED_RETYPE_PAGEDIR, + SYSCALL_UNTYPED_RETYPE_SHMEMORY, + SYSCALL_UNTYPED_RETYPE_PCB, + SYSCALL_UNTYPED_RETYPE_MESSAGE, + _SYSCALL_UNTYPED_ARCH_BEGIN }; #define SYSCALL_PERM_UNTYPED_ADDRESS JOVE_PERM_READ #define SYSCALL_PERM_UNTYPED_SIZE JOVE_PERM_READ #define SYSCALL_PERM_UNTYPED_SPLIT (JOVE_PERM_WRITE | JOVE_PERM_MUTATE) #define SYSCALL_PERM_UNTYPED_MERGE (JOVE_PERM_WRITE | JOVE_PERM_MUTATE) +#define SYSCALL_PERM_UNTYPED_RETYPE (JOVE_PERM_WRITE | JOVE_PERM_MUTATE) struct syscall_untyped_split { @@ -175,12 +181,18 @@ enum _SYSCALL_PCB_NONE = 0, SYSCALL_PCB_YIELD, SYSCALL_PCB_SEND, - SYSCALL_PCB_RECV + SYSCALL_PCB_RECV, + SYSCALL_PCB_SET_RDIR, + SYSCALL_PCB_SET_PDIR, + SYSCALL_PCB_SET_READY, }; #define SYSCALL_PERM_PCB_YIELD (JOVE_PERM_WRITE) -#define SYSCALL_PERM_PCB_SEND (JOVE_PERM_MUTATE) -#define SYSCALL_PERM_PCB_RECV (JOVE_PERM_MUTATE) +#define SYSCALL_PERM_PCB_SEND (JOVE_PERM_WRITE) +#define SYSCALL_PERM_PCB_RECV (JOVE_PERM_WRITE) +#define SYSCALL_PERM_PCB_SET_RDIR (JOVE_PERM_WRITE | JOVE_PERM_MUTATE) +#define SYSCALL_PERM_PCB_SET_PDIR (JOVE_PERM_WRITE | JOVE_PERM_MUTATE) +#define SYSCALL_PERM_PCB_SET_READY (JOVE_PERM_WRITE | JOVE_PERM_MUTATE) #define SYSCALL_PERM_PCB_SEND_TGT (JOVE_PERM_MUTATE) #define SYSCALL_PERM_PCB_RECV_DST (JOVE_PERM_MUTATE) |
