Add initial pass of syscall API kobjects
This commit is contained in:
16
src/include/j6/errors.h
Normal file
16
src/include/j6/errors.h
Normal file
@@ -0,0 +1,16 @@
|
||||
#pragma once
|
||||
/// \file errors.h
|
||||
/// Collection of constants for the j6_status_t type
|
||||
|
||||
#define j6_status_error 0x8000000000000000
|
||||
#define j6_err(x) ((x) | j6_status_error)
|
||||
#define j6_is_err(x) (((x) & j6_status_error) == j6_status_error)
|
||||
|
||||
#define j6_status_ok 0x0000
|
||||
|
||||
#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)
|
||||
|
||||
18
src/include/j6/signals.h
Normal file
18
src/include/j6/signals.h
Normal file
@@ -0,0 +1,18 @@
|
||||
#pragma once
|
||||
/// \file signals.h
|
||||
/// Collection of constants for the j6_signal_t type
|
||||
|
||||
// Signals 0-7 are common to all types
|
||||
#define j6_signal_no_handles (1 << 0)
|
||||
|
||||
// Signals 8-15 are user-defined signals
|
||||
#define j6_signal_user0 (1 << 8)
|
||||
#define j6_signal_user1 (1 << 9)
|
||||
#define j6_signal_user2 (1 << 10)
|
||||
#define j6_signal_user3 (1 << 11)
|
||||
#define j6_signal_user4 (1 << 12)
|
||||
#define j6_signal_user5 (1 << 13)
|
||||
#define j6_signal_user6 (1 << 14)
|
||||
#define j6_signal_user7 (1 << 15)
|
||||
|
||||
// All other signals are type-specific
|
||||
20
src/include/j6/types.h
Normal file
20
src/include/j6/types.h
Normal file
@@ -0,0 +1,20 @@
|
||||
#pragma once
|
||||
/// \file types.h
|
||||
/// Basic kernel types exposed to userspace
|
||||
|
||||
#include <stdint.h>
|
||||
|
||||
/// All interactable kernel objects have a uniqe kernel object id
|
||||
typedef uint64_t j6_koid_t;
|
||||
|
||||
/// Syscalls return status as this type
|
||||
typedef uint32_t j6_status_t;
|
||||
|
||||
/// Handles are references and capabilities to other objects
|
||||
typedef uint32_t j6_handle_t;
|
||||
|
||||
/// Some objects have signals, which are a bitmap of 64 possible signals
|
||||
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;
|
||||
@@ -8,3 +8,4 @@ LOG(task, info);
|
||||
LOG(boot, debug);
|
||||
LOG(syscall,debug);
|
||||
LOG(vmem, debug);
|
||||
LOG(objs, debug);
|
||||
|
||||
Reference in New Issue
Block a user