\r
#include <IndustryStandard/Virtio.h>\r
\r
-/**\r
-\r
- Write a word into VirtIo Device Specific Region\r
-\r
- The VirtIo Device Specific Region must be an iomem region.\r
- This is an internal function for the driver-specific VIRTIO_CFG_WRITE()\r
- macros.\r
-\r
- @param[in] VirtIo Target Virtio device.\r
-\r
- @param[in] FieldOffset Destination offset.\r
-\r
- @param[in] FieldSize Destination field size, must be in { 1, 2, 4, 8 }.\r
-\r
- @param[in] Value Little endian value to write, converted to UINT64.\r
- The least significant FieldSize bytes will be used.\r
-\r
-\r
- @return Status code returned by VirtIo->WriteDevice().\r
-\r
-**/\r
-EFI_STATUS\r
-EFIAPI\r
-VirtioWriteDevice (\r
- IN VIRTIO_DEVICE_PROTOCOL *VirtIo,\r
- IN UINTN FieldOffset,\r
- IN UINTN FieldSize,\r
- IN UINT64 Value\r
- );\r
-\r
-\r
-/**\r
-\r
- Read a word from VirtIo Device Specific Region\r
-\r
- The VirtIo Device Specific Region must be an iomem region.\r
- This is an internal function for the driver-specific VIRTIO_CFG_READ()\r
- macros.\r
-\r
- @param[in] VirtIo Source Virtio device.\r
-\r
- @param[in] FieldOffset Source offset.\r
-\r
- @param[in] FieldSize Source field size, must be in { 1, 2, 4, 8 }.\r
-\r
- @param[in] BufferSize Number of bytes available in the target buffer. Must\r
- equal FieldSize.\r
-\r
- @param[out] Buffer Target buffer.\r
-\r
-\r
- @return Status code returned by VirtIo->ReadDevice().\r
-\r
-**/\r
-EFI_STATUS\r
-EFIAPI\r
-VirtioReadDevice (\r
- IN VIRTIO_DEVICE_PROTOCOL *VirtIo,\r
- IN UINTN FieldOffset,\r
- IN UINTN FieldSize,\r
- IN UINTN BufferSize,\r
- OUT VOID *Buffer\r
- );\r
-\r
\r
/**\r
\r
#include <Library/VirtioLib.h>\r
\r
\r
-/**\r
-\r
- Write a word into Region 0 of the device specified by VirtIo.\r
-\r
- Region 0 must be an iomem region. This is an internal function for the\r
- driver-specific VIRTIO_CFG_WRITE() macros.\r
-\r
- @param[in] VirtIo Target VirtIo device.\r
-\r
- @param[in] FieldOffset Destination offset.\r
-\r
- @param[in] FieldSize Destination field size, must be in { 1, 2, 4, 8 }.\r
-\r
- @param[in] Value Little endian value to write, converted to UINT64.\r
- The least significant FieldSize bytes will be used.\r
-\r
-\r
- @return Status code returned by VirtIo->Io.Write().\r
-\r
-**/\r
-EFI_STATUS\r
-EFIAPI\r
-VirtioWriteDevice (\r
- IN VIRTIO_DEVICE_PROTOCOL *VirtIo,\r
- IN UINTN FieldOffset,\r
- IN UINTN FieldSize,\r
- IN UINT64 Value\r
- )\r
-{\r
- return VirtIo->WriteDevice (VirtIo, FieldOffset, FieldSize, Value);\r
-}\r
-\r
-\r
-/**\r
-\r
- Read a word from Region 0 of the device specified by VirtIo.\r
-\r
- Region 0 must be an iomem region. This is an internal function for the\r
- driver-specific VIRTIO_CFG_READ() macros.\r
-\r
- @param[in] VirtIo Source VirtIo device.\r
-\r
- @param[in] FieldOffset Source offset.\r
-\r
- @param[in] FieldSize Source field size, must be in { 1, 2, 4, 8 }.\r
-\r
- @param[in] BufferSize Number of bytes available in the target buffer. Must\r
- equal FieldSize.\r
-\r
- @param[out] Buffer Target buffer.\r
-\r
-\r
- @return Status code returned by VirtIo->Io.Read().\r
-\r
-**/\r
-EFI_STATUS\r
-EFIAPI\r
-VirtioReadDevice (\r
- IN VIRTIO_DEVICE_PROTOCOL *VirtIo,\r
- IN UINTN FieldOffset,\r
- IN UINTN FieldSize,\r
- IN UINTN BufferSize,\r
- OUT VOID *Buffer\r
- )\r
-{\r
- return VirtIo->ReadDevice (VirtIo, FieldOffset, FieldSize, BufferSize, Buffer);\r
-}\r
-\r
-\r
/**\r
\r
Configure a virtio ring.\r
one of UINT8, UINT16, UINT32, UINT64.\r
\r
\r
- @return Status code returned by VirtioWriteDevice() / VirtioReadDevice().\r
+ @return Status code returned by Virtio->WriteDevice() / Virtio->ReadDevice().\r
\r
**/\r
\r
-#define VIRTIO_CFG_WRITE(Dev, Field, Value) (VirtioWriteDevice ( \\r
- (Dev)->VirtIo, \\r
- OFFSET_OF_VBLK (Field), \\r
- SIZE_OF_VBLK (Field), \\r
- (Value) \\r
+#define VIRTIO_CFG_WRITE(Dev, Field, Value) ((Dev)->VirtIo->WriteDevice ( \\r
+ (Dev)->VirtIo, \\r
+ OFFSET_OF_VBLK (Field), \\r
+ SIZE_OF_VBLK (Field), \\r
+ (Value) \\r
))\r
\r
-#define VIRTIO_CFG_READ(Dev, Field, Pointer) (VirtioReadDevice ( \\r
- (Dev)->VirtIo, \\r
- OFFSET_OF_VBLK (Field), \\r
- SIZE_OF_VBLK (Field), \\r
- sizeof *(Pointer), \\r
- (Pointer) \\r
+#define VIRTIO_CFG_READ(Dev, Field, Pointer) ((Dev)->VirtIo->ReadDevice ( \\r
+ (Dev)->VirtIo, \\r
+ OFFSET_OF_VBLK (Field), \\r
+ SIZE_OF_VBLK (Field), \\r
+ sizeof *(Pointer), \\r
+ (Pointer) \\r
))\r
\r
\r
#define VIRTIO_NET_FROM_SNP(SnpPointer) \\r
CR (SnpPointer, VNET_DEV, Snp, VNET_SIG)\r
\r
-#define VIRTIO_CFG_WRITE(Dev, Field, Value) (VirtioWriteDevice ( \\r
- (Dev)->VirtIo, \\r
- OFFSET_OF_VNET (Field), \\r
- SIZE_OF_VNET (Field), \\r
- (Value) \\r
+#define VIRTIO_CFG_WRITE(Dev, Field, Value) ((Dev)->VirtIo->WriteDevice ( \\r
+ (Dev)->VirtIo, \\r
+ OFFSET_OF_VNET (Field), \\r
+ SIZE_OF_VNET (Field), \\r
+ (Value) \\r
))\r
\r
-#define VIRTIO_CFG_READ(Dev, Field, Pointer) (VirtioReadDevice ( \\r
- (Dev)->VirtIo, \\r
- OFFSET_OF_VNET (Field), \\r
- SIZE_OF_VNET (Field), \\r
- sizeof *(Pointer), \\r
- (Pointer) \\r
+#define VIRTIO_CFG_READ(Dev, Field, Pointer) ((Dev)->VirtIo->ReadDevice ( \\r
+ (Dev)->VirtIo, \\r
+ OFFSET_OF_VNET (Field), \\r
+ SIZE_OF_VNET (Field), \\r
+ sizeof *(Pointer), \\r
+ (Pointer) \\r
))\r
\r
//\r
one of UINT8, UINT16, UINT32, UINT64.\r
\r
\r
- @return Status codes returned by VirtioWriteDevice() / VirtioReadDevice().\r
+ @return Status codes returned by Virtio->WriteDevice() / Virtio->ReadDevice().\r
\r
**/\r
\r
-#define VIRTIO_CFG_WRITE(Dev, Field, Value) (VirtioWriteDevice ( \\r
- (Dev)->VirtIo, \\r
- OFFSET_OF_VSCSI (Field), \\r
- SIZE_OF_VSCSI (Field), \\r
- (Value) \\r
+#define VIRTIO_CFG_WRITE(Dev, Field, Value) ((Dev)->VirtIo->WriteDevice ( \\r
+ (Dev)->VirtIo, \\r
+ OFFSET_OF_VSCSI (Field), \\r
+ SIZE_OF_VSCSI (Field), \\r
+ (Value) \\r
))\r
\r
-#define VIRTIO_CFG_READ(Dev, Field, Pointer) (VirtioReadDevice ( \\r
- (Dev)->VirtIo, \\r
- OFFSET_OF_VSCSI (Field), \\r
- SIZE_OF_VSCSI (Field), \\r
- sizeof *(Pointer), \\r
- (Pointer) \\r
+#define VIRTIO_CFG_READ(Dev, Field, Pointer) ((Dev)->VirtIo->ReadDevice ( \\r
+ (Dev)->VirtIo, \\r
+ OFFSET_OF_VSCSI (Field), \\r
+ SIZE_OF_VSCSI (Field), \\r
+ sizeof *(Pointer), \\r
+ (Pointer) \\r
))\r
\r
\r