Kernel: Add an initial implementation of virtio-net driver

It can be exercised by setting
    SERENITY_ETHERNET_DEVICE_TYPE=virtio-net-pci.
This commit is contained in:
Kirill Nikolaev 2023-07-02 17:39:47 +02:00 committed by Andrew Kaster
commit 6cdb1f0415
Notes: sideshowbarker 2024-07-16 22:34:39 +09:00
5 changed files with 347 additions and 0 deletions

View file

@ -15,6 +15,7 @@
#include <Kernel/Net/LoopbackAdapter.h>
#include <Kernel/Net/NetworkingManagement.h>
#include <Kernel/Net/Realtek/RTL8168NetworkAdapter.h>
#include <Kernel/Net/VirtIO/VirtIONetworkAdapter.h>
#include <Kernel/Sections.h>
namespace Kernel {
@ -100,6 +101,7 @@ static constexpr PCINetworkDriverInitializer s_initializers[] = {
{ RTL8168NetworkAdapter::probe, RTL8168NetworkAdapter::create },
{ E1000NetworkAdapter::probe, E1000NetworkAdapter::create },
{ E1000ENetworkAdapter::probe, E1000ENetworkAdapter::create },
{ VirtIONetworkAdapter::probe, VirtIONetworkAdapter::create },
};
UNMAP_AFTER_INIT ErrorOr<NonnullRefPtr<NetworkAdapter>> NetworkingManagement::determine_network_device(PCI::DeviceIdentifier const& device_identifier) const