mirror of
https://github.com/Leonmmcoset/cleonos.git
synced 2026-04-21 10:40:00 +00:00
88 lines
1.8 KiB
Python
88 lines
1.8 KiB
Python
from __future__ import annotations
|
|
|
|
U64_MASK = (1 << 64) - 1
|
|
PAGE_SIZE = 0x1000
|
|
MAX_CSTR = 4096
|
|
MAX_IO_READ = 1 << 20
|
|
DEFAULT_MAX_EXEC_DEPTH = 6
|
|
FS_NAME_MAX = 96
|
|
|
|
# CLeonOS syscall IDs from cleonos/c/include/cleonos_syscall.h
|
|
SYS_LOG_WRITE = 0
|
|
SYS_TIMER_TICKS = 1
|
|
SYS_TASK_COUNT = 2
|
|
SYS_CUR_TASK = 3
|
|
SYS_SERVICE_COUNT = 4
|
|
SYS_SERVICE_READY_COUNT = 5
|
|
SYS_CONTEXT_SWITCHES = 6
|
|
SYS_KELF_COUNT = 7
|
|
SYS_KELF_RUNS = 8
|
|
SYS_FS_NODE_COUNT = 9
|
|
SYS_FS_CHILD_COUNT = 10
|
|
SYS_FS_GET_CHILD_NAME = 11
|
|
SYS_FS_READ = 12
|
|
SYS_EXEC_PATH = 13
|
|
SYS_EXEC_REQUESTS = 14
|
|
SYS_EXEC_SUCCESS = 15
|
|
SYS_USER_SHELL_READY = 16
|
|
SYS_USER_EXEC_REQUESTED = 17
|
|
SYS_USER_LAUNCH_TRIES = 18
|
|
SYS_USER_LAUNCH_OK = 19
|
|
SYS_USER_LAUNCH_FAIL = 20
|
|
SYS_TTY_COUNT = 21
|
|
SYS_TTY_ACTIVE = 22
|
|
SYS_TTY_SWITCH = 23
|
|
SYS_TTY_WRITE = 24
|
|
SYS_TTY_WRITE_CHAR = 25
|
|
SYS_KBD_GET_CHAR = 26
|
|
SYS_FS_STAT_TYPE = 27
|
|
SYS_FS_STAT_SIZE = 28
|
|
SYS_FS_MKDIR = 29
|
|
SYS_FS_WRITE = 30
|
|
SYS_FS_APPEND = 31
|
|
SYS_FS_REMOVE = 32
|
|
SYS_LOG_JOURNAL_COUNT = 33
|
|
SYS_LOG_JOURNAL_READ = 34
|
|
SYS_KBD_BUFFERED = 35
|
|
SYS_KBD_PUSHED = 36
|
|
SYS_KBD_POPPED = 37
|
|
SYS_KBD_DROPPED = 38
|
|
SYS_KBD_HOTKEY_SWITCHES = 39
|
|
SYS_GETPID = 40
|
|
SYS_SPAWN_PATH = 41
|
|
SYS_WAITPID = 42
|
|
SYS_EXIT = 43
|
|
SYS_SLEEP_TICKS = 44
|
|
SYS_YIELD = 45
|
|
SYS_SHUTDOWN = 46
|
|
SYS_RESTART = 47
|
|
SYS_AUDIO_AVAILABLE = 48
|
|
SYS_AUDIO_PLAY_TONE = 49
|
|
SYS_AUDIO_STOP = 50
|
|
SYS_EXEC_PATHV = 51
|
|
SYS_SPAWN_PATHV = 52
|
|
SYS_PROC_ARGC = 53
|
|
SYS_PROC_ARGV = 54
|
|
SYS_PROC_ENVC = 55
|
|
SYS_PROC_ENV = 56
|
|
SYS_PROC_LAST_SIGNAL = 57
|
|
SYS_PROC_FAULT_VECTOR = 58
|
|
SYS_PROC_FAULT_ERROR = 59
|
|
SYS_PROC_FAULT_RIP = 60
|
|
|
|
|
|
def u64(value: int) -> int:
|
|
return value & U64_MASK
|
|
|
|
|
|
def u64_neg1() -> int:
|
|
return U64_MASK
|
|
|
|
|
|
def page_floor(addr: int) -> int:
|
|
return addr & ~(PAGE_SIZE - 1)
|
|
|
|
|
|
def page_ceil(addr: int) -> int:
|
|
return (addr + PAGE_SIZE - 1) & ~(PAGE_SIZE - 1)
|