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:
maksw committed 2026-08-20 12:33:17 +02:00
1 parent 4add6789ba
commit f882d339fb
232 files changed
+20934 -8898

No files matched your search

@@ -23,18 +23,18 @@ static int16_t gAudibleFrames[TEST_AUDIBLE_FRAMES * 2u];
static uint32_t gOpenStream;
typedef char TEST_AUDIO_FORMAT_SIZE[(sizeof(SYS_AUDIO_FORMAT) == 8) ? 1 : -1];
typedef char TEST_AUDIO_ENDPOINT_INFO_SIZE[(sizeof(SYS_AUDIO_ENDPOINT_INFO) == 64) ? 1 : -1];
typedef char TEST_AUDIO_ENDPOINT_INFO_SIZE[(sizeof(SYS_AUDIO_ENDPOINT_INFO) == 60) ? 1 : -1];
typedef char TEST_AUDIO_ENUMERATE_REQUEST_SIZE[(sizeof(SYS_AUDIO_ENUMERATE_ENDPOINTS_REQUEST) == 32) ? 1 : -1];
typedef char TEST_AUDIO_OPEN_REQUEST_SIZE[(sizeof(SYS_AUDIO_OPEN_STREAM_REQUEST) == 40) ? 1 : -1];
typedef char TEST_AUDIO_OPEN_REQUEST_SIZE[(sizeof(SYS_AUDIO_OPEN_STREAM_REQUEST) == 32) ? 1 : -1];
typedef char TEST_AUDIO_WRITE_REQUEST_SIZE[(sizeof(SYS_AUDIO_WRITE_REQUEST) == 32) ? 1 : -1];
typedef char TEST_AUDIO_ARM_WAIT_REQUEST_SIZE[(sizeof(SYS_AUDIO_ARM_WAIT_REQUEST) == 56) ? 1 : -1];
typedef char TEST_AUDIO_STREAM_INFO_SIZE[(sizeof(SYS_AUDIO_STREAM_INFO) == 128) ? 1 : -1];
typedef char TEST_AUDIO_VOLUME_REQUEST_SIZE[(sizeof(SYS_AUDIO_SET_VOLUME_REQUEST) == 24) ? 1 : -1];
typedef char TEST_AUDIO_MASTER_VOLUME_REQUEST_SIZE[(sizeof(SYS_AUDIO_SET_MASTER_VOLUME_REQUEST) == 24) ? 1 : -1];
typedef char TEST_AUDIO_MASTER_VOLUME_REQUEST_SIZE[(sizeof(SYS_AUDIO_SET_MASTER_VOLUME_REQUEST) == 20) ? 1 : -1];
// Writes one NUL-terminated string to the console.
static void print(const char* text) {
SYS_WRITE_CONSOLE_REQUEST request = { SysSvFromCstr(text) };
SYS_WRITE_CONSOLE_REQUEST request = { sizeof(SYS_WRITE_CONSOLE_REQUEST), SysSvFromCstr(text) };
(void)SysWriteConsole(&request);
}
@@ -52,7 +52,7 @@ static void print_u64(uint64_t value) {
}
while (count) {
char character = digits[--count];
SYS_WRITE_CONSOLE_REQUEST request = { SysSvFromParts(&character, 1) };
SYS_WRITE_CONSOLE_REQUEST request = { sizeof(SYS_WRITE_CONSOLE_REQUEST), SysSvFromParts(&character, 1) };
(void)SysWriteConsole(&request);
}
}
@@ -187,7 +187,7 @@ static const SYS_AUDIO_ENDPOINT_INFO* select_endpoint(const SYS_AUDIO_ENDPOINT_I
}
// Queries one endpoint by its stable identifier.
static SYS_AUDIO_ENDPOINT_INFO query_endpoint(uint64_t endpointId) {
static SYS_AUDIO_ENDPOINT_INFO query_endpoint(uint32_t endpointId) {
SYS_AUDIO_ENDPOINT_INFO endpoints[SYS_AUDIO_MAX_ENDPOINTS];
uint32_t count = 0;
SYS_AUDIO_ENUMERATE_ENDPOINTS_REQUEST request;
@@ -238,7 +238,7 @@ static void test_master_volume(const SYS_AUDIO_ENDPOINT_INFO* endpoint) {
}
// Opens one stream format and checks the expected status.
static uint32_t open_stream_format(uint64_t endpointId,
static uint32_t open_stream_format(uint32_t endpointId,
uint32_t sampleRate,
uint16_t channelCount,
uint16_t sampleFormat,
@@ -263,7 +263,7 @@ static uint32_t open_stream_format(uint64_t endpointId,
}
// Proves the complete accepted and rejected source-format surface.
static void test_format_contract(uint64_t endpointId) {
static void test_format_contract(uint32_t endpointId) {
static const uint32_t rates[] = { 11025u, 22050u, 44100u, 48000u };
for (uint32_t rateIndex = 0; rateIndex < sizeof(rates) / sizeof(rates[0]); rateIndex++) {
for (uint16_t channels = 1; channels <= 2; channels++) {
@@ -284,7 +284,7 @@ static void test_format_contract(uint64_t endpointId) {
}
// Opens the canonical test stream.
static uint32_t open_stream(uint64_t endpointId) {
static uint32_t open_stream(uint32_t endpointId) {
return open_stream_format(endpointId,
48000u,
2,
@@ -357,7 +357,7 @@ static void wait_stream(uint32_t stream, const char* operation) {
}
// Proves that closing the final handle retires an active stream with queued periods.
static void test_active_close_rundown(uint64_t endpointId) {
static void test_active_close_rundown(uint32_t endpointId) {
for (uint32_t iteration = 0;
iteration < TEST_CLOSE_RUNDOWN_ITERATIONS;
iteration++) {