replace ad hoc driver loading with a proper driver manager, new DDK, new PnP manager with device matching, asynchronous startup, resource ownership and removal, add shared PCI capability helpers, replace typed, rigid services with a proper service manager, implement proper system shutdown and restart, shutting down unloads drivers and shuts down services, add simple power button, remove heavyweight boot self-tests and SMP stress runs, add monotonic timestamps to kernel debug output, fruitless USB and PS/2 fixes, make test builds opt in.
This commit is contained in:
1 parent
c0ad63c27f
commit
d36f19509c
160 files changed
+6563
-7366
No files matched your search
@@ -69,8 +69,8 @@ void* UsbAllocateDmaBuffer(USB_DEVICE* dev,
|
||||
|
||||
// Frees a DMA buffer allocated for a USB class driver.
|
||||
void UsbFreeDmaBuffer(IO_DMA_BUFFER* buffer) {
|
||||
if (buffer && gUsbDdk && gUsbDdk->Dma)
|
||||
gUsbDdk->Dma->FreeCommonBuffer(buffer);
|
||||
if (buffer)
|
||||
IoDmaFreeCommonBuffer(buffer);
|
||||
}
|
||||
|
||||
// Creates device.
|
||||
@@ -275,9 +275,6 @@ KSTATUS UsbInitializeBusModel(void) {
|
||||
gUsbBusDriver.MajorFunction[IRP_MJ_PNP] = UsbDispatchPdoPnp;
|
||||
gUsbBusDriver.MajorFunction[IRP_MJ_INTERNAL_DEVICE_CONTROL] = UsbDispatchInternalDeviceControl;
|
||||
|
||||
KSTATUS st = IoRegisterDriverObject(&gUsbBusDriver);
|
||||
if (!KSUCCESS(st)) return st;
|
||||
|
||||
gUsbBusModelReady = true;
|
||||
return NTLSTATUS_SUCCESS;
|
||||
}
|
||||
@@ -290,6 +287,7 @@ void UsbInitializeHcd(USB_HCD* hcd,
|
||||
if (!hcd) return;
|
||||
memset(hcd, 0, sizeof(*hcd));
|
||||
hcd->Operations = ops;
|
||||
hcd->RootHubLock = (SPINLOCK)SPINLOCK_INIT;
|
||||
hcd->ControllerContext = controllerContext;
|
||||
hcd->DriverObject = &gUsbBusDriver;
|
||||
hcd->ControllerIndex = controllerIndex ? controllerIndex : ++gUsbNextControllerIndex;
|
||||
|
||||
Reference in new issue
Block a user