ladybird/Kernel
Liav A 7b9c3439ec Kernel/PCI: Delete PCI::Device in its current form
I created this class a long time ago just to be able to quickly make a
PCI device to also represent an interrupt handler (because PCI devices
have this capability for most devices).
Then after a while I introduced the PCI::DeviceController, which is
really almost the same thing (a PCI device class that has Address member
in it), but is not tied to interrupts so it can have no interrupts, or
spawn interrupt handlers however it wants to seems fit.

However I decided it's time to say goodbye for this class for
a couple of reasons:
1. It made a whole bunch of weird patterns where you had a PCI::Device
and a PCI::DeviceController being used in the topic of implementation,
where originally, they meant to be used mutually exclusively (you
can't and really don't want to use both).
2. We can really make all the classes that inherit from PCI::Device
to inherit from IRQHandler at this point. Later on, when we have MSI
interrupts support, we can go further and untie things even more.
3. It makes it possible to simplify the VirtIO implementation to a great
extent. While this commit almost doesn't change it, future changes
can untangle some complexity in the VirtIO code.

For UHCIController, E1000NetworkAdapter, NE2000NetworkAdapter,
RTL8139NetworkAdapter, RTL8168NetworkAdapter, E1000ENetworkAdapter we
are simply making them to inherit the IRQHandler. This makes some sense,
because the first 3 devices will never support anything besides IRQs.
For the last 2, they might have MSI support, so when we start to utilize
those, we might need to untie these classes from IRQHandler and spawn
IRQHandler(s) or MSIHandler(s) as needed.

The VirtIODevice class is also a case where we currently need to use
both PCI::DeviceController and IRQHandler classes as parents, but it
could also be untied from the latter.
2021-08-23 01:07:45 +02:00
..
ACPI Kernel: Move Mutex into Locking/ 2021-08-07 11:48:00 +02:00
API Kernel+Userland: Remove global futexes 2021-08-17 01:21:47 +02:00
Arch Kernel: Make Processor::clean_fpu_state() static 2021-08-23 00:02:09 +02:00
Bus Kernel/PCI: Delete PCI::Device in its current form 2021-08-23 01:07:45 +02:00
Devices Kernel/PCI: Delete PCI::Device in its current form 2021-08-23 01:07:45 +02:00
FileSystem Kernel: Rename BlockerSet::unblock() to something more accurate 2021-08-23 00:02:09 +02:00
Graphics Kernel: Rename ScopedSpinlock => SpinlockLocker 2021-08-22 03:34:10 +02:00
Heap Kernel: Rename ScopedSpinlock => SpinlockLocker 2021-08-22 03:34:10 +02:00
Interrupts Kernel: Rename Processor::id() => current_id() 2021-08-23 00:02:09 +02:00
Library Kernel: Rename SpinLock => Spinlock 2021-08-22 03:34:10 +02:00
Locking Kernel: Convert Processor::in_irq() to static current_in_irq() 2021-08-23 00:02:09 +02:00
Memory Kernel: Mape quickmap functions VERIFY that MM lock is held 2021-08-23 00:02:09 +02:00
Modules Everything: Move to SPDX license identifiers in all files. 2021-04-22 11:22:27 +02:00
Net Kernel/PCI: Delete PCI::Device in its current form 2021-08-23 01:07:45 +02:00
Prekernel Meta: Add Clang support to the CMake build scripts 2021-08-08 10:55:36 +02:00
Storage Kernel: Rename ScopedSpinlock => SpinlockLocker 2021-08-22 03:34:10 +02:00
Syscalls Kernel: Remove unnecessary FutexQueue::did_remove() 2021-08-23 00:02:09 +02:00
Tasks Kernel: Make VirtualFileSystem::sync() static 2021-07-11 00:26:17 +02:00
Time Kernel: Convert Processor::in_irq() to static current_in_irq() 2021-08-23 00:02:09 +02:00
TTY Kernel: Rename Thread::BlockCondition to BlockerSet 2021-08-23 00:02:09 +02:00
AddressSanitizer.cpp Everywhere: Use bgianf@serenityos.org for my copyright attribution 2021-04-22 21:15:54 +02:00
AddressSanitizer.h Everywhere: Use bgianf@serenityos.org for my copyright attribution 2021-04-22 21:15:54 +02:00
Assertions.h AK+Kernel: Print TODO when a TODO() is executed 2021-08-04 11:01:16 +02:00
AtomicEdgeAction.h Kernel: Add AtomicEdgeAction class 2021-07-07 21:57:01 +02:00
BootInfo.h Kernel: Support loading the kernel at almost arbitrary virtual addresses 2021-07-27 13:15:16 +02:00
CMakeLists.txt Kernel/PCI: Delete PCI::Device in its current form 2021-08-23 01:07:45 +02:00
CMOS.cpp Everything: Move to SPDX license identifiers in all files. 2021-04-22 11:22:27 +02:00
CMOS.h Everything: Move to SPDX license identifiers in all files. 2021-04-22 11:22:27 +02:00
CommandLine.cpp AK+Kernel: StringView hash map Traits should not set peek type to String 2021-08-18 10:21:19 +02:00
CommandLine.h AK+Kernel: StringView hash map Traits should not set peek type to String 2021-08-18 10:21:19 +02:00
ConsoleDevice.cpp Kernel: Rename ScopedSpinlock => SpinlockLocker 2021-08-22 03:34:10 +02:00
ConsoleDevice.h Kernel: Make various T::class_name() and similar return StringView 2021-07-11 01:46:59 +02:00
Coredump.cpp Everywhere: Core dump => Coredump 2021-08-23 00:02:09 +02:00
Coredump.h Everywhere: Core dump => Coredump 2021-08-23 00:02:09 +02:00
Debug.h.in Kernel: Implement a ISO 9660 filesystem reader :^) 2021-08-07 15:21:58 +02:00
DoubleBuffer.cpp Kernel: Add convenience values to the Memory::Region::Access enum 2021-08-06 22:25:00 +02:00
DoubleBuffer.h Kernel+LibC: Implement FIONREAD ioctl 2021-08-22 10:29:06 +02:00
embedmap.sh Kernel: Make new kernel build process work on macOS 2021-07-15 11:04:30 +02:00
Forward.h Everywhere: Core dump => Coredump 2021-08-23 00:02:09 +02:00
FutexQueue.cpp Kernel: Rename BlockerSet::unblock() to something more accurate 2021-08-23 00:02:09 +02:00
FutexQueue.h Kernel: Remove unnecessary FutexQueue::did_remove() 2021-08-23 00:02:09 +02:00
GlobalProcessExposed.cpp Kernel: Rename Processor::id() => current_id() 2021-08-23 00:02:09 +02:00
init.cpp Kernel: Make Process::current() return a Process& instead of Process* 2021-08-19 23:49:53 +02:00
IO.h Kernel: Specify I/O size for BMIDEChannel 2021-06-28 15:55:00 +02:00
KBuffer.h Kernel: Add convenience values to the Memory::Region::Access enum 2021-08-06 22:25:00 +02:00
KBufferBuilder.cpp Kernel: Add convenience values to the Memory::Region::Access enum 2021-08-06 22:25:00 +02:00
KBufferBuilder.h Kernel: Remove KBufferBuilder's can_expand restriction 2021-07-20 18:05:05 +02:00
KLexicalPath.cpp Kernel: Make KLexicalPath::basename() more compliant 2021-07-11 14:10:58 +02:00
KLexicalPath.h Kernel: Add KLexicalPath::try_join and use it 2021-07-07 15:32:17 +02:00
kprintf.cpp Kernel: Rename ScopedSpinlock => SpinlockLocker 2021-08-22 03:34:10 +02:00
KResult.h Kernel: Stop allowing implicit conversion from KResult to int 2021-08-14 15:19:00 +02:00
kstdio.h Kernel: Introduce a StringView overload of dbgputstr(..) 2021-08-13 11:08:11 +02:00
KString.cpp Kernel: Allow passing null pointer to delete 2021-07-14 13:12:25 +02:00
KString.h Kernel: Annotate KString methods as [[nodiscard]] 2021-08-13 11:08:11 +02:00
KSyms.cpp Kernel: Print panic backtrace to both the screen and serial 2021-08-04 20:14:54 +02:00
KSyms.h Kernel: Print panic backtrace to both the screen and serial 2021-08-04 20:14:54 +02:00
linker.ld Kernel: Support loading the kernel at almost arbitrary virtual addresses 2021-07-27 13:15:16 +02:00
MiniStdLib.cpp Kernel: Introduce basic pre-kernel environment 2021-07-18 17:31:13 +02:00
mkmap.sh Kernel: Use our toolchain's c++filt tool for the kernel map 2021-07-29 10:38:31 +02:00
Module.h Everything: Move to SPDX license identifiers in all files. 2021-04-22 11:22:27 +02:00
Multiboot.h Prekernel: Export some multiboot parameters in our own BootInfo struct 2021-07-27 13:15:16 +02:00
Panic.cpp Kernel: Print panic backtrace to both the screen and serial 2021-08-04 20:14:54 +02:00
Panic.h Kernel/Graphics + SystemServer: Support text mode properly 2021-05-16 19:58:33 +02:00
PerformanceEventBuffer.cpp Kernel: Rename ScopedSpinlock => SpinlockLocker 2021-08-22 03:34:10 +02:00
PerformanceEventBuffer.h Kernel: Make sys$perf_register_string() generate the string ID's 2021-08-12 00:03:39 +02:00
PerformanceManager.h Kernel: Add syscall performance event type 2021-08-10 21:55:48 +02:00
PhysicalAddress.h Kernel: Move PhysicalPage classes out of the heap into an array 2021-07-08 11:43:34 +02:00
Process.cpp Kernel: Rename Thread::BlockCondition to BlockerSet 2021-08-23 00:02:09 +02:00
Process.h Kernel: Rename Thread::BlockCondition to BlockerSet 2021-08-23 00:02:09 +02:00
ProcessExposed.cpp Kernel: Rename ScopedSpinlock => SpinlockLocker 2021-08-22 03:34:10 +02:00
ProcessExposed.h Kernel+Userland: Remove chroot functionality 2021-08-15 12:44:35 +02:00
ProcessGroup.cpp Kernel: Rename SpinLock => Spinlock 2021-08-22 03:34:10 +02:00
ProcessGroup.h Kernel: Rename SpinLock => Spinlock 2021-08-22 03:34:10 +02:00
ProcessProcFSTraits.cpp Kernel: Specify directory entry types properly 2021-08-18 18:13:59 +02:00
ProcessSpecificExposed.cpp Kernel: Rename ScopedSpinlock => SpinlockLocker 2021-08-22 03:34:10 +02:00
Random.cpp Kernel: Rename ScopedSpinlock => SpinlockLocker 2021-08-22 03:34:10 +02:00
Random.h Kernel: Rename ScopedSpinlock => SpinlockLocker 2021-08-22 03:34:10 +02:00
RTC.cpp Kernel: Ensure we read valid values from the RTC CMOS registers 2021-08-04 19:53:04 +02:00
RTC.h Kernel: Ensure we read valid values from the RTC CMOS registers 2021-08-04 19:53:04 +02:00
SanCov.cpp Kernel: Convert Processor::in_irq() to static current_in_irq() 2021-08-23 00:02:09 +02:00
Scheduler.cpp Kernel: Rename Processor::id() => current_id() 2021-08-23 00:02:09 +02:00
Scheduler.h Kernel: Rename SpinLock => Spinlock 2021-08-22 03:34:10 +02:00
Sections.h Kernel: Support loading the kernel at almost arbitrary virtual addresses 2021-07-27 13:15:16 +02:00
StdLib.cpp Kernel: Remove copy_string_from_user() as it's no longer used 2021-08-15 12:44:35 +02:00
StdLib.h Kernel: Remove copy_string_from_user() as it's no longer used 2021-08-15 12:44:35 +02:00
Syscall.cpp Kernel: Stop allowing implicit conversion from KResult to int 2021-08-14 15:19:00 +02:00
Thread.cpp Kernel: Make Processor::clean_fpu_state() static 2021-08-23 00:02:09 +02:00
Thread.h Kernel: Rename QueueBlocker => WaitQueueBlocker 2021-08-23 00:10:33 +02:00
ThreadBlockers.cpp Kernel: Rename QueueBlocker => WaitQueueBlocker 2021-08-23 00:10:33 +02:00
ThreadTracer.cpp Kernel: Remove unused header includes in root kernel tree 2021-07-11 21:37:38 +02:00
ThreadTracer.h Kernel: Move {Process,Thread,Session,ProcessGroup}ID to Kernel/Forward.h 2021-08-14 19:58:11 +02:00
TimerQueue.cpp Kernel: Rename ScopedSpinlock => SpinlockLocker 2021-08-22 03:34:10 +02:00
TimerQueue.h Kernel: Do not cancel stale timers when servicing sys$alarm 2021-08-03 18:44:01 +02:00
UBSanitizer.cpp Kernel: Pull apart CPU.h 2021-06-24 00:38:23 +02:00
UnixTypes.h Kernel: Move {Process,Thread,Session,ProcessGroup}ID to Kernel/Forward.h 2021-08-14 19:58:11 +02:00
UserOrKernelBuffer.cpp Kernel: Move Kernel/Memory/ code into Kernel::Memory namespace 2021-08-06 14:05:58 +02:00
UserOrKernelBuffer.h Kernel: Move Kernel/Memory/ code into Kernel::Memory namespace 2021-08-06 14:05:58 +02:00
VirtualAddress.h Kernel: Make VirtualAddress::page_base() work with 64-bit addresses 2021-07-18 17:31:13 +02:00
WaitQueue.cpp Kernel: Rename QueueBlocker => WaitQueueBlocker 2021-08-23 00:10:33 +02:00
WaitQueue.h Kernel: Rename QueueBlocker => WaitQueueBlocker 2021-08-23 00:10:33 +02:00
WorkQueue.cpp Kernel: Rename ScopedSpinlock => SpinlockLocker 2021-08-22 03:34:10 +02:00
WorkQueue.h Kernel: Rename SpinLock => Spinlock 2021-08-22 03:34:10 +02:00