VirtualBox

source: vbox/trunk/src/VBox/Devices/EFI/FirmwareNew/OvmfPkg/XenPvBlkDxe/BlockFront.h@ 79205

Last change on this file since 79205 was 77662, checked in by vboxsync, 6 years ago

EFI: First step in UDK2018 merge. Does not build yet.

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

© 2024 Oracle Support Privacy / Do Not Sell My Info Terms of Use Trademark Policy Automated Access Etiquette