summaryrefslogtreecommitdiffstats
path: root/api
diff options
context:
space:
mode:
Diffstat (limited to 'api')
-rw-r--r--api/error.h1
-rw-r--r--api/init.h31
-rw-r--r--api/process.h18
-rw-r--r--api/syscall.h20
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
diff --git a/api/init.h b/api/init.h
index 3458ca1..436cfa8 100644
--- a/api/init.h
+++ b/api/init.h
@@ -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)