[kernel] Add channel objects

Add the channel object for sending messages between threads. Currently
no good of passing channels to other threads, but global variables in a
single process work. Currently channels are slow and do double copies,
need to refine more.

Tags: ipc
This commit is contained in:
2020-07-26 17:29:11 -07:00
parent ae3290c53d
commit d3e9d92466
10 changed files with 264 additions and 3 deletions

View File

@@ -8,9 +8,12 @@
#define j6_status_ok 0x0000
#define j6_status_closed 0x1000
#define j6_status_destroyed 0x1001
#define j6_err_nyi j6_err(0x0001)
#define j6_err_unexpected j6_err(0x0002)
#define j6_err_invalid_arg j6_err(0x0003)
#define j6_err_not_ready j6_err(0x0004)
#define j6_err_insufficient j6_err(0x0005)

View File

@@ -13,6 +13,11 @@
// Thread signals
#define j6_signal_thread_exit (1ull << 16)
// Channel signals
#define j6_signal_channel_closed (1ull << 16)
#define j6_signal_channel_can_send (1ull << 17)
#define j6_signal_channel_can_recv (1ull << 18)
// Signals 48-63 are user-defined signals
#define j6_signal_user0 (1ull << 48)
#define j6_signal_user1 (1ull << 49)