[kernel] Replace endpoint with new mailbox API

The new mailbox kernel object API offers asynchronous message-based IPC
for sending data and handles between threads, as opposed to endpoint's
synchronous model.
This commit is contained in:
Justin C. Miller
2022-02-22 00:06:14 -08:00
parent f7ae2e2220
commit 30aed15090
17 changed files with 647 additions and 364 deletions

View File

@@ -8,9 +8,13 @@
#define j6_status_ok 0x0000
/// Errors 0001h-0fffh are reserved to avoid collision with
/// libc errno values
#define j6_status_closed 0x1000
#define j6_status_destroyed 0x1001
#define j6_status_exists 0x1002
#define j6_status_would_block 0x1003
#define j6_err_nyi j6_err(0x0001)
#define j6_err_unexpected j6_err(0x0002)

View File

@@ -8,3 +8,7 @@ enum j6_vm_flags {
#undef VM_FLAG
j6_vm_flag_MAX
};
enum j6_mailbox_flags {
j6_mailbox_block = 0x01,
};

View File

@@ -5,6 +5,8 @@
// but should not include the user-specific code.
#ifndef __j6kernel
#include <stddef.h>
#include <stdint.h>
#include <j6/types.h>
#ifdef __cplusplus

View File

@@ -5,8 +5,9 @@ OBJECT_TYPE( system, 0x01 )
OBJECT_TYPE( event, 0x02 )
OBJECT_TYPE( channel, 0x03 )
OBJECT_TYPE( endpoint, 0x04 )
OBJECT_TYPE( mailbox, 0x05 )
OBJECT_TYPE( vma, 0x05 )
OBJECT_TYPE( vma, 0x06 )
OBJECT_TYPE( process, 0x06 )
OBJECT_TYPE( thread, 0x07 )
OBJECT_TYPE( process, 0x07 )
OBJECT_TYPE( thread, 0x08 )