Files
yttrium-virtio-gpu/NetKVM/Common/ParaNdis_AbstractPath.cpp
T
Yuri Benditovich 1ac963e4bf netkvm: simplify traces, part 1
AbstractPath and Rx
removal of redundant __FUNCTION__, CRs etc

Signed-off-by: Yuri Benditovich <[email protected]>
2025-05-18 08:04:57 +03:00

47 lines
1.2 KiB
C++

#include "ndis56common.h"
#include "ParaNdis-AbstractPath.h"
#include "kdebugprint.h"
#include "Trace.h"
#ifdef NETKVM_WPP_ENABLED
#include "ParaNdis_AbstractPath.tmh"
#endif
NDIS_STATUS CParaNdisAbstractPath::SetupMessageIndex(u16 vector)
{
u16 val = m_pVirtQueue->SetMSIVector(vector);
if (val != vector)
{
DPrintf(0, "read/write mismatch, %u vs %u", val, vector);
return NDIS_STATUS_DEVICE_FAILED;
}
m_messageIndex = vector;
return NDIS_STATUS_SUCCESS;
}
ULONG CParaNdisAbstractPath::getCPUIndex()
{
#if NDIS_SUPPORT_NDIS620
PROCESSOR_NUMBER procNumber = {0};
procNumber.Group = DPCAffinity.Group;
ULONG number = ParaNdis_GetIndexFromAffinity(DPCAffinity.Mask);
if (number == INVALID_PROCESSOR_INDEX)
{
DPrintf(0, "bad in-group processor index: mask 0x%lx", (ULONG)DPCAffinity.Mask);
NETKVM_ASSERT(FALSE);
return INVALID_PROCESSOR_INDEX;
}
procNumber.Number = (UCHAR)number;
procNumber.Reserved = 0;
ULONG procIndex = KeGetProcessorIndexFromNumber(&procNumber);
NETKVM_ASSERT(procIndex != INVALID_PROCESSOR_INDEX);
return procIndex;
#else
return ParaNdis_GetIndexFromAffinity(DPCTargetProcessor);
#endif
}