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:
1 parent
4add6789ba
commit
f882d339fb
232 files changed
+20934
-8898
No files matched your search
+159
-141
@@ -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
|
||||
Reference in new issue
Block a user