]> git.proxmox.com Git - mirror_edk2.git/blob - MdeModulePkg/Universal/Disk/DiskIo/Dxe/DiskIo.h
0459ac48d20c51622e98934eb2e815a89b499f4e
[mirror_edk2.git] / MdeModulePkg / Universal / Disk / DiskIo / Dxe / DiskIo.h
1 /*++
2
3 Copyright (c) 2006, Intel Corporation
4 All rights reserved. This program and the accompanying materials
5 are licensed and made available under the terms and conditions of the BSD License
6 which accompanies this distribution. The full text of the license may be found at
7 http://opensource.org/licenses/bsd-license.php
8
9 THE PROGRAM IS DISTRIBUTED UNDER THE BSD LICENSE ON AN "AS IS" BASIS,
10 WITHOUT WARRANTIES OR REPRESENTATIONS OF ANY KIND, EITHER EXPRESS OR IMPLIED.
11
12 Module Name:
13
14 DiskIo.h
15
16 Abstract:
17 Private Data definition for Disk IO driver
18
19 --*/
20
21 #ifndef _DISK_IO_H
22 #define _DISK_IO_H
23
24
25
26 //
27 // Include common header file for this module.
28 //
29 #include "CommonHeader.h"
30
31 #define DISK_IO_PRIVATE_DATA_SIGNATURE EFI_SIGNATURE_32 ('d', 's', 'k', 'I')
32
33 #define DATA_BUFFER_BLOCK_NUM (64)
34
35 typedef struct {
36 UINTN Signature;
37 EFI_DISK_IO_PROTOCOL DiskIo;
38 EFI_BLOCK_IO_PROTOCOL *BlockIo;
39 } DISK_IO_PRIVATE_DATA;
40
41 #define DISK_IO_PRIVATE_DATA_FROM_THIS(a) CR (a, DISK_IO_PRIVATE_DATA, DiskIo, DISK_IO_PRIVATE_DATA_SIGNATURE)
42
43 //
44 // Global Variables
45 //
46 extern EFI_DRIVER_BINDING_PROTOCOL gDiskIoDriverBinding;
47 extern EFI_COMPONENT_NAME_PROTOCOL gDiskIoComponentName;
48
49 //
50 // Prototypes
51 // Driver model protocol interface
52 //
53 EFI_STATUS
54 EFIAPI
55 DiskIoDriverBindingSupported (
56 IN EFI_DRIVER_BINDING_PROTOCOL *This,
57 IN EFI_HANDLE ControllerHandle,
58 IN EFI_DEVICE_PATH_PROTOCOL *RemainingDevicePath
59 );
60
61 EFI_STATUS
62 EFIAPI
63 DiskIoDriverBindingStart (
64 IN EFI_DRIVER_BINDING_PROTOCOL *This,
65 IN EFI_HANDLE ControllerHandle,
66 IN EFI_DEVICE_PATH_PROTOCOL *RemainingDevicePath
67 );
68
69 EFI_STATUS
70 EFIAPI
71 DiskIoDriverBindingStop (
72 IN EFI_DRIVER_BINDING_PROTOCOL *This,
73 IN EFI_HANDLE ControllerHandle,
74 IN UINTN NumberOfChildren,
75 IN EFI_HANDLE *ChildHandleBuffer
76 );
77
78 //
79 // Disk I/O Protocol Interface
80 //
81 EFI_STATUS
82 EFIAPI
83 DiskIoReadDisk (
84 IN EFI_DISK_IO_PROTOCOL *This,
85 IN UINT32 MediaId,
86 IN UINT64 Offset,
87 IN UINTN BufferSize,
88 OUT VOID *Buffer
89 );
90
91 EFI_STATUS
92 EFIAPI
93 DiskIoWriteDisk (
94 IN EFI_DISK_IO_PROTOCOL *This,
95 IN UINT32 MediaId,
96 IN UINT64 Offset,
97 IN UINTN BufferSize,
98 IN VOID *Buffer
99 );
100
101 //
102 // EFI Component Name Functions
103 //
104 EFI_STATUS
105 EFIAPI
106 DiskIoComponentNameGetDriverName (
107 IN EFI_COMPONENT_NAME_PROTOCOL *This,
108 IN CHAR8 *Language,
109 OUT CHAR16 **DriverName
110 );
111
112 EFI_STATUS
113 EFIAPI
114 DiskIoComponentNameGetControllerName (
115 IN EFI_COMPONENT_NAME_PROTOCOL *This,
116 IN EFI_HANDLE ControllerHandle,
117 IN EFI_HANDLE ChildHandle OPTIONAL,
118 IN CHAR8 *Language,
119 OUT CHAR16 **ControllerName
120 );
121
122 #endif