5#include "pedigree/kernel/machine/IrqHandler.h"
6#include "pedigree/kernel/machine/Network.h"
7#include "pedigree/kernel/process/Mutex.h"
8#include "pedigree/kernel/processor/MemoryRegion.h"
10#include "modules/drivers/common/virtio/VirtioPci.h"
11#include "modules/drivers/common/virtio/Virtqueue.h"
20 bool send(
size_t length, uintptr_t buffer)
override;
27 static constexpr size_t BufferSize = 2048;
28 static constexpr size_t MaxRxSlots = 64;
29 static constexpr size_t MaxTxSlots = 32;
33 physical_uintptr_t physical;
37 void reclaimTransmit();
38 bool postReceive(
Slot& slot);
47 Slot m_RxSlots[MaxRxSlots];
48 Slot m_TxSlots[MaxTxSlots];
54 bool m_NetworkRegistered;
Special memory entity in the kernel's virtual address space.
IrqDisposition irq(irq_id_t number) override
const StationInfo & getStationInfo() override
bool setStationInfo(const StationInfo &info) override
bool isConnected() override
void getName(String &name) override
bool send(size_t length, uintptr_t buffer) override