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:
maksw committed 2026-08-11 18:38:36 +02:00
1 parent 8b254f84f4
commit 4add6789ba
177 files changed
+22565 -3070

No files matched your search

+134 -118
View File
@@ -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