ladybird/Kernel
Liav A 0cede94c39 Kernel/Net: Introduce a new mechanism to initialize a PCI device
Instead of using a clunky if-statement paradigm, we now have all drivers
being declaring two methods for their adapter class - create and probe.
These methods are linked in each PCINetworkDriverInitializer structure,
in a new s_initializers static list of them.
Then, when we probe for a PCI device, we use each probe method and if
there's a match, then the corresponding create method is called. After
the adapter instance is created, we call the virtual initialize method
on it, because many drivers actually require a sort of post-construction
initialization sequence to ensure the network adapter can properly
function.

As a result of this change, it's much more easy to add more drivers and
the initialization code is more readable and it's easier to understand
when and where things could fail in the whole initialization sequence.
2023-01-07 12:36:57 +01:00
..
API Kernel: Remove i686 support 2022-12-28 11:53:41 +01:00
Arch Kernel: Restore setting i8042 scan code set to scan code set 2 sequence 2023-01-06 11:09:56 +01:00
Bus Kernel: Add dmesgln_pci logging for Kernel::PCI 2023-01-05 01:44:19 +01:00
Devices Kernel: Mark Process::jail() method as const 2023-01-07 03:44:59 +03:30
FileSystem Kernel: Mark Process::jail() method as const 2023-01-07 03:44:59 +03:30
Firmware Kernel: Reorganize Arch/x86 directory to Arch/x86_64 after i686 removal 2022-12-28 11:53:41 +01:00
Graphics Kernel: Add dmesgln_pci logging for Kernel::PCI 2023-01-05 01:44:19 +01:00
Heap Kernel: Remove unused includes of Kernel/Debug.h 2023-01-02 20:27:20 -05:00
Interrupts Kernel: Reorganize Arch/x86 directory to Arch/x86_64 after i686 removal 2022-12-28 11:53:41 +01:00
Library Kernel: Move ScopedCritical.cpp to Kernel base directory 2022-12-29 19:32:20 -07:00
Locking Kernel: Turn lock ranks into template parameters 2023-01-02 18:15:27 -05:00
Memory Everywhere: Remove unused includes of AK/Memory.h 2023-01-02 20:27:20 -05:00
Net Kernel/Net: Introduce a new mechanism to initialize a PCI device 2023-01-07 12:36:57 +01:00
Prekernel Kernel: Reorganize Arch/x86 directory to Arch/x86_64 after i686 removal 2022-12-28 11:53:41 +01:00
Storage Kernel: Add dmesgln_pci logging for Kernel::PCI 2023-01-05 01:44:19 +01:00
Syscalls Kernel: Mark Process::jail() method as const 2023-01-07 03:44:59 +03:30
Tasks
Time Kernel: Reorganize Arch/x86 directory to Arch/x86_64 after i686 removal 2022-12-28 11:53:41 +01:00
TTY Kernel: Remove unused includes of Kernel/Debug.h 2023-01-02 20:27:20 -05:00
AddressSanitizer.cpp
AddressSanitizer.h
Assertions.h
AtomicEdgeAction.h
BootInfo.h
CMakeLists.txt Kernel: Turn lock ranks into template parameters 2023-01-02 18:15:27 -05:00
CommandLine.cpp Kernel: Make i8042 controller initialization sequence more robust 2023-01-06 11:09:56 +01:00
CommandLine.h Kernel: Make i8042 controller initialization sequence more robust 2023-01-06 11:09:56 +01:00
Coredump.cpp Kernel: Turn lock ranks into template parameters 2023-01-02 18:15:27 -05:00
Coredump.h Kernel: Turn lock ranks into template parameters 2023-01-02 18:15:27 -05:00
Credentials.cpp Kernel: Add sid and pgid to Credentials 2023-01-03 18:13:11 +01:00
Credentials.h Kernel: Add sid and pgid to Credentials 2023-01-03 18:13:11 +01:00
Debug.h.in
DoubleBuffer.cpp
DoubleBuffer.h
embedmap.sh
Forward.h Kernel: Turn lock ranks into template parameters 2023-01-02 18:15:27 -05:00
FutexQueue.cpp
FutexQueue.h
generate-version-file.sh
InterruptDisabler.h
IOWindow.cpp Kernel: Remove i686 support 2022-12-28 11:53:41 +01:00
IOWindow.h Kernel: Reorganize Arch/x86 directory to Arch/x86_64 after i686 removal 2022-12-28 11:53:41 +01:00
Jail.cpp Kernel: Add support for jails 2022-11-05 18:00:58 -06:00
Jail.h Kernel: Turn lock ranks into template parameters 2023-01-02 18:15:27 -05:00
JailManagement.cpp Kernel: Mark Process::jail() method as const 2023-01-07 03:44:59 +03:30
JailManagement.h Kernel: Turn lock ranks into template parameters 2023-01-02 18:15:27 -05:00
KBuffer.h Everywhere: Remove unused includes of AK/Memory.h 2023-01-02 20:27:20 -05:00
KBufferBuilder.cpp
KBufferBuilder.h
KLexicalPath.cpp
KLexicalPath.h
kprintf.cpp Kernel: Turn lock ranks into template parameters 2023-01-02 18:15:27 -05:00
kstdio.h
KString.cpp
KString.h
KSyms.cpp
KSyms.h
MiniStdLib.cpp Kernel: Remove i686 support 2022-12-28 11:53:41 +01:00
mkmap.sh
Multiboot.h
Panic.cpp Kernel: Reorganize Arch/x86 directory to Arch/x86_64 after i686 removal 2022-12-28 11:53:41 +01:00
Panic.h
PerformanceEventBuffer.cpp
PerformanceEventBuffer.h
PerformanceManager.h Everywhere: Remove some redundant inline keywords 2023-01-04 20:04:57 +01:00
PhysicalAddress.h
Process.cpp Kernel: Mark Process::jail() method as const 2023-01-07 03:44:59 +03:30
Process.h Kernel: Mark Process::jail() method as const 2023-01-07 03:44:59 +03:30
ProcessExposed.cpp Kernel: Remove unused includes of Kernel/Debug.h 2023-01-02 20:27:20 -05:00
ProcessExposed.h Kernel: Use AK::Time for InodeMetadata timestamps instead of time_t 2022-11-24 16:56:27 +01:00
ProcessGroup.cpp Kernel: Turn lock ranks into template parameters 2023-01-02 18:15:27 -05:00
ProcessGroup.h Kernel: Turn lock ranks into template parameters 2023-01-02 18:15:27 -05:00
ProcessProcFSTraits.cpp Kernel: Split the ProcFS core file into smaller components 2022-11-08 02:54:48 -07:00
ProcessSpecificExposed.cpp Kernel: Split the ProcFS core file into smaller components 2022-11-08 02:54:48 -07:00
Random.cpp Kernel: Reorganize Arch/x86 directory to Arch/x86_64 after i686 removal 2022-12-28 11:53:41 +01:00
Random.h Kernel: Turn lock ranks into template parameters 2023-01-02 18:15:27 -05:00
SanCov.cpp
Scheduler.cpp Kernel: Turn lock ranks into template parameters 2023-01-02 18:15:27 -05:00
Scheduler.h Kernel: Turn lock ranks into template parameters 2023-01-02 18:15:27 -05:00
ScopedCritical.cpp Kernel: Move ScopedCritical.cpp to Kernel base directory 2022-12-29 19:32:20 -07:00
ScopedCritical.h Kernel: Move ScopedCritical.cpp to Kernel base directory 2022-12-29 19:32:20 -07:00
Sections.h
StdLib.cpp Everywhere: Run clang-format 2022-12-03 23:52:23 +00:00
StdLib.h Everywhere: Run clang-format 2022-12-03 23:52:23 +00:00
Syscall.cpp Kernel: Reorganize Arch/x86 directory to Arch/x86_64 after i686 removal 2022-12-28 11:53:41 +01:00
Thread.cpp Kernel: Turn lock ranks into template parameters 2023-01-02 18:15:27 -05:00
Thread.h Everywhere: Remove some redundant inline keywords 2023-01-04 20:04:57 +01:00
ThreadBlockers.cpp
ThreadTracer.cpp
ThreadTracer.h Kernel+Userland: Remove dependency on i386-specific registers 2022-12-28 11:53:41 +01:00
TimerQueue.cpp Kernel: Turn lock ranks into template parameters 2023-01-02 18:15:27 -05:00
TimerQueue.h
UBSanitizer.cpp
UnixTypes.h
UserOrKernelBuffer.cpp
UserOrKernelBuffer.h
VirtualAddress.h
WaitQueue.cpp
WaitQueue.h
WorkQueue.cpp
WorkQueue.h Kernel: Turn lock ranks into template parameters 2023-01-02 18:15:27 -05:00