]> git.proxmox.com Git - mirror_edk2.git/blame - OvmfPkg/XenPvBlkDxe/BlockFront.h
OvmfPkg: Apply uncrustify changes
[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
b26f0cf9 6 SPDX-License-Identifier: BSD-2-Clause-Patent\r
5cce8524
ST
7\r
8**/\r
9#include "XenPvBlkDxe.h"\r
10\r
11#include <IndustryStandard/Xen/event_channel.h>\r
12#include <IndustryStandard/Xen/io/blkif.h>\r
13\r
ac0a286f
MK
14typedef struct _XEN_BLOCK_FRONT_DEVICE XEN_BLOCK_FRONT_DEVICE;\r
15typedef struct _XEN_BLOCK_FRONT_IO XEN_BLOCK_FRONT_IO;\r
5cce8524 16\r
ac0a286f
MK
17struct _XEN_BLOCK_FRONT_IO {\r
18 XEN_BLOCK_FRONT_DEVICE *Dev;\r
19 UINT8 *Buffer;\r
20 UINTN Size;\r
21 UINTN Sector; ///< 512 bytes sector.\r
5cce8524 22\r
ac0a286f
MK
23 grant_ref_t GrantRef[BLKIF_MAX_SEGMENTS_PER_REQUEST];\r
24 INT32 NumRef;\r
5cce8524 25\r
ac0a286f 26 EFI_STATUS Status;\r
5cce8524
ST
27};\r
28\r
ac0a286f
MK
29typedef struct {\r
30 UINT64 Sectors;\r
31 UINT32 SectorSize;\r
32 UINT32 VDiskInfo;\r
33 BOOLEAN ReadWrite;\r
34 BOOLEAN CdRom;\r
35 BOOLEAN FeatureBarrier;\r
36 BOOLEAN FeatureFlushCache;\r
5cce8524
ST
37} XEN_BLOCK_FRONT_MEDIA_INFO;\r
38\r
ac0a286f 39#define XEN_BLOCK_FRONT_SIGNATURE SIGNATURE_32 ('X', 'p', 'v', 'B')\r
5cce8524 40struct _XEN_BLOCK_FRONT_DEVICE {\r
ac0a286f
MK
41 UINT32 Signature;\r
42 EFI_BLOCK_IO_PROTOCOL BlockIo;\r
43 domid_t DomainId;\r
5cce8524 44\r
ac0a286f
MK
45 blkif_front_ring_t Ring;\r
46 grant_ref_t RingRef;\r
47 evtchn_port_t EventChannel;\r
48 blkif_vdev_t DeviceId;\r
5cce8524 49\r
ac0a286f
MK
50 CONST CHAR8 *NodeName;\r
51 XEN_BLOCK_FRONT_MEDIA_INFO MediaInfo;\r
5cce8524 52\r
ac0a286f 53 VOID *StateWatchToken;\r
5cce8524 54\r
ac0a286f 55 XENBUS_PROTOCOL *XenBusIo;\r
5cce8524
ST
56};\r
57\r
58#define XEN_BLOCK_FRONT_FROM_BLOCK_IO(b) \\r
59 CR (b, XEN_BLOCK_FRONT_DEVICE, BlockIo, XEN_BLOCK_FRONT_SIGNATURE)\r
60\r
61EFI_STATUS\r
62XenPvBlockFrontInitialization (\r
ac0a286f
MK
63 IN XENBUS_PROTOCOL *XenBusIo,\r
64 IN CONST CHAR8 *NodeName,\r
65 OUT XEN_BLOCK_FRONT_DEVICE **DevPtr\r
5cce8524
ST
66 );\r
67\r
68VOID\r
69XenPvBlockFrontShutdown (\r
ac0a286f 70 IN XEN_BLOCK_FRONT_DEVICE *Dev\r
5cce8524
ST
71 );\r
72\r
73VOID\r
74XenPvBlockAsyncIo (\r
ac0a286f
MK
75 IN OUT XEN_BLOCK_FRONT_IO *IoData,\r
76 IN BOOLEAN IsWrite\r
5cce8524
ST
77 );\r
78\r
79EFI_STATUS\r
80XenPvBlockIo (\r
ac0a286f
MK
81 IN OUT XEN_BLOCK_FRONT_IO *IoData,\r
82 IN BOOLEAN IsWrite\r
5cce8524
ST
83 );\r
84\r
85VOID\r
86XenPvBlockAsyncIoPoll (\r
ac0a286f 87 IN XEN_BLOCK_FRONT_DEVICE *Dev\r
5cce8524
ST
88 );\r
89\r
90VOID\r
91XenPvBlockSync (\r
ac0a286f 92 IN XEN_BLOCK_FRONT_DEVICE *Dev\r
5cce8524 93 );\r