iPXE
DiskIo.h
Go to the documentation of this file.
1 /** @file
2  Disk IO protocol as defined in the UEFI 2.0 specification.
3 
4  The Disk IO protocol is used to convert block oriented devices into byte
5  oriented devices. The Disk IO protocol is intended to layer on top of the
6  Block IO protocol.
7 
8  Copyright (c) 2006 - 2018, Intel Corporation. All rights reserved.<BR>
9  SPDX-License-Identifier: BSD-2-Clause-Patent
10 
11 **/
12 
13 #ifndef __DISK_IO_H__
14 #define __DISK_IO_H__
15 
16 FILE_LICENCE ( BSD2_PATENT );
17 
18 #define EFI_DISK_IO_PROTOCOL_GUID \
19  { \
20  0xce345171, 0xba0b, 0x11d2, {0x8e, 0x4f, 0x0, 0xa0, 0xc9, 0x69, 0x72, 0x3b } \
21  }
22 
23 ///
24 /// Protocol GUID name defined in EFI1.1.
25 ///
26 #define DISK_IO_PROTOCOL EFI_DISK_IO_PROTOCOL_GUID
27 
29 
30 ///
31 /// Protocol defined in EFI1.1.
32 ///
34 
35 /**
36  Read BufferSize bytes from Offset into Buffer.
37 
38  @param This Protocol instance pointer.
39  @param MediaId Id of the media, changes every time the media is replaced.
40  @param Offset The starting byte offset to read from
41  @param BufferSize Size of Buffer
42  @param Buffer Buffer containing read data
43 
44  @retval EFI_SUCCESS The data was read correctly from the device.
45  @retval EFI_DEVICE_ERROR The device reported an error while performing the read.
46  @retval EFI_NO_MEDIA There is no media in the device.
47  @retval EFI_MEDIA_CHNAGED The MediaId does not matched the current device.
48  @retval EFI_INVALID_PARAMETER The read request contains device addresses that are not
49  valid for the device.
50 
51 **/
52 typedef
56  IN UINT32 MediaId,
57  IN UINT64 Offset,
59  OUT VOID *Buffer
60  );
61 
62 /**
63  Writes a specified number of bytes to a device.
64 
65  @param This Indicates a pointer to the calling context.
66  @param MediaId ID of the medium to be written.
67  @param Offset The starting byte offset on the logical block I/O device to write.
68  @param BufferSize The size in bytes of Buffer. The number of bytes to write to the device.
69  @param Buffer A pointer to the buffer containing the data to be written.
70 
71  @retval EFI_SUCCESS The data was written correctly to the device.
72  @retval EFI_WRITE_PROTECTED The device can not be written to.
73  @retval EFI_DEVICE_ERROR The device reported an error while performing the write.
74  @retval EFI_NO_MEDIA There is no media in the device.
75  @retval EFI_MEDIA_CHNAGED The MediaId does not matched the current device.
76  @retval EFI_INVALID_PARAMETER The write request contains device addresses that are not
77  valid for the device.
78 
79 **/
80 typedef
84  IN UINT32 MediaId,
85  IN UINT64 Offset,
87  IN VOID *Buffer
88  );
89 
90 #define EFI_DISK_IO_PROTOCOL_REVISION 0x00010000
91 
92 ///
93 /// Revision defined in EFI1.1
94 ///
95 #define EFI_DISK_IO_INTERFACE_REVISION EFI_DISK_IO_PROTOCOL_REVISION
96 
97 ///
98 /// This protocol is used to abstract Block I/O interfaces.
99 ///
101  ///
102  /// The revision to which the disk I/O interface adheres. All future
103  /// revisions must be backwards compatible. If a future version is not
104  /// backwards compatible, it is not the same GUID.
105  ///
109 };
110 
112 
113 #endif
128 bit buffer containing a unique identifier value.
Definition: Base.h:215
unsigned int UINT32
Definition: ProcessorBind.h:98
EFI_DISK_READ ReadDisk
Definition: DiskIo.h:107
UINT16_t BufferSize
Buffer size.
Definition: pxe_api.h:64
EFI_STATUS(EFIAPI * EFI_DISK_READ)(IN EFI_DISK_IO_PROTOCOL *This, IN UINT32 MediaId, IN UINT64 Offset, IN UINTN BufferSize, OUT VOID *Buffer)
Read BufferSize bytes from Offset into Buffer.
Definition: DiskIo.h:54
EFI_STATUS(EFIAPI * EFI_DISK_WRITE)(IN EFI_DISK_IO_PROTOCOL *This, IN UINT32 MediaId, IN UINT64 Offset, IN UINTN BufferSize, IN VOID *Buffer)
Writes a specified number of bytes to a device.
Definition: DiskIo.h:82
FILE_LICENCE(BSD2_PATENT)
EFI_DISK_WRITE WriteDisk
Definition: DiskIo.h:108
#define OUT
Definition: mlx_utils.h:29
This protocol is used to abstract Block I/O interfaces.
Definition: DiskIo.h:100
EFI_DISK_IO_PROTOCOL EFI_DISK_IO
Protocol defined in EFI1.1.
Definition: DiskIo.h:33
#define EFIAPI
EFI_GUID gEfiDiskIoProtocolGuid
SEGOFF16_t Buffer
Buffer address.
Definition: pxe_api.h:65
UINT64 UINTN
Unsigned value of native width.
#define VOID
Undeclared type.
Definition: Base.h:271
unsigned long long UINT64
Definition: ProcessorBind.h:96
#define IN
Definition: mlx_utils.h:28
RETURN_STATUS EFI_STATUS
Function return status for EFI API.
Definition: UefiBaseType.h:31
UINT64 Revision
The revision to which the disk I/O interface adheres.
Definition: DiskIo.h:106