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 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)