mirror of
https://github.com/SerenityOS/serenity
synced 2024-10-15 20:33:10 +00:00
a0dd6ec6b1
At any one given time, there can be an abitrary number of USB drivers in the system. The way driver mapping works (i.e, a device is inserted, and a potentially matching driver is probed) requires us to have instantiated driver objects _before_ a device is inserted. This leaves us with a slight "chicken and egg" problem. We cannot call the probe function before the driver is initialised, but we need to know _what_ driver to initialise. This section is designed to store pointers to functions that are called during the last stage of the early `_init` sequence in the Kernel. The accompanying macro in `USBDriver` emits a symbol, based on the driver name, into this table that is then automatically called. This way, we enforce a "common" driver model; driver developers are not only required to write their driver and inherit from `USB::Driver`, but are also required to have a free floating init function that registers their driver with the USB Core. |
||
---|---|---|
.. | ||
Boot | ||
Firmware | ||
Hypervisor | ||
Interrupts | ||
ISABus | ||
PCI | ||
Time | ||
VGA | ||
ASM_wrapper.cpp | ||
ASM_wrapper.h | ||
BochsDebugOutput.h | ||
CMOS.cpp | ||
CMOS.h | ||
CPU.cpp | ||
CPU.h | ||
CPUID.cpp | ||
CPUID.h | ||
CurrentTime.cpp | ||
DebugOutput.cpp | ||
Delay.cpp | ||
DescriptorTable.h | ||
I8042Reboot.cpp | ||
I8042Reboot.h | ||
InterruptEntry.cpp | ||
InterruptManagement.cpp | ||
InterruptManagement.h | ||
Interrupts.cpp | ||
Interrupts.h | ||
IO.h | ||
IRQController.h | ||
ISRStubs.h | ||
linker.ld | ||
mcontext.h | ||
MSR.h | ||
NonMaskableInterruptDisabler.h | ||
PageDirectory.cpp | ||
PageDirectory.h | ||
PCSpeaker.cpp | ||
PCSpeaker.h | ||
PowerState.cpp | ||
Processor.cpp | ||
Processor.h | ||
ProcessorInfo.cpp | ||
ProcessorInfo.h | ||
RegisterState.h | ||
RTC.cpp | ||
RTC.h | ||
SafeMem.cpp | ||
Shutdown.cpp | ||
Shutdown.h | ||
SIMDState.h | ||
SmapDisabler.cpp | ||
SyscallEntry.cpp | ||
ThreadRegisters.h | ||
TrapFrame.cpp | ||
TrapFrame.h | ||
TSS.h |