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:
1 parent
4add6789ba
commit
f882d339fb
232 files changed
+20934
-8898
No files matched your search
@@ -173,7 +173,7 @@ typedef struct WINMM_WAVEOUT {
|
||||
uint32_t ReadyEvent;
|
||||
uint32_t WorkerHandle;
|
||||
uint32_t WorkerTid;
|
||||
uint64_t EndpointId;
|
||||
uint32_t EndpointId;
|
||||
WAVEFORMATEX SourceFormat;
|
||||
uintptr_t Callback;
|
||||
uintptr_t CallbackInstance;
|
||||
@@ -248,7 +248,7 @@ static void WinmmDebugCommit(WINMM_DEBUG_LINE* line) {
|
||||
if (line->Length + 1 < sizeof(line->Buffer))
|
||||
line->Buffer[line->Length++] = '\n';
|
||||
line->Buffer[line->Length] = '\0';
|
||||
SYS_PRINT_DEBUG_REQUEST request = { SysSvFromParts(line->Buffer, line->Length) };
|
||||
SYS_PRINT_DEBUG_REQUEST request = { sizeof(SYS_PRINT_DEBUG_REQUEST), SysSvFromParts(line->Buffer, line->Length) };
|
||||
(void)SysPrintDebug(&request);
|
||||
}
|
||||
|
||||
@@ -379,7 +379,7 @@ static uint32_t WinmmAvailableEndpointCount(void) {
|
||||
|
||||
// Resolves WAVE_MAPPER or one available-device index to a stable endpoint ID.
|
||||
static MMRESULT WinmmResolveEndpoint(uint32_t deviceId,
|
||||
uint64_t* endpointIdOut,
|
||||
uint32_t* endpointIdOut,
|
||||
uint32_t* resolvedDeviceIdOut) {
|
||||
SYS_AUDIO_ENDPOINT_INFO endpoints[SYS_AUDIO_MAX_ENDPOINTS];
|
||||
uint32_t count = 0;
|
||||
@@ -952,7 +952,7 @@ __declspec(dllexport) MMRESULT waveOutOpen(HWAVEOUT* handleOut,
|
||||
if ((callbackMode == CALLBACK_FUNCTION || callbackMode == CALLBACK_EVENT) && !callback)
|
||||
return MMSYSERR_INVALPARAM;
|
||||
|
||||
uint64_t endpointId = 0;
|
||||
uint32_t endpointId = 0;
|
||||
uint32_t resolvedDeviceId = 0;
|
||||
result = WinmmResolveEndpoint(deviceId, &endpointId, &resolvedDeviceId);
|
||||
if (result != MMSYSERR_NOERROR) {
|
||||
@@ -1026,6 +1026,7 @@ __declspec(dllexport) MMRESULT waveOutOpen(HWAVEOUT* handleOut,
|
||||
WinmmRegisterWaveOut(waveOut);
|
||||
SYS_CREATE_THREAD_REQUEST thread;
|
||||
memset(&thread, 0, sizeof(thread));
|
||||
thread.Size = sizeof(thread);
|
||||
thread.Entry = (uintptr_t)WinmmWaveWorker;
|
||||
thread.Argument = (uintptr_t)waveOut;
|
||||
thread.Priority = WINMM_WORKER_PRIORITY;
|
||||
@@ -1391,7 +1392,7 @@ __declspec(dllexport) MMRESULT waveOutGetID(HWAVEOUT handle, UINT* deviceIdOut)
|
||||
__declspec(dllexport) MMRESULT waveOutGetDevCapsA(UINT deviceId,
|
||||
WAVEOUTCAPSA* caps,
|
||||
UINT size) {
|
||||
uint64_t endpointId = 0;
|
||||
uint32_t endpointId = 0;
|
||||
uint32_t resolvedDeviceId = 0;
|
||||
MMRESULT result = WinmmResolveEndpoint(deviceId, &endpointId, &resolvedDeviceId);
|
||||
if (result != MMSYSERR_NOERROR) {
|
||||
|
||||
Reference in new issue
Block a user