[kernel] Add userspace threading

Implement the syscalls necessary for threads to create other threads in
their same process. This involved rearranging a number of syscalls, as
well as implementing object_wait and a basic implementation of a
process' list of handles.
This commit is contained in:
2020-07-26 16:02:38 -07:00
parent 4cf222a5bb
commit ae3290c53d
22 changed files with 481 additions and 255 deletions

View File

@@ -6,8 +6,13 @@
#define j6_signal_no_handles (1ull << 0)
// Signals 16-47 are defined per-object-type
// Process signals
#define j6_signal_process_exit (1ull << 16)
// Thread signals
#define j6_signal_thread_exit (1ull << 16)
// Signals 48-63 are user-defined signals
#define j6_signal_user0 (1ull << 48)
#define j6_signal_user1 (1ull << 49)

View File

@@ -18,3 +18,5 @@ typedef uint64_t j6_signal_t;
/// The rights of a handle/capability are a bitmap of 64 possible rights
typedef uint64_t j6_rights_t;
#define j6_handle_invalid 0xffffffff