redo boot around an explicit system volume and fixed kernel/HAL images, redo volumes and filesystem paths around capabilities instead of drive numbers and kernel CWD state, add a capability/security model with derived and revocable handles and security contexts, add port IPC and rssrv to manage the userspace resource namespace and publish the system volume, move process, dll and path loading to userspace and add process builder syscalls, init now supervises rssrv and the session process, redo the syscall ABI around request structs and four arguments, add a volume manager and proper partition arrival/removal handling so FAT and NTFS mount dynamically, clean up the HAL/DDK boundary so drivers don't depend on HAL internals, save fpu state properly now, the serial driver doesn't hang on a missing port, fix AHCI startup races, fix timeout accounting, fix shared mmap writeback, more smoke tests

This commit is contained in:
maksw committed 2026-08-20 12:33:17 +02:00
1 parent 4add6789ba
commit f882d339fb
232 files changed
+20934 -8898

No files matched your search

+159 -141
View File
@@ -1,163 +1,181 @@
; Syscall numbers shared by MASM user-mode stubs.
; Process, threads, modules, waits, APC, and exceptions.
; Process, threads, waits, APC, and exceptions.
SYS_EXIT_PROCESS EQU 0
SYS_EXIT_THREAD EQU 1
SYS_CREATE_PROCESS EQU 2
SYS_OPEN_PROCESS EQU 3
SYS_GET_PROCESS_EXIT_CODE EQU 4
SYS_KILL_PROCESS EQU 5
SYS_GET_PROCESS_LIST EQU 6
SYS_GET_PROCESS_PID EQU 7
SYS_CREATE_THREAD EQU 8
SYS_RESUME_THREAD EQU 9
SYS_GET_THREAD_LIST EQU 10
SYS_LOAD_MODULE EQU 11
SYS_UNLOAD_MODULE EQU 12
SYS_GET_MODULE_INFO EQU 13
SYS_GET_MODULE_EXPORT EQU 14
SYS_GET_MODULE_LIST EQU 15
SYS_GET_CURRENT_TID EQU 16
SYS_GET_CURRENT_PID EQU 17
SYS_SET_THREAD_PRIORITY EQU 18
SYS_YIELD EQU 19
SYS_SLEEP EQU 20
SYS_WAIT_SINGLE EQU 21
SYS_WAIT_MANY EQU 22
SYS_SET_USER_APC_DISPATCHER EQU 23
SYS_APC_RETURN EQU 24
SYS_SET_EXCEPTION_DISPATCHER EQU 25
SYS_GET_EXCEPTION_DISPATCHER EQU 26
SYS_CONTINUE_EXCEPTION EQU 27
SYS_RAISE_EXCEPTION EQU 28
SYS_CREATE_PROCESS_OBJECT EQU 2
SYS_ALLOC_PROCESS_VM EQU 3
SYS_PROTECT_PROCESS_VM EQU 4
SYS_START_PROCESS EQU 5
SYS_OPEN_PROCESS EQU 6
SYS_GET_PROCESS_EXIT_CODE EQU 7
SYS_KILL_PROCESS EQU 8
SYS_GET_PROCESS_LIST EQU 9
SYS_GET_PROCESS_PID EQU 10
SYS_CREATE_THREAD EQU 11
SYS_RESUME_THREAD EQU 12
SYS_GET_THREAD_LIST EQU 13
SYS_GET_CURRENT_TID EQU 14
SYS_GET_CURRENT_PID EQU 15
SYS_SET_THREAD_PRIORITY EQU 16
SYS_YIELD EQU 17
SYS_SLEEP EQU 18
SYS_WAIT_SINGLE EQU 19
SYS_WAIT_MANY EQU 20
SYS_SET_USER_APC_DISPATCHER EQU 21
SYS_APC_RETURN EQU 22
SYS_SET_EXCEPTION_DISPATCHER EQU 23
SYS_GET_EXCEPTION_DISPATCHER EQU 24
SYS_CONTINUE_EXCEPTION EQU 25
SYS_RAISE_EXCEPTION EQU 26
; Virtual memory, mappings, and handles.
SYS_ALLOC_VM EQU 29
SYS_FREE_VM EQU 30
SYS_PROTECT_VM EQU 31
SYS_QUERY_VM EQU 32
SYS_CLOSE_HANDLE EQU 33
SYS_DUPLICATE_HANDLE EQU 34
SYS_CREATE_FILE_MAPPING EQU 35
SYS_MAP_FILE EQU 36
SYS_ALLOC_VM EQU 27
SYS_FREE_VM EQU 28
SYS_PROTECT_VM EQU 29
SYS_QUERY_VM EQU 30
SYS_CLOSE_HANDLE EQU 31
SYS_DUPLICATE_HANDLE EQU 32
SYS_DERIVE_HANDLE EQU 33
SYS_REVOKE_HANDLE EQU 34
SYS_DERIVE_SECURITY_CONTEXT EQU 35
SYS_QUERY_SECURITY_CONTEXT EQU 36
SYS_CREATE_FILE_MAPPING EQU 37
SYS_MAP_FILE EQU 38
; Synchronization objects.
SYS_CREATE_MUTEX EQU 37
SYS_TRY_ACQUIRE_MUTEX EQU 38
SYS_RELEASE_MUTEX EQU 39
SYS_CREATE_SEM EQU 40
SYS_TRY_WAIT_SEM EQU 41
SYS_SIGNAL_SEM EQU 42
SYS_CREATE_EVENT EQU 43
SYS_SIGNAL_EVENT EQU 44
SYS_CLEAR_EVENT EQU 45
SYS_CREATE_MUTEX EQU 39
SYS_TRY_ACQUIRE_MUTEX EQU 40
SYS_RELEASE_MUTEX EQU 41
SYS_CREATE_SEM EQU 42
SYS_TRY_WAIT_SEM EQU 43
SYS_SIGNAL_SEM EQU 44
SYS_CREATE_EVENT EQU 45
SYS_SIGNAL_EVENT EQU 46
SYS_CLEAR_EVENT EQU 47
; Queues and named queues.
SYS_CREATE_QUEUE EQU 46
SYS_SEND_QUEUE EQU 47
SYS_RECV_QUEUE EQU 48
SYS_PUBLISH_QUEUE EQU 49
SYS_OPEN_NAMED_QUEUE EQU 50
SYS_OPEN_NAMED_QUEUE_OWNER_PROCESS EQU 51
SYS_CREATE_QUEUE EQU 48
SYS_SEND_QUEUE EQU 49
SYS_RECV_QUEUE EQU 50
SYS_PUBLISH_QUEUE EQU 51
SYS_OPEN_NAMED_QUEUE EQU 52
SYS_OPEN_NAMED_QUEUE_OWNER_PROCESS EQU 53
SYS_UNPUBLISH_QUEUE EQU 54
; Files, directories, and current directory.
SYS_OPEN_FILE EQU 52
SYS_READ_FILE EQU 53
SYS_WRITE_FILE EQU 54
SYS_READ_FILE_ASYNC EQU 55
SYS_WRITE_FILE_ASYNC EQU 56
SYS_CANCEL_IO EQU 57
SYS_SEEK_FILE EQU 58
SYS_GET_FILE_POS EQU 59
SYS_GET_FILE_SIZE EQU 60
SYS_GET_FILE_STAT EQU 61
SYS_STAT_FILE EQU 62
SYS_TRUNCATE_FILE EQU 63
SYS_FLUSH_FILE EQU 64
SYS_DELETE_FILE EQU 65
SYS_RENAME_FILE EQU 66
SYS_LOCK_FILE EQU 67
SYS_UNLOCK_FILE EQU 68
SYS_OPEN_DIR EQU 69
SYS_READ_DIR EQU 70
SYS_CREATE_DIR EQU 71
SYS_REMOVE_DIR EQU 72
SYS_SET_CWD EQU 73
SYS_REAL_PATH EQU 74
; LPC-like Ports and well-known system services.
SYS_CREATE_PORT EQU 55
SYS_CONNECT_PORT EQU 56
SYS_ACCEPT_PORT EQU 57
SYS_SEND_PORT EQU 58
SYS_RECEIVE_PORT EQU 59
SYS_CALL_PORT EQU 60
SYS_REPLY_PORT EQU 61
SYS_DISCONNECT_PORT EQU 62
SYS_REGISTER_SYSTEM_SERVICE EQU 63
SYS_UNREGISTER_SYSTEM_SERVICE EQU 64
SYS_CONNECT_SYSTEM_SERVICE EQU 65
; Mounted-volume manager control plane.
SYS_QUERY_VOLUMES EQU 66
SYS_OPEN_VOLUME EQU 67
SYS_WAIT_VOLUME_CHANGE EQU 68
; Files and directories.
SYS_OPEN_FILE_AT EQU 69
SYS_OPEN_DIR_AT EQU 70
SYS_STAT_AT EQU 71
SYS_DELETE_AT EQU 72
SYS_RENAME_AT EQU 73
SYS_CREATE_DIR_AT EQU 74
SYS_REMOVE_DIR_AT EQU 75
SYS_READ_FILE EQU 76
SYS_WRITE_FILE EQU 77
SYS_READ_FILE_ASYNC EQU 78
SYS_WRITE_FILE_ASYNC EQU 79
SYS_CANCEL_IO EQU 80
SYS_SEEK_FILE EQU 81
SYS_GET_FILE_POS EQU 82
SYS_GET_FILE_SIZE EQU 83
SYS_GET_FILE_STAT EQU 84
SYS_TRUNCATE_FILE EQU 85
SYS_FLUSH_FILE EQU 86
SYS_LOCK_FILE EQU 87
SYS_UNLOCK_FILE EQU 88
SYS_READ_DIR EQU 89
; Console, display, and surfaces.
SYS_WRITE_CONSOLE EQU 75
SYS_GET_CONSOLE_INFO EQU 76
SYS_SET_CONSOLE_CURSOR EQU 77
SYS_FILL_CONSOLE_CHARACTER EQU 78
SYS_FILL_CONSOLE_ATTRIBUTE EQU 79
SYS_PUT_SCREEN_CHAR EQU 80
SYS_CLEAR_SCREEN EQU 81
SYS_GET_SCREEN_SIZE EQU 82
SYS_QUERY_DISPLAY_INFO EQU 83
SYS_OPEN_DISPLAY_CLOCK EQU 84
SYS_CREATE_SURFACE EQU 85
SYS_MAP_SURFACE EQU 86
SYS_QUERY_SURFACE EQU 87
SYS_PRESENT_SURFACE EQU 88
SYS_WRITE_CONSOLE EQU 90
SYS_GET_CONSOLE_INFO EQU 91
SYS_SET_CONSOLE_CURSOR EQU 92
SYS_FILL_CONSOLE_CHARACTER EQU 93
SYS_FILL_CONSOLE_ATTRIBUTE EQU 94
SYS_PUT_SCREEN_CHAR EQU 95
SYS_CLEAR_SCREEN EQU 96
SYS_GET_SCREEN_SIZE EQU 97
SYS_QUERY_DISPLAY_INFO EQU 98
SYS_OPEN_DISPLAY_CLOCK EQU 99
SYS_CREATE_SURFACE EQU 100
SYS_MAP_SURFACE EQU 101
SYS_QUERY_SURFACE EQU 102
SYS_PRESENT_SURFACE EQU 103
; Native render audio.
SYS_AUDIO_ENUMERATE_ENDPOINTS EQU 89
SYS_AUDIO_OPEN_STREAM EQU 90
SYS_AUDIO_WRITE EQU 91
SYS_AUDIO_ARM_WAIT EQU 92
SYS_AUDIO_QUERY_STREAM EQU 93
SYS_AUDIO_START EQU 94
SYS_AUDIO_PAUSE EQU 95
SYS_AUDIO_RESUME EQU 96
SYS_AUDIO_DRAIN EQU 97
SYS_AUDIO_STOP EQU 98
SYS_AUDIO_RESET EQU 99
SYS_AUDIO_SET_VOLUME EQU 100
SYS_AUDIO_SET_MASTER_VOLUME EQU 101
SYS_AUDIO_ENUMERATE_ENDPOINTS EQU 104
SYS_AUDIO_OPEN_STREAM EQU 105
SYS_AUDIO_WRITE EQU 106
SYS_AUDIO_ARM_WAIT EQU 107
SYS_AUDIO_QUERY_STREAM EQU 108
SYS_AUDIO_START EQU 109
SYS_AUDIO_PAUSE EQU 110
SYS_AUDIO_RESUME EQU 111
SYS_AUDIO_DRAIN EQU 112
SYS_AUDIO_STOP EQU 113
SYS_AUDIO_RESET EQU 114
SYS_AUDIO_SET_VOLUME EQU 115
SYS_AUDIO_SET_MASTER_VOLUME EQU 116
; Input.
SYS_POLL_KEYBOARD EQU 102
SYS_IS_KEY_DOWN EQU 103
SYS_READ_KEYBOARD_CHAR EQU 104
SYS_READ_KEY EQU 105
SYS_GET_KEY_MODIFIERS EQU 106
SYS_QUERY_GLOBAL_INPUT_STATE EQU 107
SYS_OPEN_INPUT_QUEUE EQU 108
SYS_READ_INPUT_EVENT EQU 109
SYS_PEEK_INPUT_EVENT EQU 110
SYS_PEEK_MOUSE EQU 111
SYS_READ_MOUSE EQU 112
SYS_GET_MOUSE_POS EQU 113
SYS_POLL_KEYBOARD EQU 117
SYS_IS_KEY_DOWN EQU 118
SYS_READ_KEYBOARD_CHAR EQU 119
SYS_READ_KEY EQU 120
SYS_GET_KEY_MODIFIERS EQU 121
SYS_QUERY_GLOBAL_INPUT_STATE EQU 122
SYS_OPEN_INPUT_QUEUE EQU 123
SYS_READ_INPUT_EVENT EQU 124
SYS_PEEK_INPUT_EVENT EQU 125
SYS_PEEK_MOUSE EQU 126
SYS_READ_MOUSE EQU 127
SYS_GET_MOUSE_POS EQU 128
; Time, debug, and system information.
SYS_CREATE_TIMER EQU 114
SYS_SET_TIMER EQU 115
SYS_CANCEL_TIMER EQU 116
SYS_GET_TICK EQU 117
SYS_GET_TICK_FREQUENCY EQU 118
SYS_GET_SYSTEM_TIME EQU 119
SYS_PRINT_DEBUG EQU 120
SYS_QUERY_TRAP_FRAME EQU 121
SYS_GET_MEMORY_STATUS EQU 122
SYS_QUERY_KERNEL_STATS EQU 123
SYS_CREATE_TIMER EQU 129
SYS_SET_TIMER EQU 130
SYS_CANCEL_TIMER EQU 131
SYS_GET_TICK EQU 132
SYS_GET_TICK_FREQUENCY EQU 133
SYS_GET_SYSTEM_TIME EQU 134
SYS_PRINT_DEBUG EQU 135
SYS_QUERY_TRAP_FRAME EQU 136
SYS_GET_MEMORY_STATUS EQU 137
SYS_QUERY_KERNEL_STATS EQU 138
; Native sockets and polling.
SYS_CREATE_SOCKET EQU 124
SYS_SOCKET_IO_ASYNC EQU 125
SYS_BIND_SOCKET EQU 126
SYS_LISTEN_SOCKET EQU 127
SYS_ACCEPT_SOCKET EQU 128
SYS_CONNECT_SOCKET EQU 129
SYS_SEND_SOCKET EQU 130
SYS_RECV_SOCKET EQU 131
SYS_SHUTDOWN_SOCKET EQU 132
SYS_SEND_TO_SOCKET EQU 133
SYS_RECV_FROM_SOCKET EQU 134
SYS_RESOLVE_HOST EQU 135
SYS_SET_SOCKET_OPTION EQU 136
SYS_GET_SOCKET_OPTION EQU 137
SYS_POLL EQU 138
SYS_UNPUBLISH_QUEUE EQU 139
SYS_CREATE_SOCKET EQU 139
SYS_SOCKET_IO_ASYNC EQU 140
SYS_BIND_SOCKET EQU 141
SYS_LISTEN_SOCKET EQU 142
SYS_ACCEPT_SOCKET EQU 143
SYS_CONNECT_SOCKET EQU 144
SYS_SEND_SOCKET EQU 145
SYS_RECV_SOCKET EQU 146
SYS_SHUTDOWN_SOCKET EQU 147
SYS_SEND_TO_SOCKET EQU 148
SYS_RECV_FROM_SOCKET EQU 149
SYS_RESOLVE_HOST EQU 150
SYS_SET_SOCKET_OPTION EQU 151
SYS_GET_SOCKET_OPTION EQU 152
SYS_POLL EQU 153
SYS_MAX EQU 140
SYS_MAX EQU 154