]> git.proxmox.com Git - mirror_edk2.git/blame - OvmfPkg/XenPvBlkDxe/BlockFront.h
OvmfPkg/XenPvBlkDxe: fix VS2010 build failures
[mirror_edk2.git] / OvmfPkg / XenPvBlkDxe / BlockFront.h
CommitLineData
5cce8524
ST
1/** @file\r
2 BlockFront functions and types declarations.\r
3\r
4 Copyright (C) 2014, Citrix Ltd.\r
5\r
6 This program and the accompanying materials\r
7 are licensed and made available under the terms and conditions of the BSD License\r
8 which accompanies this distribution. The full text of the license may be found at\r
9 http://opensource.org/licenses/bsd-license.php\r
10\r
11 THE PROGRAM IS DISTRIBUTED UNDER THE BSD LICENSE ON AN "AS IS" BASIS,\r
12 WITHOUT WARRANTIES OR REPRESENTATIONS OF ANY KIND, EITHER EXPRESS OR IMPLIED.\r
13\r
14**/\r
15#include "XenPvBlkDxe.h"\r
16\r
17#include <IndustryStandard/Xen/event_channel.h>\r
18#include <IndustryStandard/Xen/io/blkif.h>\r
19\r
20typedef struct _XEN_BLOCK_FRONT_DEVICE XEN_BLOCK_FRONT_DEVICE;\r
21typedef struct _XEN_BLOCK_FRONT_IO XEN_BLOCK_FRONT_IO;\r
22\r
23struct _XEN_BLOCK_FRONT_IO\r
24{\r
25 XEN_BLOCK_FRONT_DEVICE *Dev;\r
26 UINT8 *Buffer;\r
27 UINTN Size;\r
28 UINTN Sector; ///< 512 bytes sector.\r
29\r
30 grant_ref_t GrantRef[BLKIF_MAX_SEGMENTS_PER_REQUEST];\r
31 INT32 NumRef;\r
32\r
33 EFI_STATUS Status;\r
34};\r
35\r
36typedef struct\r
37{\r
38 UINT64 Sectors;\r
39 UINT32 SectorSize;\r
40 UINT32 VDiskInfo;\r
41 BOOLEAN ReadWrite;\r
42 BOOLEAN CdRom;\r
43 BOOLEAN FeatureBarrier;\r
44 BOOLEAN FeatureFlushCache;\r
45} XEN_BLOCK_FRONT_MEDIA_INFO;\r
46\r
47#define XEN_BLOCK_FRONT_SIGNATURE SIGNATURE_32 ('X', 'p', 'v', 'B')\r
48struct _XEN_BLOCK_FRONT_DEVICE {\r
49 UINT32 Signature;\r
50 EFI_BLOCK_IO_PROTOCOL BlockIo;\r
51 domid_t DomainId;\r
52\r
53 blkif_front_ring_t Ring;\r
54 grant_ref_t RingRef;\r
55 evtchn_port_t EventChannel;\r
56 blkif_vdev_t DeviceId;\r
57\r
58 CONST CHAR8 *NodeName;\r
59 XEN_BLOCK_FRONT_MEDIA_INFO MediaInfo;\r
60\r
61 VOID *StateWatchToken;\r
62\r
63 XENBUS_PROTOCOL *XenBusIo;\r
64};\r
65\r
66#define XEN_BLOCK_FRONT_FROM_BLOCK_IO(b) \\r
67 CR (b, XEN_BLOCK_FRONT_DEVICE, BlockIo, XEN_BLOCK_FRONT_SIGNATURE)\r
68\r
69EFI_STATUS\r
70XenPvBlockFrontInitialization (\r
71 IN XENBUS_PROTOCOL *XenBusIo,\r
72 IN CONST CHAR8 *NodeName,\r
73 OUT XEN_BLOCK_FRONT_DEVICE **DevPtr\r
74 );\r
75\r
76VOID\r
77XenPvBlockFrontShutdown (\r
78 IN XEN_BLOCK_FRONT_DEVICE *Dev\r
79 );\r
80\r
81VOID\r
82XenPvBlockAsyncIo (\r
83 IN OUT XEN_BLOCK_FRONT_IO *IoData,\r
84 IN BOOLEAN IsWrite\r
85 );\r
86\r
87EFI_STATUS\r
88XenPvBlockIo (\r
89 IN OUT XEN_BLOCK_FRONT_IO *IoData,\r
90 IN BOOLEAN IsWrite\r
91 );\r
92\r
93VOID\r
94XenPvBlockAsyncIoPoll (\r
95 IN XEN_BLOCK_FRONT_DEVICE *Dev\r
96 );\r
97\r
98VOID\r
99XenPvBlockSync (\r
100 IN XEN_BLOCK_FRONT_DEVICE *Dev\r
101 );\r