Files
yttrium-virtio-gpu/NetKVM/Common/ParaNdis-AbstractPath.cpp
T

20 lines
671 B
C++

#include "ndis56common.h"
#include "ParaNdis-AbstractPath.h"
NDIS_STATUS CParaNdisAbstractPath::SetupMessageIndex(u16 queueCardinal)
{
u16 val;
WriteVirtIODeviceWord(m_Context->IODevice->addr + VIRTIO_PCI_QUEUE_SEL, (u16)queueCardinal);
WriteVirtIODeviceWord(m_Context->IODevice->addr + VIRTIO_MSI_QUEUE_VECTOR, (u16)queueCardinal);
val = ReadVirtIODeviceWord(m_Context->IODevice->addr + VIRTIO_MSI_QUEUE_VECTOR);
if (val != queueCardinal)
{
DPrintf(0, ("[%s] - read/write mismatch, %u vs %u\n", val, queueCardinal));
return NDIS_STATUS_DEVICE_FAILED;
}
m_messageIndex = queueCardinal;
return NDIS_STATUS_SUCCESS;
}