]> git.proxmox.com Git - mirror_edk2.git/blame - MdeModulePkg/Universal/Disk/DiskIo/Dxe/DiskIo.h
added PPI and Protocol definitions needed by porting modules
[mirror_edk2.git] / MdeModulePkg / Universal / Disk / DiskIo / Dxe / DiskIo.h
CommitLineData
b9575d60
A
1/** @file\r
2 DiskIo driver that layers it's self on every Block IO protocol in the system.\r
3 DiskIo converts a block oriented device to a byte oriented device.\r
4\r
5 Copyright (c) 2006 - 2007, Intel Corporation \r
6 All rights reserved. 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\r
42bc7f77
A
16#ifndef _DISK_IO_H\r
17#define _DISK_IO_H\r
39da6730 18\r
d8a43975 19//\r
20// Include common header file for this module.\r
21//\r
22#include "CommonHeader.h"\r
23\r
b9575d60
A
24#include <Uefi.h>\r
25#include <Protocol/BlockIo.h>\r
26#include <Protocol/ComponentName.h>\r
27#include <Protocol/DriverBinding.h>\r
28#include <Protocol/DiskIo.h>\r
29#include <Library/DebugLib.h>\r
30#include <Library/UefiDriverEntryPoint.h>\r
31#include <Library/UefiLib.h>\r
32#include <Library/BaseLib.h>\r
33#include <Library/BaseMemoryLib.h>\r
34#include <Library/MemoryAllocationLib.h>\r
35#include <Library/UefiBootServicesTableLib.h>\r
79840ee1 36\r
79840ee1 37\r
38#define DISK_IO_PRIVATE_DATA_SIGNATURE EFI_SIGNATURE_32 ('d', 's', 'k', 'I')\r
39\r
40#define DATA_BUFFER_BLOCK_NUM (64)\r
41\r
42typedef struct {\r
43 UINTN Signature;\r
44 EFI_DISK_IO_PROTOCOL DiskIo;\r
45 EFI_BLOCK_IO_PROTOCOL *BlockIo;\r
46} DISK_IO_PRIVATE_DATA;\r
47\r
48#define DISK_IO_PRIVATE_DATA_FROM_THIS(a) CR (a, DISK_IO_PRIVATE_DATA, DiskIo, DISK_IO_PRIVATE_DATA_SIGNATURE)\r
49\r
50//\r
51// Global Variables\r
52//\r
53extern EFI_DRIVER_BINDING_PROTOCOL gDiskIoDriverBinding;\r
54extern EFI_COMPONENT_NAME_PROTOCOL gDiskIoComponentName;\r
55\r
56//\r
57// Prototypes\r
58// Driver model protocol interface\r
59//\r
60EFI_STATUS\r
61EFIAPI\r
62DiskIoDriverBindingSupported (\r
63 IN EFI_DRIVER_BINDING_PROTOCOL *This,\r
64 IN EFI_HANDLE ControllerHandle,\r
65 IN EFI_DEVICE_PATH_PROTOCOL *RemainingDevicePath\r
66 );\r
67\r
68EFI_STATUS\r
69EFIAPI\r
70DiskIoDriverBindingStart (\r
71 IN EFI_DRIVER_BINDING_PROTOCOL *This,\r
72 IN EFI_HANDLE ControllerHandle,\r
73 IN EFI_DEVICE_PATH_PROTOCOL *RemainingDevicePath\r
74 );\r
75\r
76EFI_STATUS\r
77EFIAPI\r
78DiskIoDriverBindingStop (\r
79 IN EFI_DRIVER_BINDING_PROTOCOL *This,\r
80 IN EFI_HANDLE ControllerHandle,\r
81 IN UINTN NumberOfChildren,\r
82 IN EFI_HANDLE *ChildHandleBuffer\r
83 );\r
84\r
85//\r
86// Disk I/O Protocol Interface\r
87//\r
88EFI_STATUS\r
89EFIAPI\r
90DiskIoReadDisk (\r
91 IN EFI_DISK_IO_PROTOCOL *This,\r
92 IN UINT32 MediaId,\r
93 IN UINT64 Offset,\r
94 IN UINTN BufferSize,\r
95 OUT VOID *Buffer\r
96 );\r
97\r
98EFI_STATUS\r
99EFIAPI\r
100DiskIoWriteDisk (\r
101 IN EFI_DISK_IO_PROTOCOL *This,\r
102 IN UINT32 MediaId,\r
103 IN UINT64 Offset,\r
104 IN UINTN BufferSize,\r
105 IN VOID *Buffer\r
106 );\r
107\r
108//\r
109// EFI Component Name Functions\r
110//\r
111EFI_STATUS\r
112EFIAPI\r
113DiskIoComponentNameGetDriverName (\r
114 IN EFI_COMPONENT_NAME_PROTOCOL *This,\r
115 IN CHAR8 *Language,\r
116 OUT CHAR16 **DriverName\r
117 );\r
118\r
119EFI_STATUS\r
120EFIAPI\r
121DiskIoComponentNameGetControllerName (\r
122 IN EFI_COMPONENT_NAME_PROTOCOL *This,\r
123 IN EFI_HANDLE ControllerHandle,\r
124 IN EFI_HANDLE ChildHandle OPTIONAL,\r
125 IN CHAR8 *Language,\r
126 OUT CHAR16 **ControllerName\r
127 );\r
128\r
39da6730 129#endif\r