add a realtime scheduler class and priority-inheritance mutexes with timeouts and abandonment, add an HDA audio driver and a SYS_AUDIO_* syscall family, flesh out kernel32 with Win32 threads, events, mutexes, critical sections, and condition variables, add SYS_RESUME_THREAD for suspended thread creation, add KeInitializeMemoryTypes to reprogram MTRRs and install a canonical PAT for WB/WC/UC control, rework the display pipeline with a pitched present path and console output flush, bring back disk.vhd with mtools since vvfat fucking sucks, harden AHCI with serialized cache flush, USB mass storage with SCSI sense-data decoding, and xHCI with cleaner DMA teardown, fix the last stray for(;;) in HalStopProcessor to while(true), pile on smoke tests for audio, win32 sync primitives, and thread suspend, implement AHCI timeout, kill readahead since it was desperetaly trying to murder me, fix doom sound x2.
This commit is contained in:
1 parent
8b254f84f4
commit
4add6789ba
177 files changed
+22565
-3070
No files matched your search
+134
-118
@@ -10,138 +10,154 @@ SYS_KILL_PROCESS EQU 5
|
||||
SYS_GET_PROCESS_LIST EQU 6
|
||||
SYS_GET_PROCESS_PID EQU 7
|
||||
SYS_CREATE_THREAD EQU 8
|
||||
SYS_GET_THREAD_LIST EQU 9
|
||||
SYS_LOAD_MODULE EQU 10
|
||||
SYS_UNLOAD_MODULE EQU 11
|
||||
SYS_GET_MODULE_INFO EQU 12
|
||||
SYS_GET_MODULE_EXPORT EQU 13
|
||||
SYS_GET_MODULE_LIST EQU 14
|
||||
SYS_GET_CURRENT_TID EQU 15
|
||||
SYS_GET_CURRENT_PID EQU 16
|
||||
SYS_SET_THREAD_PRIORITY EQU 17
|
||||
SYS_YIELD EQU 18
|
||||
SYS_SLEEP EQU 19
|
||||
SYS_WAIT_SINGLE EQU 20
|
||||
SYS_WAIT_MANY EQU 21
|
||||
SYS_SET_USER_APC_DISPATCHER EQU 22
|
||||
SYS_APC_RETURN EQU 23
|
||||
SYS_SET_EXCEPTION_DISPATCHER EQU 24
|
||||
SYS_GET_EXCEPTION_DISPATCHER EQU 25
|
||||
SYS_CONTINUE_EXCEPTION EQU 26
|
||||
SYS_RAISE_EXCEPTION EQU 27
|
||||
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
|
||||
|
||||
; Virtual memory, mappings, and handles.
|
||||
SYS_ALLOC_VM EQU 28
|
||||
SYS_FREE_VM EQU 29
|
||||
SYS_PROTECT_VM EQU 30
|
||||
SYS_QUERY_VM EQU 31
|
||||
SYS_CLOSE_HANDLE EQU 32
|
||||
SYS_DUPLICATE_HANDLE EQU 33
|
||||
SYS_CREATE_FILE_MAPPING EQU 34
|
||||
SYS_MAP_FILE EQU 35
|
||||
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
|
||||
|
||||
; Synchronization objects.
|
||||
SYS_CREATE_MUTEX EQU 36
|
||||
SYS_TRY_ACQUIRE_MUTEX EQU 37
|
||||
SYS_RELEASE_MUTEX EQU 38
|
||||
SYS_CREATE_SEM EQU 39
|
||||
SYS_TRY_WAIT_SEM EQU 40
|
||||
SYS_SIGNAL_SEM EQU 41
|
||||
SYS_CREATE_EVENT EQU 42
|
||||
SYS_SIGNAL_EVENT EQU 43
|
||||
SYS_CLEAR_EVENT EQU 44
|
||||
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
|
||||
|
||||
; Queues and named queues.
|
||||
SYS_CREATE_QUEUE EQU 45
|
||||
SYS_SEND_QUEUE EQU 46
|
||||
SYS_RECV_QUEUE EQU 47
|
||||
SYS_PUBLISH_QUEUE EQU 48
|
||||
SYS_OPEN_NAMED_QUEUE EQU 49
|
||||
SYS_OPEN_NAMED_QUEUE_OWNER_PROCESS EQU 50
|
||||
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
|
||||
|
||||
; Files, directories, and current directory.
|
||||
SYS_OPEN_FILE EQU 51
|
||||
SYS_READ_FILE EQU 52
|
||||
SYS_WRITE_FILE EQU 53
|
||||
SYS_READ_FILE_ASYNC EQU 54
|
||||
SYS_WRITE_FILE_ASYNC EQU 55
|
||||
SYS_CANCEL_IO EQU 56
|
||||
SYS_SEEK_FILE EQU 57
|
||||
SYS_GET_FILE_POS EQU 58
|
||||
SYS_GET_FILE_SIZE EQU 59
|
||||
SYS_GET_FILE_STAT EQU 60
|
||||
SYS_STAT_FILE EQU 61
|
||||
SYS_TRUNCATE_FILE EQU 62
|
||||
SYS_FLUSH_FILE EQU 63
|
||||
SYS_DELETE_FILE EQU 64
|
||||
SYS_RENAME_FILE EQU 65
|
||||
SYS_LOCK_FILE EQU 66
|
||||
SYS_UNLOCK_FILE EQU 67
|
||||
SYS_OPEN_DIR EQU 68
|
||||
SYS_READ_DIR EQU 69
|
||||
SYS_CREATE_DIR EQU 70
|
||||
SYS_REMOVE_DIR EQU 71
|
||||
SYS_SET_CWD EQU 72
|
||||
SYS_REAL_PATH EQU 73
|
||||
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
|
||||
|
||||
; Console, display, and surfaces.
|
||||
SYS_WRITE_CONSOLE EQU 74
|
||||
SYS_GET_CONSOLE_INFO EQU 75
|
||||
SYS_SET_CONSOLE_CURSOR EQU 76
|
||||
SYS_FILL_CONSOLE_CHARACTER EQU 77
|
||||
SYS_FILL_CONSOLE_ATTRIBUTE EQU 78
|
||||
SYS_PUT_SCREEN_CHAR EQU 79
|
||||
SYS_CLEAR_SCREEN EQU 80
|
||||
SYS_GET_SCREEN_SIZE EQU 81
|
||||
SYS_QUERY_DISPLAY_INFO EQU 82
|
||||
SYS_OPEN_DISPLAY_CLOCK EQU 83
|
||||
SYS_CREATE_SURFACE EQU 84
|
||||
SYS_MAP_SURFACE EQU 85
|
||||
SYS_QUERY_SURFACE EQU 86
|
||||
SYS_PRESENT_SURFACE EQU 87
|
||||
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
|
||||
|
||||
; 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
|
||||
|
||||
; Input.
|
||||
SYS_POLL_KEYBOARD EQU 88
|
||||
SYS_IS_KEY_DOWN EQU 89
|
||||
SYS_READ_KEYBOARD_CHAR EQU 90
|
||||
SYS_READ_KEY EQU 91
|
||||
SYS_GET_KEY_MODIFIERS EQU 92
|
||||
SYS_QUERY_GLOBAL_INPUT_STATE EQU 93
|
||||
SYS_OPEN_INPUT_QUEUE EQU 94
|
||||
SYS_READ_INPUT_EVENT EQU 95
|
||||
SYS_PEEK_INPUT_EVENT EQU 96
|
||||
SYS_PEEK_MOUSE EQU 97
|
||||
SYS_READ_MOUSE EQU 98
|
||||
SYS_GET_MOUSE_POS EQU 99
|
||||
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
|
||||
|
||||
; Time, debug, and system information.
|
||||
SYS_CREATE_TIMER EQU 100
|
||||
SYS_SET_TIMER EQU 101
|
||||
SYS_CANCEL_TIMER EQU 102
|
||||
SYS_GET_TICK EQU 103
|
||||
SYS_GET_TICK_FREQUENCY EQU 104
|
||||
SYS_GET_SYSTEM_TIME EQU 105
|
||||
SYS_PRINT_DEBUG EQU 106
|
||||
SYS_QUERY_TRAP_FRAME EQU 107
|
||||
SYS_GET_MEMORY_STATUS EQU 108
|
||||
SYS_QUERY_KERNEL_STATS EQU 109
|
||||
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
|
||||
|
||||
; Native sockets and polling.
|
||||
SYS_CREATE_SOCKET EQU 110
|
||||
SYS_SOCKET_IO_ASYNC EQU 111
|
||||
SYS_BIND_SOCKET EQU 112
|
||||
SYS_LISTEN_SOCKET EQU 113
|
||||
SYS_ACCEPT_SOCKET EQU 114
|
||||
SYS_CONNECT_SOCKET EQU 115
|
||||
SYS_SEND_SOCKET EQU 116
|
||||
SYS_RECV_SOCKET EQU 117
|
||||
SYS_SHUTDOWN_SOCKET EQU 118
|
||||
SYS_SEND_TO_SOCKET EQU 119
|
||||
SYS_RECV_FROM_SOCKET EQU 120
|
||||
SYS_RESOLVE_HOST EQU 121
|
||||
SYS_SET_SOCKET_OPTION EQU 122
|
||||
SYS_GET_SOCKET_OPTION EQU 123
|
||||
SYS_POLL EQU 124
|
||||
SYS_UNPUBLISH_QUEUE EQU 125
|
||||
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_MAX EQU 126
|
||||
SYS_MAX EQU 140
|
||||
Reference in new issue
Block a user