move POSIX spawn, exec and child tracking into posixsrv, keep process transactions alive across reconnects and preserve stable PIDs across image replacement, flesh out spawn with ordered file actions, process-group selection and signal inheritance, implement execve with bootstrap validation and rollback before retiring the old process, add vfork children that share the native process while keeping separate POSIX descriptor and signal state, replace local spawn bookkeeping with child reaping, nonblocking and process-group waits and orphan cleanup, add signal dispositions, per-thread masks, pending delivery, process/group signalling and alarms, translate native exceptions into POSIX signals and inherit masks when creating threads, make pipe waits interruptible and raise SIGPIPE for broken pipes, pass arguments and environment into main and add getenv/environ, add direct user APC notifications that can run without an alertable wait, add current-thread capabilities and resume-and-wait, let accepted IPC endpoints open restricted peer process capabilities and preserve caller security during spawn and exec, make process preparation reusable and improve DLL lookup across current, executable and fallback directories, move keyboard repeat into RSSRV so PS/2 and USB share one repeat policy, fix video presentation, report launch failure stages and status codes, mooaaar tests.
This commit is contained in:
1 parent
73abd6f90d
commit
899225f551
57 files changed
+8817
-1216
No files matched your search
+167
-161
@@ -13,187 +13,193 @@ 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_SET_THREAD_NAME EQU 17
|
||||
SYS_QUERY_THREAD_NAME 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_OPEN_CURRENT_THREAD EQU 12
|
||||
SYS_RESUME_THREAD EQU 13
|
||||
SYS_RESUME_THREAD_AND_WAIT EQU 14
|
||||
SYS_GET_THREAD_LIST EQU 15
|
||||
SYS_GET_THREAD_TID EQU 16
|
||||
SYS_GET_CURRENT_TID EQU 17
|
||||
SYS_GET_CURRENT_PID EQU 18
|
||||
SYS_SET_THREAD_PRIORITY EQU 19
|
||||
SYS_SET_THREAD_NAME EQU 20
|
||||
SYS_QUERY_THREAD_NAME EQU 21
|
||||
SYS_YIELD EQU 22
|
||||
SYS_SLEEP EQU 23
|
||||
SYS_WAIT_SINGLE EQU 24
|
||||
SYS_WAIT_MANY EQU 25
|
||||
SYS_SET_USER_APC_DISPATCHER EQU 26
|
||||
SYS_QUEUE_USER_APC EQU 27
|
||||
SYS_APC_RETURN EQU 28
|
||||
SYS_SET_EXCEPTION_DISPATCHER EQU 29
|
||||
SYS_GET_EXCEPTION_DISPATCHER EQU 30
|
||||
SYS_CONTINUE_EXCEPTION EQU 31
|
||||
SYS_RAISE_EXCEPTION EQU 32
|
||||
|
||||
; 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_DERIVE_HANDLE EQU 35
|
||||
SYS_REVOKE_HANDLE EQU 36
|
||||
SYS_DERIVE_SECURITY_CONTEXT EQU 37
|
||||
SYS_QUERY_SECURITY_CONTEXT EQU 38
|
||||
SYS_CREATE_FILE_MAPPING EQU 39
|
||||
SYS_MAP_FILE EQU 40
|
||||
SYS_ALLOC_VM EQU 33
|
||||
SYS_FREE_VM EQU 34
|
||||
SYS_PROTECT_VM EQU 35
|
||||
SYS_QUERY_VM EQU 36
|
||||
SYS_CLOSE_HANDLE EQU 37
|
||||
SYS_DUPLICATE_HANDLE EQU 38
|
||||
SYS_DERIVE_HANDLE EQU 39
|
||||
SYS_REVOKE_HANDLE EQU 40
|
||||
SYS_DERIVE_SECURITY_CONTEXT EQU 41
|
||||
SYS_QUERY_SECURITY_CONTEXT EQU 42
|
||||
SYS_OPEN_PROCESS_SECURITY_CONTEXT EQU 43
|
||||
SYS_CREATE_FILE_MAPPING EQU 44
|
||||
SYS_MAP_FILE EQU 45
|
||||
|
||||
; Synchronization objects.
|
||||
SYS_CREATE_MUTEX EQU 41
|
||||
SYS_TRY_ACQUIRE_MUTEX EQU 42
|
||||
SYS_RELEASE_MUTEX EQU 43
|
||||
SYS_CREATE_SEM EQU 44
|
||||
SYS_TRY_WAIT_SEM EQU 45
|
||||
SYS_SIGNAL_SEM EQU 46
|
||||
SYS_CREATE_EVENT EQU 47
|
||||
SYS_SIGNAL_EVENT EQU 48
|
||||
SYS_CLEAR_EVENT EQU 49
|
||||
SYS_CREATE_MUTEX EQU 46
|
||||
SYS_TRY_ACQUIRE_MUTEX EQU 47
|
||||
SYS_RELEASE_MUTEX EQU 48
|
||||
SYS_CREATE_SEM EQU 49
|
||||
SYS_TRY_WAIT_SEM EQU 50
|
||||
SYS_SIGNAL_SEM EQU 51
|
||||
SYS_CREATE_EVENT EQU 52
|
||||
SYS_SIGNAL_EVENT EQU 53
|
||||
SYS_CLEAR_EVENT EQU 54
|
||||
|
||||
; Queues and named queues.
|
||||
SYS_CREATE_QUEUE EQU 50
|
||||
SYS_SEND_QUEUE EQU 51
|
||||
SYS_RECV_QUEUE EQU 52
|
||||
SYS_PUBLISH_QUEUE EQU 53
|
||||
SYS_OPEN_NAMED_QUEUE EQU 54
|
||||
SYS_OPEN_NAMED_QUEUE_OWNER_PROCESS EQU 55
|
||||
SYS_UNPUBLISH_QUEUE EQU 56
|
||||
SYS_CREATE_QUEUE EQU 55
|
||||
SYS_SEND_QUEUE EQU 56
|
||||
SYS_RECV_QUEUE EQU 57
|
||||
SYS_PUBLISH_QUEUE EQU 58
|
||||
SYS_OPEN_NAMED_QUEUE EQU 59
|
||||
SYS_OPEN_NAMED_QUEUE_OWNER_PROCESS EQU 60
|
||||
SYS_UNPUBLISH_QUEUE EQU 61
|
||||
|
||||
; LPC-like Ports and well-known system services.
|
||||
SYS_CREATE_PORT EQU 57
|
||||
SYS_CONNECT_PORT EQU 58
|
||||
SYS_ACCEPT_PORT EQU 59
|
||||
SYS_SEND_PORT EQU 60
|
||||
SYS_RECEIVE_PORT EQU 61
|
||||
SYS_CALL_PORT EQU 62
|
||||
SYS_REPLY_PORT EQU 63
|
||||
SYS_DISCONNECT_PORT EQU 64
|
||||
SYS_REGISTER_SYSTEM_SERVICE EQU 65
|
||||
SYS_UNREGISTER_SYSTEM_SERVICE EQU 66
|
||||
SYS_CONNECT_SYSTEM_SERVICE EQU 67
|
||||
SYS_CREATE_PORT EQU 62
|
||||
SYS_CONNECT_PORT EQU 63
|
||||
SYS_ACCEPT_PORT EQU 64
|
||||
SYS_SEND_PORT EQU 65
|
||||
SYS_RECEIVE_PORT EQU 66
|
||||
SYS_CALL_PORT EQU 67
|
||||
SYS_REPLY_PORT EQU 68
|
||||
SYS_DISCONNECT_PORT EQU 69
|
||||
SYS_OPEN_PORT_PEER_PROCESS EQU 70
|
||||
SYS_REGISTER_SYSTEM_SERVICE EQU 71
|
||||
SYS_UNREGISTER_SYSTEM_SERVICE EQU 72
|
||||
SYS_CONNECT_SYSTEM_SERVICE EQU 73
|
||||
|
||||
; Mounted-volume manager control plane.
|
||||
SYS_QUERY_VOLUMES EQU 68
|
||||
SYS_OPEN_VOLUME EQU 69
|
||||
SYS_WAIT_VOLUME_CHANGE EQU 70
|
||||
SYS_QUERY_VOLUMES EQU 74
|
||||
SYS_OPEN_VOLUME EQU 75
|
||||
SYS_WAIT_VOLUME_CHANGE EQU 76
|
||||
|
||||
; Files and directories.
|
||||
SYS_OPEN_FILE_AT EQU 71
|
||||
SYS_OPEN_DIR_AT EQU 72
|
||||
SYS_STAT_AT EQU 73
|
||||
SYS_DELETE_AT EQU 74
|
||||
SYS_RENAME_AT EQU 75
|
||||
SYS_CREATE_DIR_AT EQU 76
|
||||
SYS_REMOVE_DIR_AT EQU 77
|
||||
SYS_READ_FILE EQU 78
|
||||
SYS_WRITE_FILE EQU 79
|
||||
SYS_READ_FILE_ASYNC EQU 80
|
||||
SYS_WRITE_FILE_ASYNC EQU 81
|
||||
SYS_CANCEL_IO EQU 82
|
||||
SYS_SEEK_FILE EQU 83
|
||||
SYS_GET_FILE_POS EQU 84
|
||||
SYS_GET_FILE_SIZE EQU 85
|
||||
SYS_GET_FILE_STAT EQU 86
|
||||
SYS_TRUNCATE_FILE EQU 87
|
||||
SYS_FLUSH_FILE EQU 88
|
||||
SYS_LOCK_FILE EQU 89
|
||||
SYS_UNLOCK_FILE EQU 90
|
||||
SYS_QUERY_FILE_LOCK EQU 91
|
||||
SYS_SET_FILE_STATUS EQU 92
|
||||
SYS_CREATE_PIPE EQU 93
|
||||
SYS_NOTIFY_PIPE EQU 94
|
||||
SYS_READ_DIR EQU 95
|
||||
SYS_OPEN_FILE_AT EQU 77
|
||||
SYS_OPEN_DIR_AT EQU 78
|
||||
SYS_STAT_AT EQU 79
|
||||
SYS_DELETE_AT EQU 80
|
||||
SYS_RENAME_AT EQU 81
|
||||
SYS_CREATE_DIR_AT EQU 82
|
||||
SYS_REMOVE_DIR_AT EQU 83
|
||||
SYS_READ_FILE EQU 84
|
||||
SYS_WRITE_FILE EQU 85
|
||||
SYS_READ_FILE_ASYNC EQU 86
|
||||
SYS_WRITE_FILE_ASYNC EQU 87
|
||||
SYS_CANCEL_IO EQU 88
|
||||
SYS_SEEK_FILE EQU 89
|
||||
SYS_GET_FILE_POS EQU 90
|
||||
SYS_GET_FILE_SIZE EQU 91
|
||||
SYS_GET_FILE_STAT EQU 92
|
||||
SYS_TRUNCATE_FILE EQU 93
|
||||
SYS_FLUSH_FILE EQU 94
|
||||
SYS_LOCK_FILE EQU 95
|
||||
SYS_UNLOCK_FILE EQU 96
|
||||
SYS_QUERY_FILE_LOCK EQU 97
|
||||
SYS_SET_FILE_STATUS EQU 98
|
||||
SYS_CREATE_PIPE EQU 99
|
||||
SYS_NOTIFY_PIPE EQU 100
|
||||
SYS_READ_DIR EQU 101
|
||||
|
||||
; Console, display, and surfaces.
|
||||
SYS_WRITE_CONSOLE EQU 96
|
||||
SYS_GET_CONSOLE_INFO EQU 97
|
||||
SYS_SET_CONSOLE_CURSOR EQU 98
|
||||
SYS_FILL_CONSOLE_CHARACTER EQU 99
|
||||
SYS_FILL_CONSOLE_ATTRIBUTE EQU 100
|
||||
SYS_PUT_SCREEN_CHAR EQU 101
|
||||
SYS_CLEAR_SCREEN EQU 102
|
||||
SYS_GET_SCREEN_SIZE EQU 103
|
||||
SYS_QUERY_DISPLAY_INFO EQU 104
|
||||
SYS_QUERY_DISPLAY_MANAGER_INFO EQU 105
|
||||
SYS_PRESENT_DISPLAY_MANAGER_SURFACE EQU 106
|
||||
SYS_SET_DISPLAY_MANAGER_CURSOR EQU 107
|
||||
SYS_WRITE_DISPLAY_MANAGER_CONSOLE EQU 108
|
||||
SYS_QUERY_DISPLAY_MANAGER_CONSOLE_INFO EQU 109
|
||||
SYS_SET_DISPLAY_MANAGER_CONSOLE_CURSOR EQU 110
|
||||
SYS_FILL_DISPLAY_MANAGER_CONSOLE_CHARACTER EQU 111
|
||||
SYS_FILL_DISPLAY_MANAGER_CONSOLE_ATTRIBUTE EQU 112
|
||||
SYS_PUT_DISPLAY_MANAGER_CONSOLE_CHARACTER EQU 113
|
||||
SYS_CLEAR_DISPLAY_MANAGER_CONSOLE EQU 114
|
||||
SYS_OPEN_DISPLAY_CLOCK EQU 115
|
||||
SYS_CREATE_SURFACE EQU 116
|
||||
SYS_MAP_SURFACE EQU 117
|
||||
SYS_UNMAP_SURFACE EQU 118
|
||||
SYS_QUERY_SURFACE EQU 119
|
||||
SYS_COMMIT_SURFACE EQU 120
|
||||
SYS_WRITE_CONSOLE EQU 102
|
||||
SYS_GET_CONSOLE_INFO EQU 103
|
||||
SYS_SET_CONSOLE_CURSOR EQU 104
|
||||
SYS_FILL_CONSOLE_CHARACTER EQU 105
|
||||
SYS_FILL_CONSOLE_ATTRIBUTE EQU 106
|
||||
SYS_PUT_SCREEN_CHAR EQU 107
|
||||
SYS_CLEAR_SCREEN EQU 108
|
||||
SYS_GET_SCREEN_SIZE EQU 109
|
||||
SYS_QUERY_DISPLAY_INFO EQU 110
|
||||
SYS_QUERY_DISPLAY_MANAGER_INFO EQU 111
|
||||
SYS_PRESENT_DISPLAY_MANAGER_SURFACE EQU 112
|
||||
SYS_SET_DISPLAY_MANAGER_CURSOR EQU 113
|
||||
SYS_WRITE_DISPLAY_MANAGER_CONSOLE EQU 114
|
||||
SYS_QUERY_DISPLAY_MANAGER_CONSOLE_INFO EQU 115
|
||||
SYS_SET_DISPLAY_MANAGER_CONSOLE_CURSOR EQU 116
|
||||
SYS_FILL_DISPLAY_MANAGER_CONSOLE_CHARACTER EQU 117
|
||||
SYS_FILL_DISPLAY_MANAGER_CONSOLE_ATTRIBUTE EQU 118
|
||||
SYS_PUT_DISPLAY_MANAGER_CONSOLE_CHARACTER EQU 119
|
||||
SYS_CLEAR_DISPLAY_MANAGER_CONSOLE EQU 120
|
||||
SYS_OPEN_DISPLAY_CLOCK EQU 121
|
||||
SYS_CREATE_SURFACE EQU 122
|
||||
SYS_MAP_SURFACE EQU 123
|
||||
SYS_UNMAP_SURFACE EQU 124
|
||||
SYS_QUERY_SURFACE EQU 125
|
||||
SYS_COMMIT_SURFACE EQU 126
|
||||
|
||||
; Native render audio.
|
||||
SYS_AUDIO_ENUMERATE_ENDPOINTS EQU 121
|
||||
SYS_AUDIO_OPEN_STREAM EQU 122
|
||||
SYS_AUDIO_WRITE EQU 123
|
||||
SYS_AUDIO_ARM_WAIT EQU 124
|
||||
SYS_AUDIO_QUERY_STREAM EQU 125
|
||||
SYS_AUDIO_START EQU 126
|
||||
SYS_AUDIO_PAUSE EQU 127
|
||||
SYS_AUDIO_RESUME EQU 128
|
||||
SYS_AUDIO_DRAIN EQU 129
|
||||
SYS_AUDIO_STOP EQU 130
|
||||
SYS_AUDIO_RESET EQU 131
|
||||
SYS_AUDIO_SET_VOLUME EQU 132
|
||||
SYS_AUDIO_SET_MASTER_VOLUME EQU 133
|
||||
SYS_AUDIO_ENUMERATE_ENDPOINTS EQU 127
|
||||
SYS_AUDIO_OPEN_STREAM EQU 128
|
||||
SYS_AUDIO_WRITE EQU 129
|
||||
SYS_AUDIO_ARM_WAIT EQU 130
|
||||
SYS_AUDIO_QUERY_STREAM EQU 131
|
||||
SYS_AUDIO_START EQU 132
|
||||
SYS_AUDIO_PAUSE EQU 133
|
||||
SYS_AUDIO_RESUME EQU 134
|
||||
SYS_AUDIO_DRAIN EQU 135
|
||||
SYS_AUDIO_STOP EQU 136
|
||||
SYS_AUDIO_RESET EQU 137
|
||||
SYS_AUDIO_SET_VOLUME EQU 138
|
||||
SYS_AUDIO_SET_MASTER_VOLUME EQU 139
|
||||
|
||||
; Input.
|
||||
SYS_READ_INPUT_MANAGER_EVENT EQU 134
|
||||
SYS_POLL_KEYBOARD EQU 135
|
||||
SYS_IS_KEY_DOWN EQU 136
|
||||
SYS_READ_KEYBOARD_CHAR EQU 137
|
||||
SYS_READ_KEY EQU 138
|
||||
SYS_GET_KEY_MODIFIERS EQU 139
|
||||
SYS_QUERY_GLOBAL_INPUT_STATE EQU 140
|
||||
SYS_OPEN_INPUT_QUEUE EQU 141
|
||||
SYS_READ_INPUT_EVENT EQU 142
|
||||
SYS_PEEK_INPUT_EVENT EQU 143
|
||||
SYS_PEEK_MOUSE EQU 144
|
||||
SYS_READ_MOUSE EQU 145
|
||||
SYS_GET_MOUSE_POS EQU 146
|
||||
SYS_READ_INPUT_MANAGER_EVENT EQU 140
|
||||
SYS_POLL_KEYBOARD EQU 141
|
||||
SYS_IS_KEY_DOWN EQU 142
|
||||
SYS_READ_KEYBOARD_CHAR EQU 143
|
||||
SYS_READ_KEY EQU 144
|
||||
SYS_GET_KEY_MODIFIERS EQU 145
|
||||
SYS_QUERY_GLOBAL_INPUT_STATE EQU 146
|
||||
SYS_OPEN_INPUT_QUEUE EQU 147
|
||||
SYS_READ_INPUT_EVENT EQU 148
|
||||
SYS_PEEK_INPUT_EVENT EQU 149
|
||||
SYS_PEEK_MOUSE EQU 150
|
||||
SYS_READ_MOUSE EQU 151
|
||||
SYS_GET_MOUSE_POS EQU 152
|
||||
|
||||
; Time, debug, and system information.
|
||||
SYS_CREATE_TIMER EQU 147
|
||||
SYS_SET_TIMER EQU 148
|
||||
SYS_CANCEL_TIMER EQU 149
|
||||
SYS_GET_TICK EQU 150
|
||||
SYS_GET_TICK_FREQUENCY EQU 151
|
||||
SYS_GET_SYSTEM_TIME EQU 152
|
||||
SYS_PRINT_DEBUG EQU 153
|
||||
SYS_QUERY_TRAP_FRAME EQU 154
|
||||
SYS_GET_MEMORY_STATUS EQU 155
|
||||
SYS_QUERY_KERNEL_STATS EQU 156
|
||||
SYS_CREATE_TIMER EQU 153
|
||||
SYS_SET_TIMER EQU 154
|
||||
SYS_CANCEL_TIMER EQU 155
|
||||
SYS_GET_TICK EQU 156
|
||||
SYS_GET_TICK_FREQUENCY EQU 157
|
||||
SYS_GET_SYSTEM_TIME EQU 158
|
||||
SYS_PRINT_DEBUG EQU 159
|
||||
SYS_QUERY_TRAP_FRAME EQU 160
|
||||
SYS_GET_MEMORY_STATUS EQU 161
|
||||
SYS_QUERY_KERNEL_STATS EQU 162
|
||||
|
||||
; Native sockets and polling.
|
||||
SYS_CREATE_SOCKET EQU 157
|
||||
SYS_SOCKET_IO_ASYNC EQU 158
|
||||
SYS_BIND_SOCKET EQU 159
|
||||
SYS_LISTEN_SOCKET EQU 160
|
||||
SYS_ACCEPT_SOCKET EQU 161
|
||||
SYS_CONNECT_SOCKET EQU 162
|
||||
SYS_SEND_SOCKET EQU 163
|
||||
SYS_RECV_SOCKET EQU 164
|
||||
SYS_SHUTDOWN_SOCKET EQU 165
|
||||
SYS_SEND_TO_SOCKET EQU 166
|
||||
SYS_RECV_FROM_SOCKET EQU 167
|
||||
SYS_RESOLVE_HOST EQU 168
|
||||
SYS_SET_SOCKET_OPTION EQU 169
|
||||
SYS_GET_SOCKET_OPTION EQU 170
|
||||
SYS_POLL EQU 171
|
||||
SYS_CREATE_SOCKET EQU 163
|
||||
SYS_SOCKET_IO_ASYNC EQU 164
|
||||
SYS_BIND_SOCKET EQU 165
|
||||
SYS_LISTEN_SOCKET EQU 166
|
||||
SYS_ACCEPT_SOCKET EQU 167
|
||||
SYS_CONNECT_SOCKET EQU 168
|
||||
SYS_SEND_SOCKET EQU 169
|
||||
SYS_RECV_SOCKET EQU 170
|
||||
SYS_SHUTDOWN_SOCKET EQU 171
|
||||
SYS_SEND_TO_SOCKET EQU 172
|
||||
SYS_RECV_FROM_SOCKET EQU 173
|
||||
SYS_RESOLVE_HOST EQU 174
|
||||
SYS_SET_SOCKET_OPTION EQU 175
|
||||
SYS_GET_SOCKET_OPTION EQU 176
|
||||
SYS_POLL EQU 177
|
||||
|
||||
SYS_MAX EQU 172
|
||||
SYS_MAX EQU 178
|
||||
Reference in new issue
Block a user