]> git.proxmox.com Git - mirror_edk2.git/blame - OvmfPkg/PvScsiDxe/PvScsi.h
OvmfPkg/PvScsiDxe: Setup requests and completions rings
[mirror_edk2.git] / OvmfPkg / PvScsiDxe / PvScsi.h
CommitLineData
e497432c
LA
1/** @file\r
2\r
3 Internal definitions for the PVSCSI driver, which produces Extended SCSI\r
4 Pass Thru Protocol instances for pvscsi devices.\r
5\r
6 Copyright (C) 2020, Oracle and/or its affiliates.\r
7\r
8 SPDX-License-Identifier: BSD-2-Clause-Patent\r
9\r
10**/\r
11\r
12#ifndef __PVSCSI_DXE_H_\r
13#define __PVSCSI_DXE_H_\r
14\r
15#include <Library/DebugLib.h>\r
16#include <Protocol/ScsiPassThruExt.h>\r
17\r
b654edec
LA
18typedef struct {\r
19 EFI_PHYSICAL_ADDRESS DeviceAddress;\r
20 VOID *Mapping;\r
21} PVSCSI_DMA_DESC;\r
22\r
23typedef struct {\r
24 PVSCSI_RINGS_STATE *RingState;\r
25 PVSCSI_DMA_DESC RingStateDmaDesc;\r
26\r
27 PVSCSI_RING_REQ_DESC *RingReqs;\r
28 PVSCSI_DMA_DESC RingReqsDmaDesc;\r
29\r
30 PVSCSI_RING_CMP_DESC *RingCmps;\r
31 PVSCSI_DMA_DESC RingCmpsDmaDesc;\r
32} PVSCSI_RING_DESC;\r
33\r
e497432c
LA
34#define PVSCSI_SIG SIGNATURE_32 ('P', 'S', 'C', 'S')\r
35\r
36typedef struct {\r
37 UINT32 Signature;\r
c08eaaaf 38 EFI_PCI_IO_PROTOCOL *PciIo;\r
45098e8a 39 UINT64 OriginalPciAttributes;\r
b654edec 40 PVSCSI_RING_DESC RingDesc;\r
7efce2e5
LA
41 UINT8 MaxTarget;\r
42 UINT8 MaxLun;\r
e497432c
LA
43 EFI_EXT_SCSI_PASS_THRU_PROTOCOL PassThru;\r
44 EFI_EXT_SCSI_PASS_THRU_MODE PassThruMode;\r
45} PVSCSI_DEV;\r
46\r
47#define PVSCSI_FROM_PASS_THRU(PassThruPointer) \\r
48 CR (PassThruPointer, PVSCSI_DEV, PassThru, PVSCSI_SIG)\r
49\r
50#endif // __PVSCSI_DXE_H_\r