add ntfs.sys standalone driver target, change default usb vhd layout formatting to ntfs, implement Fat32CreateDir for directory creation support in the fat32 file system driver, add a dedicated HAL serial output endpoint for COM1 writes in hal_serial.c and subscribe serial to HAL text streams, introduce waitable kernel timers with KeTimerCreate, KeTimerSet, and KeTimerCancel alongside spinlock-protected global timer list initialization and scheduler tick tracking, implement SyscallWriteFileAsync system call for asynchronous non-blocking file writes, refactor NetSocketConnect and NetSocketSendTo to use generic SYS_SOCKET_ADDRESS_K structures instead of being hardcoded to IPv4, update gethostbyname and DNS name resolution to support IPv6 parsing via ResolveNameFamily, update tcpserve.exe with -4 and -6 command-line flags to accept and display IPv6 addresses, append size and version headers to all kernel telemetry and statistics structures including SYS_PMM_STATS, SYS_CPU_STATS, and SYS_SCHEDULER_STATS, update winmm timeGetTime to look up high-resolution hardware frequencies via SysGetTickFrequency, integrate 14 native smoke test applications.

This commit is contained in:
maksw committed 2026-06-26 15:18:48 +02:00
1 parent 2c4a68a75f
commit ed3d065abd
156 files changed
+10509 -2643

No files matched your search

+133 -111
View File
@@ -1,112 +1,134 @@
; syscall_nr.inc
; Syscall numbers shared by MASM user-mode stubs.
SYS_EXIT_PROCESS EQU 0
SYS_EXIT_THREAD EQU 1
SYS_CREATE_PROCESS EQU 2
SYS_WAIT_SINGLE 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_RETIRED_WAIT_THREAD EQU 9
SYS_GET_CURRENT_TID EQU 10
SYS_GET_CURRENT_PID EQU 11
SYS_SET_THREAD_PRIORITY EQU 12
SYS_YIELD EQU 13
SYS_SLEEP EQU 14
SYS_SET_USER_APC_DISPATCHER EQU 15
SYS_APC_RETURN EQU 16
SYS_ALLOC_VM EQU 17
SYS_FREE_VM EQU 18
SYS_PROTECT_VM EQU 19
SYS_QUERY_VM EQU 20
SYS_CLOSE_HANDLE EQU 21
SYS_CREATE_MUTEX EQU 22
SYS_RETIRED_ACQUIRE_MUTEX EQU 23
SYS_TRY_ACQUIRE_MUTEX EQU 24
SYS_RELEASE_MUTEX EQU 25
SYS_CREATE_SEM EQU 26
SYS_RETIRED_WAIT_SEM EQU 27
SYS_TRY_WAIT_SEM EQU 28
SYS_SIGNAL_SEM EQU 29
SYS_CREATE_EVENT EQU 30
SYS_SIGNAL_EVENT EQU 31
SYS_CLEAR_EVENT EQU 32
SYS_RETIRED_WAIT_EVENT EQU 33
SYS_CREATE_QUEUE EQU 34
SYS_SEND_QUEUE EQU 35
SYS_RECV_QUEUE EQU 36
SYS_PUBLISH_QUEUE EQU 37
SYS_OPEN_NAMED_QUEUE EQU 38
SYS_DUPLICATE_QUEUE EQU 39
SYS_GET_NAMED_QUEUE_OWNER_PID EQU 40
SYS_OPEN_FILE EQU 41
SYS_CREATE_FILE EQU 42
SYS_READ_FILE EQU 43
SYS_WRITE_FILE EQU 44
SYS_READ_FILE_ASYNC EQU 45
SYS_WRITE_FILE_ASYNC EQU 46
SYS_CANCEL_IO EQU 47
SYS_SEEK_FILE EQU 48
SYS_GET_FILE_POS EQU 49
SYS_GET_FILE_SIZE EQU 50
SYS_TRUNCATE_FILE EQU 51
SYS_DELETE_FILE EQU 52
SYS_RENAME_FILE EQU 53
SYS_OPEN_DIR EQU 54
SYS_READ_DIR EQU 55
SYS_CREATE_DIR EQU 56
SYS_REMOVE_DIR EQU 57
SYS_SET_CWD EQU 58
SYS_GET_CWD EQU 59
SYS_WRITE_CONSOLE EQU 60
SYS_GET_CONSOLE_INFO EQU 61
SYS_SET_CONSOLE_CURSOR EQU 62
SYS_FILL_CONSOLE_CHARACTER EQU 63
SYS_FILL_CONSOLE_ATTRIBUTE EQU 64
SYS_PUT_SCREEN_CHAR EQU 65
SYS_CLEAR_SCREEN EQU 66
SYS_GET_SCREEN_SIZE EQU 67
SYS_QUERY_DISPLAY_INFO EQU 68
SYS_POLL_KEYBOARD EQU 69
SYS_IS_KEY_DOWN EQU 70
SYS_READ_KEYBOARD_CHAR EQU 71
SYS_READ_KEY EQU 72
SYS_GET_KEY_MODIFIERS EQU 73
SYS_POLL_MOUSE EQU 74
SYS_READ_MOUSE EQU 75
SYS_GET_MOUSE_POS EQU 76
SYS_GET_TICK EQU 77
SYS_PRINT_DEBUG EQU 78
SYS_QUERY_TRAP_FRAME EQU 79
SYS_CREATE_SOCKET EQU 80
SYS_BIND_SOCKET EQU 81
SYS_LISTEN_SOCKET EQU 82
SYS_ACCEPT_SOCKET EQU 83
SYS_CONNECT_SOCKET EQU 84
SYS_SEND_SOCKET EQU 85
SYS_RECV_SOCKET EQU 86
SYS_SHUTDOWN_SOCKET EQU 87
SYS_SEND_TO_SOCKET EQU 88
SYS_RECV_FROM_SOCKET EQU 89
SYS_RESOLVE_HOST EQU 90
SYS_SET_SOCKET_OPTION EQU 91
SYS_GET_SOCKET_OPTION EQU 92
SYS_POLL EQU 93
SYS_GET_MEMORY_STATUS EQU 94
SYS_QUERY_KERNEL_STATS EQU 95
SYS_GET_SYSTEM_TIME EQU 96
SYS_CREATE_FILE_MAPPING EQU 97
SYS_MAP_FILE EQU 98
SYS_CREATE_SURFACE EQU 99
SYS_MAP_SURFACE EQU 100
SYS_QUERY_SURFACE EQU 101
SYS_PRESENT_SURFACE EQU 102
SYS_GET_THREAD_LIST EQU 103
SYS_READ_INPUT_EVENT EQU 104
SYS_PEEK_INPUT_EVENT EQU 105
SYS_WAIT_MANY EQU 106
SYS_OPEN_INPUT_QUEUE EQU 107
SYS_FLUSH_FILE EQU 108
SYS_MAX EQU 109
; Process, threads, waits, and APC.
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_GET_THREAD_LIST EQU 9
SYS_GET_CURRENT_TID EQU 10
SYS_GET_CURRENT_PID EQU 11
SYS_SET_THREAD_PRIORITY EQU 12
SYS_YIELD EQU 13
SYS_SLEEP EQU 14
SYS_WAIT_SINGLE EQU 15
SYS_WAIT_MANY EQU 16
SYS_SET_USER_APC_DISPATCHER EQU 17
SYS_APC_RETURN EQU 18
; Virtual memory, mappings, and handles.
SYS_ALLOC_VM EQU 19
SYS_FREE_VM EQU 20
SYS_PROTECT_VM EQU 21
SYS_QUERY_VM EQU 22
SYS_CLOSE_HANDLE EQU 23
SYS_DUPLICATE_HANDLE EQU 24
SYS_CREATE_FILE_MAPPING EQU 25
SYS_MAP_FILE EQU 26
; Synchronization objects.
SYS_CREATE_MUTEX EQU 27
SYS_TRY_ACQUIRE_MUTEX EQU 28
SYS_RELEASE_MUTEX EQU 29
SYS_CREATE_SEM EQU 30
SYS_TRY_WAIT_SEM EQU 31
SYS_SIGNAL_SEM EQU 32
SYS_CREATE_EVENT EQU 33
SYS_SIGNAL_EVENT EQU 34
SYS_CLEAR_EVENT EQU 35
; Queues and named queues.
SYS_CREATE_QUEUE EQU 36
SYS_SEND_QUEUE EQU 37
SYS_RECV_QUEUE EQU 38
SYS_PUBLISH_QUEUE EQU 39
SYS_OPEN_NAMED_QUEUE EQU 40
SYS_OPEN_NAMED_QUEUE_OWNER_PROCESS EQU 41
; Files, directories, and current directory.
SYS_OPEN_FILE EQU 42
SYS_READ_FILE EQU 43
SYS_WRITE_FILE EQU 44
SYS_READ_FILE_ASYNC EQU 45
SYS_WRITE_FILE_ASYNC EQU 46
SYS_CANCEL_IO EQU 47
SYS_SEEK_FILE EQU 48
SYS_GET_FILE_POS EQU 49
SYS_GET_FILE_SIZE EQU 50
SYS_GET_FILE_STAT EQU 51
SYS_STAT_FILE EQU 52
SYS_TRUNCATE_FILE EQU 53
SYS_FLUSH_FILE EQU 54
SYS_DELETE_FILE EQU 55
SYS_RENAME_FILE EQU 56
SYS_LOCK_FILE EQU 57
SYS_UNLOCK_FILE EQU 58
SYS_OPEN_DIR EQU 59
SYS_READ_DIR EQU 60
SYS_CREATE_DIR EQU 61
SYS_REMOVE_DIR EQU 62
SYS_SET_CWD EQU 63
SYS_REAL_PATH EQU 64
; Console, display, and surfaces.
SYS_WRITE_CONSOLE EQU 65
SYS_GET_CONSOLE_INFO EQU 66
SYS_SET_CONSOLE_CURSOR EQU 67
SYS_FILL_CONSOLE_CHARACTER EQU 68
SYS_FILL_CONSOLE_ATTRIBUTE EQU 69
SYS_PUT_SCREEN_CHAR EQU 70
SYS_CLEAR_SCREEN EQU 71
SYS_GET_SCREEN_SIZE EQU 72
SYS_QUERY_DISPLAY_INFO EQU 73
SYS_CREATE_SURFACE EQU 74
SYS_MAP_SURFACE EQU 75
SYS_QUERY_SURFACE EQU 76
SYS_PRESENT_SURFACE EQU 77
; Input.
SYS_POLL_KEYBOARD EQU 78
SYS_IS_KEY_DOWN EQU 79
SYS_READ_KEYBOARD_CHAR EQU 80
SYS_READ_KEY EQU 81
SYS_GET_KEY_MODIFIERS EQU 82
SYS_OPEN_INPUT_QUEUE EQU 83
SYS_READ_INPUT_EVENT EQU 84
SYS_PEEK_INPUT_EVENT EQU 85
SYS_PEEK_MOUSE EQU 86
SYS_READ_MOUSE EQU 87
SYS_GET_MOUSE_POS EQU 88
; Time, debug, and system information.
SYS_CREATE_TIMER EQU 89
SYS_SET_TIMER EQU 90
SYS_CANCEL_TIMER EQU 91
SYS_GET_TICK EQU 92
SYS_GET_TICK_FREQUENCY EQU 93
SYS_GET_SYSTEM_TIME EQU 94
SYS_PRINT_DEBUG EQU 95
SYS_QUERY_TRAP_FRAME EQU 96
SYS_GET_MEMORY_STATUS EQU 97
SYS_QUERY_KERNEL_STATS EQU 98
; Native sockets and polling.
SYS_CREATE_SOCKET EQU 99
SYS_BIND_SOCKET EQU 100
SYS_LISTEN_SOCKET EQU 101
SYS_ACCEPT_SOCKET EQU 102
SYS_CONNECT_SOCKET EQU 103
SYS_SEND_SOCKET EQU 104
SYS_RECV_SOCKET EQU 105
SYS_SHUTDOWN_SOCKET EQU 106
SYS_SEND_TO_SOCKET EQU 107
SYS_RECV_FROM_SOCKET EQU 108
SYS_RESOLVE_HOST EQU 109
SYS_SET_SOCKET_OPTION EQU 110
SYS_GET_SOCKET_OPTION EQU 111
SYS_POLL EQU 112
SYS_MAX EQU 113