]> git.proxmox.com Git - mirror_edk2.git/blame - MdeModulePkg/Universal/Disk/Partition/Dxe/Partition.h
Fixed typo in function header
[mirror_edk2.git] / MdeModulePkg / Universal / Disk / Partition / Dxe / Partition.h
CommitLineData
79840ee1 1/*++\r
2\r
3Copyright (c) 2006, Intel Corporation\r
4All rights reserved. This program and the accompanying materials\r
5are licensed and made available under the terms and conditions of the BSD License\r
6which accompanies this distribution. The full text of the license may be found at\r
7http://opensource.org/licenses/bsd-license.php\r
8\r
9THE PROGRAM IS DISTRIBUTED UNDER THE BSD LICENSE ON AN "AS IS" BASIS,\r
10WITHOUT WARRANTIES OR REPRESENTATIONS OF ANY KIND, EITHER EXPRESS OR IMPLIED.\r
11\r
12Module Name:\r
13\r
14 Partition.h\r
15 \r
16Abstract:\r
17\r
18 Partition driver that produces logical BlockIo devices from a physical \r
19 BlockIo device. The logical BlockIo devices are based on the format\r
20 of the raw block devices media. Currently "El Torito CD-ROM", Legacy \r
21 MBR, and GPT partition schemes are supported.\r
22\r
23Revision History\r
24\r
25--*/\r
26\r
27#ifndef __PARTITION_H__\r
28#define __PARTITION_H__\r
29\r
30//\r
31// Include common header file for this module.\r
32//\r
33#include "CommonHeader.h"\r
34\r
35#include <IndustryStandard/Mbr.h>\r
36#include <IndustryStandard/ElTorito.h>\r
37\r
38\r
39//\r
40// Partition private data\r
41//\r
42#define PARTITION_PRIVATE_DATA_SIGNATURE EFI_SIGNATURE_32 ('P', 'a', 'r', 't')\r
43typedef struct {\r
44 UINT64 Signature;\r
45\r
46 EFI_HANDLE Handle;\r
47 EFI_DEVICE_PATH_PROTOCOL *DevicePath;\r
48 EFI_BLOCK_IO_PROTOCOL BlockIo;\r
49 EFI_BLOCK_IO_MEDIA Media;\r
50\r
51 EFI_DISK_IO_PROTOCOL *DiskIo;\r
52 EFI_BLOCK_IO_PROTOCOL *ParentBlockIo;\r
53 UINT64 Start;\r
54 UINT64 End;\r
55 UINT32 BlockSize;\r
56\r
57 EFI_GUID *EspGuid;\r
58\r
59} PARTITION_PRIVATE_DATA;\r
60\r
61#define PARTITION_DEVICE_FROM_BLOCK_IO_THIS(a) CR (a, PARTITION_PRIVATE_DATA, BlockIo, PARTITION_PRIVATE_DATA_SIGNATURE)\r
62\r
63//\r
64// Global Variables\r
65//\r
66extern EFI_DRIVER_BINDING_PROTOCOL gPartitionDriverBinding;\r
67extern EFI_COMPONENT_NAME_PROTOCOL gPartitionComponentName;\r
68\r
69//\r
70// Extract INT32 from char array\r
71//\r
72#define UNPACK_INT32(a) (INT32)( (((UINT8 *) a)[0] << 0) | \\r
73 (((UINT8 *) a)[1] << 8) | \\r
74 (((UINT8 *) a)[2] << 16) | \\r
75 (((UINT8 *) a)[3] << 24) )\r
76\r
77//\r
78// Extract UINT32 from char array\r
79//\r
80#define UNPACK_UINT32(a) (UINT32)( (((UINT8 *) a)[0] << 0) | \\r
81 (((UINT8 *) a)[1] << 8) | \\r
82 (((UINT8 *) a)[2] << 16) | \\r
83 (((UINT8 *) a)[3] << 24) )\r
84\r
85//\r
86// Function Prototypes\r
87//\r
88EFI_STATUS\r
89EFIAPI\r
90PartitionDriverBindingSupported (\r
91 IN EFI_DRIVER_BINDING_PROTOCOL *This,\r
92 IN EFI_HANDLE ControllerHandle,\r
93 IN EFI_DEVICE_PATH_PROTOCOL *RemainingDevicePath\r
94 );\r
95\r
96EFI_STATUS\r
97EFIAPI\r
98PartitionDriverBindingStart (\r
99 IN EFI_DRIVER_BINDING_PROTOCOL *This,\r
100 IN EFI_HANDLE ControllerHandle,\r
101 IN EFI_DEVICE_PATH_PROTOCOL *RemainingDevicePath\r
102 );\r
103\r
104EFI_STATUS\r
105EFIAPI\r
106PartitionDriverBindingStop (\r
107 IN EFI_DRIVER_BINDING_PROTOCOL *This,\r
108 IN EFI_HANDLE ControllerHandle,\r
109 IN UINTN NumberOfChildren,\r
110 IN EFI_HANDLE *ChildHandleBuffer\r
111 );\r
112\r
113//\r
114// EFI Component Name Functions\r
115//\r
116EFI_STATUS\r
117EFIAPI\r
118PartitionComponentNameGetDriverName (\r
119 IN EFI_COMPONENT_NAME_PROTOCOL *This,\r
120 IN CHAR8 *Language,\r
121 OUT CHAR16 **DriverName\r
122 );\r
123\r
124EFI_STATUS\r
125EFIAPI\r
126PartitionComponentNameGetControllerName (\r
127 IN EFI_COMPONENT_NAME_PROTOCOL *This,\r
128 IN EFI_HANDLE ControllerHandle,\r
129 IN EFI_HANDLE ChildHandle OPTIONAL,\r
130 IN CHAR8 *Language,\r
131 OUT CHAR16 **ControllerName\r
132 );\r
133\r
134EFI_STATUS\r
135PartitionInstallChildHandle (\r
136 IN EFI_DRIVER_BINDING_PROTOCOL *This,\r
137 IN EFI_HANDLE ParentHandle,\r
138 IN EFI_DISK_IO_PROTOCOL *ParentDiskIo,\r
139 IN EFI_BLOCK_IO_PROTOCOL *ParentBlockIo,\r
140 IN EFI_DEVICE_PATH_PROTOCOL *ParentDevicePath,\r
141 IN EFI_DEVICE_PATH_PROTOCOL *DevicePathNode,\r
142 IN UINT64 Start,\r
143 IN UINT64 End,\r
144 IN UINT32 BlockSize,\r
145 IN BOOLEAN InstallEspGuid\r
146 )\r
147;\r
148\r
149EFI_STATUS\r
150PartitionInstallGptChildHandles (\r
151 IN EFI_DRIVER_BINDING_PROTOCOL *This,\r
152 IN EFI_HANDLE Handle,\r
153 IN EFI_DISK_IO_PROTOCOL *DiskIo,\r
154 IN EFI_BLOCK_IO_PROTOCOL *BlockIo,\r
155 IN EFI_DEVICE_PATH_PROTOCOL *DevicePath\r
156 )\r
157;\r
158\r
159EFI_STATUS\r
160PartitionInstallElToritoChildHandles (\r
161 IN EFI_DRIVER_BINDING_PROTOCOL *This,\r
162 IN EFI_HANDLE Handle,\r
163 IN EFI_DISK_IO_PROTOCOL *DiskIo,\r
164 IN EFI_BLOCK_IO_PROTOCOL *BlockIo,\r
165 IN EFI_DEVICE_PATH_PROTOCOL *DevicePath\r
166 )\r
167;\r
168\r
169EFI_STATUS\r
170PartitionInstallMbrChildHandles (\r
171 IN EFI_DRIVER_BINDING_PROTOCOL *This,\r
172 IN EFI_HANDLE Handle,\r
173 IN EFI_DISK_IO_PROTOCOL *DiskIo,\r
174 IN EFI_BLOCK_IO_PROTOCOL *BlockIo,\r
175 IN EFI_DEVICE_PATH_PROTOCOL *DevicePath\r
176 )\r
177;\r
178\r
179typedef\r
180EFI_STATUS\r
181(*PARTITION_DETECT_ROUTINE) (\r
182 IN EFI_DRIVER_BINDING_PROTOCOL *This,\r
183 IN EFI_HANDLE Handle,\r
184 IN EFI_DISK_IO_PROTOCOL *DiskIo,\r
185 IN EFI_BLOCK_IO_PROTOCOL *BlockIo,\r
186 IN EFI_DEVICE_PATH_PROTOCOL *DevicePath\r
187 );\r
188\r
189#endif\r