interface.\r
\r
**/\r
-\r
EFI_STATUS\r
EFIAPI\r
VirtioNetReceive (\r
- IN EFI_SIMPLE_NETWORK_PROTOCOL *This,\r
- OUT UINTN *HeaderSize OPTIONAL,\r
- IN OUT UINTN *BufferSize,\r
- OUT VOID *Buffer,\r
- OUT EFI_MAC_ADDRESS *SrcAddr OPTIONAL,\r
- OUT EFI_MAC_ADDRESS *DestAddr OPTIONAL,\r
- OUT UINT16 *Protocol OPTIONAL\r
+ IN EFI_SIMPLE_NETWORK_PROTOCOL *This,\r
+ OUT UINTN *HeaderSize OPTIONAL,\r
+ IN OUT UINTN *BufferSize,\r
+ OUT VOID *Buffer,\r
+ OUT EFI_MAC_ADDRESS *SrcAddr OPTIONAL,\r
+ OUT EFI_MAC_ADDRESS *DestAddr OPTIONAL,\r
+ OUT UINT16 *Protocol OPTIONAL\r
)\r
{\r
- VNET_DEV *Dev;\r
- EFI_TPL OldTpl;\r
- EFI_STATUS Status;\r
- UINT16 RxCurUsed;\r
- UINT16 UsedElemIdx;\r
- UINT32 DescIdx;\r
- UINT32 RxLen;\r
- UINTN OrigBufferSize;\r
- UINT8 *RxPtr;\r
- UINT16 AvailIdx;\r
- EFI_STATUS NotifyStatus;\r
- UINTN RxBufOffset;\r
-\r
- if (This == NULL || BufferSize == NULL || Buffer == NULL) {\r
+ VNET_DEV *Dev;\r
+ EFI_TPL OldTpl;\r
+ EFI_STATUS Status;\r
+ UINT16 RxCurUsed;\r
+ UINT16 UsedElemIdx;\r
+ UINT32 DescIdx;\r
+ UINT32 RxLen;\r
+ UINTN OrigBufferSize;\r
+ UINT8 *RxPtr;\r
+ UINT16 AvailIdx;\r
+ EFI_STATUS NotifyStatus;\r
+ UINTN RxBufOffset;\r
+\r
+ if ((This == NULL) || (BufferSize == NULL) || (Buffer == NULL)) {\r
return EFI_INVALID_PARAMETER;\r
}\r
\r
- Dev = VIRTIO_NET_FROM_SNP (This);\r
+ Dev = VIRTIO_NET_FROM_SNP (This);\r
OldTpl = gBS->RaiseTPL (TPL_CALLBACK);\r
switch (Dev->Snm.State) {\r
- case EfiSimpleNetworkStopped:\r
- Status = EFI_NOT_STARTED;\r
- goto Exit;\r
- case EfiSimpleNetworkStarted:\r
- Status = EFI_DEVICE_ERROR;\r
- goto Exit;\r
- default:\r
- break;\r
+ case EfiSimpleNetworkStopped:\r
+ Status = EFI_NOT_STARTED;\r
+ goto Exit;\r
+ case EfiSimpleNetworkStarted:\r
+ Status = EFI_DEVICE_ERROR;\r
+ goto Exit;\r
+ default:\r
+ break;\r
}\r
\r
//\r
}\r
\r
UsedElemIdx = Dev->RxLastUsed % Dev->RxRing.QueueSize;\r
- DescIdx = Dev->RxRing.Used.UsedElem[UsedElemIdx].Id;\r
- RxLen = Dev->RxRing.Used.UsedElem[UsedElemIdx].Len;\r
+ DescIdx = Dev->RxRing.Used.UsedElem[UsedElemIdx].Id;\r
+ RxLen = Dev->RxRing.Used.UsedElem[UsedElemIdx].Len;\r
\r
//\r
// the virtio-net request header must be complete; we skip it\r
ASSERT (RxLen <= Dev->RxRing.Desc[DescIdx + 1].Len);\r
\r
OrigBufferSize = *BufferSize;\r
- *BufferSize = RxLen;\r
+ *BufferSize = RxLen;\r
\r
if (OrigBufferSize < RxLen) {\r
Status = EFI_BUFFER_TOO_SMALL;\r
if (DestAddr != NULL) {\r
CopyMem (DestAddr, RxPtr, SIZE_OF_VNET (Mac));\r
}\r
+\r
RxPtr += SIZE_OF_VNET (Mac);\r
\r
if (SrcAddr != NULL) {\r
CopyMem (SrcAddr, RxPtr, SIZE_OF_VNET (Mac));\r
}\r
+\r
RxPtr += SIZE_OF_VNET (Mac);\r
\r
if (Protocol != NULL) {\r
- *Protocol = (UINT16) ((RxPtr[0] << 8) | RxPtr[1]);\r
+ *Protocol = (UINT16)((RxPtr[0] << 8) | RxPtr[1]);\r
}\r
+\r
RxPtr += sizeof (UINT16);\r
\r
Status = EFI_SUCCESS;\r
//\r
// virtio-0.9.5, 2.4.1 Supplying Buffers to The Device\r
//\r
- AvailIdx = *Dev->RxRing.Avail.Idx;\r
+ AvailIdx = *Dev->RxRing.Avail.Idx;\r
Dev->RxRing.Avail.Ring[AvailIdx++ % Dev->RxRing.QueueSize] =\r
- (UINT16) DescIdx;\r
+ (UINT16)DescIdx;\r
\r
MemoryFence ();\r
*Dev->RxRing.Avail.Idx = AvailIdx;\r
\r
MemoryFence ();\r
NotifyStatus = Dev->VirtIo->SetQueueNotify (Dev->VirtIo, VIRTIO_NET_Q_RX);\r
- if (!EFI_ERROR (Status)) { // earlier error takes precedence\r
+ if (!EFI_ERROR (Status)) {\r
+ // earlier error takes precedence\r
Status = NotifyStatus;\r
}\r
\r