]> git.proxmox.com Git - mirror_edk2.git/blame - MdeModulePkg/Universal/Disk/DiskIo/Dxe/DiskIo.h
pdated code per coding standard. Changed comments, converted all \ to / and removed...
[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
16#include <Uefi.h>\r
17#include <Protocol/BlockIo.h>\r
18#include <Protocol/ComponentName.h>\r
19#include <Protocol/DriverBinding.h>\r
20#include <Protocol/DiskIo.h>\r
21#include <Library/DebugLib.h>\r
22#include <Library/UefiDriverEntryPoint.h>\r
23#include <Library/UefiLib.h>\r
24#include <Library/BaseLib.h>\r
25#include <Library/BaseMemoryLib.h>\r
26#include <Library/MemoryAllocationLib.h>\r
27#include <Library/UefiBootServicesTableLib.h>\r
79840ee1 28\r
29//\r
b9575d60 30// Driver Binding Externs\r
79840ee1 31//\r
b9575d60
A
32extern EFI_DRIVER_BINDING_PROTOCOL gDiskIoDriverBinding;\r
33extern EFI_COMPONENT_NAME_PROTOCOL gDiskIoComponentName;\r
34\r
35\r
79840ee1 36\r
37#define DISK_IO_PRIVATE_DATA_SIGNATURE EFI_SIGNATURE_32 ('d', 's', 'k', 'I')\r
38\r
39#define DATA_BUFFER_BLOCK_NUM (64)\r
40\r
41typedef struct {\r
42 UINTN Signature;\r
43 EFI_DISK_IO_PROTOCOL DiskIo;\r
44 EFI_BLOCK_IO_PROTOCOL *BlockIo;\r
45} DISK_IO_PRIVATE_DATA;\r
46\r
47#define DISK_IO_PRIVATE_DATA_FROM_THIS(a) CR (a, DISK_IO_PRIVATE_DATA, DiskIo, DISK_IO_PRIVATE_DATA_SIGNATURE)\r
48\r
49//\r
50// Global Variables\r
51//\r
52extern EFI_DRIVER_BINDING_PROTOCOL gDiskIoDriverBinding;\r
53extern EFI_COMPONENT_NAME_PROTOCOL gDiskIoComponentName;\r
54\r
55//\r
56// Prototypes\r
57// Driver model protocol interface\r
58//\r
59EFI_STATUS\r
60EFIAPI\r
61DiskIoDriverBindingSupported (\r
62 IN EFI_DRIVER_BINDING_PROTOCOL *This,\r
63 IN EFI_HANDLE ControllerHandle,\r
64 IN EFI_DEVICE_PATH_PROTOCOL *RemainingDevicePath\r
65 );\r
66\r
67EFI_STATUS\r
68EFIAPI\r
69DiskIoDriverBindingStart (\r
70 IN EFI_DRIVER_BINDING_PROTOCOL *This,\r
71 IN EFI_HANDLE ControllerHandle,\r
72 IN EFI_DEVICE_PATH_PROTOCOL *RemainingDevicePath\r
73 );\r
74\r
75EFI_STATUS\r
76EFIAPI\r
77DiskIoDriverBindingStop (\r
78 IN EFI_DRIVER_BINDING_PROTOCOL *This,\r
79 IN EFI_HANDLE ControllerHandle,\r
80 IN UINTN NumberOfChildren,\r
81 IN EFI_HANDLE *ChildHandleBuffer\r
82 );\r
83\r
84//\r
85// Disk I/O Protocol Interface\r
86//\r
87EFI_STATUS\r
88EFIAPI\r
89DiskIoReadDisk (\r
90 IN EFI_DISK_IO_PROTOCOL *This,\r
91 IN UINT32 MediaId,\r
92 IN UINT64 Offset,\r
93 IN UINTN BufferSize,\r
94 OUT VOID *Buffer\r
95 );\r
96\r
97EFI_STATUS\r
98EFIAPI\r
99DiskIoWriteDisk (\r
100 IN EFI_DISK_IO_PROTOCOL *This,\r
101 IN UINT32 MediaId,\r
102 IN UINT64 Offset,\r
103 IN UINTN BufferSize,\r
104 IN VOID *Buffer\r
105 );\r
106\r
107//\r
108// EFI Component Name Functions\r
109//\r
110EFI_STATUS\r
111EFIAPI\r
112DiskIoComponentNameGetDriverName (\r
113 IN EFI_COMPONENT_NAME_PROTOCOL *This,\r
114 IN CHAR8 *Language,\r
115 OUT CHAR16 **DriverName\r
116 );\r
117\r
118EFI_STATUS\r
119EFIAPI\r
120DiskIoComponentNameGetControllerName (\r
121 IN EFI_COMPONENT_NAME_PROTOCOL *This,\r
122 IN EFI_HANDLE ControllerHandle,\r
123 IN EFI_HANDLE ChildHandle OPTIONAL,\r
124 IN CHAR8 *Language,\r
125 OUT CHAR16 **ControllerName\r
126 );\r
127\r