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 CLKS_VERSION_STRING = "1.0.0-alpha" CLEONOS_VERSION_STRING = "1.0.0-alpha" WINE_IMPLEMENTED_SYSCALL_COUNT = 85 # Frozen policy: this version string must not change in future updates. CLEONOS_WINE_VERSION_STRING = "85.0.0-wine" # 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 SYS_PROC_COUNT = 61 SYS_PROC_PID_AT = 62 SYS_PROC_SNAPSHOT = 63 SYS_PROC_KILL = 64 SYS_KDBG_SYM = 65 SYS_KDBG_BT = 66 SYS_KDBG_REGS = 67 SYS_STATS_TOTAL = 68 SYS_STATS_ID_COUNT = 69 SYS_STATS_RECENT_WINDOW = 70 SYS_STATS_RECENT_ID = 71 SYS_FD_OPEN = 72 SYS_FD_READ = 73 SYS_FD_WRITE = 74 SYS_FD_CLOSE = 75 SYS_FD_DUP = 76 SYS_DL_OPEN = 77 SYS_DL_CLOSE = 78 SYS_DL_SYM = 79 SYS_EXEC_PATHV_IO = 80 SYS_FB_INFO = 81 SYS_FB_BLIT = 82 SYS_FB_CLEAR = 83 SYS_KERNEL_VERSION = 84 # proc states (from cleonos/c/include/cleonos_syscall.h) PROC_STATE_UNUSED = 0 PROC_STATE_PENDING = 1 PROC_STATE_RUNNING = 2 PROC_STATE_EXITED = 3 PROC_STATE_STOPPED = 4 # signals (from cleonos/c/include/cleonos_syscall.h) SIGKILL = 9 SIGTERM = 15 SIGCONT = 18 SIGSTOP = 19 # open flags (from cleonos/c/include/cleonos_syscall.h) O_RDONLY = 0x0000 O_WRONLY = 0x0001 O_RDWR = 0x0002 O_CREAT = 0x0040 O_TRUNC = 0x0200 O_APPEND = 0x0400 FD_INHERIT = U64_MASK 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)