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#pragma once
14
15FILE_LICENCE ( BSD2_PATENT );
16FILE_SECBOOT ( PERMITTED );
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**/
52typedef
56 IN UINT32 MediaId,
57 IN UINT64 Offset,
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**/
80typedef
84 IN UINT32 MediaId,
85 IN UINT64 Offset,
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
UINT64 UINTN
Unsigned value of native width.
unsigned long long UINT64
8-byte unsigned value.
#define EFIAPI
unsigned int UINT32
4-byte unsigned value.
#define VOID
Undeclared type.
Definition Base.h:271
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
EFI_DISK_IO_PROTOCOL EFI_DISK_IO
Protocol defined in EFI1.1.
Definition DiskIo.h:33
struct _EFI_DISK_IO_PROTOCOL EFI_DISK_IO_PROTOCOL
Definition DiskIo.h:28
EFI_GUID gEfiDiskIoProtocolGuid
RETURN_STATUS EFI_STATUS
Function return status for EFI API.
GUID EFI_GUID
128-bit buffer containing a unique identifier value.
#define FILE_LICENCE(_licence)
Declare a particular licence as applying to a file.
Definition compiler.h:921
#define FILE_SECBOOT(_status)
Declare a file's UEFI Secure Boot permission status.
Definition compiler.h:951
#define IN
Definition mlx_utils.h:28
#define OUT
Definition mlx_utils.h:29
UINT16_t BufferSize
Buffer size.
Definition pxe_api.h:7
SEGOFF16_t Buffer
Buffer address.
Definition pxe_api.h:8
This protocol is used to abstract Block I/O interfaces.
Definition DiskIo.h:100
UINT64 Revision
The revision to which the disk I/O interface adheres.
Definition DiskIo.h:106
EFI_DISK_WRITE WriteDisk
Definition DiskIo.h:108
EFI_DISK_READ ReadDisk
Definition DiskIo.h:107