mirror of https://github.com/acidanthera/audk.git
89 lines
2.5 KiB
C
89 lines
2.5 KiB
C
/*++
|
|
|
|
Copyright (c) 1999 - 2002, Intel Corporation
|
|
All rights reserved. This program and the accompanying materials
|
|
are licensed and made available under the terms and conditions of the BSD License
|
|
which accompanies this distribution. The full text of the license may be found at
|
|
http://opensource.org/licenses/bsd-license.php
|
|
|
|
THE PROGRAM IS DISTRIBUTED UNDER THE BSD LICENSE ON AN "AS IS" BASIS,
|
|
WITHOUT WARRANTIES OR REPRESENTATIONS OF ANY KIND, EITHER EXPRESS OR IMPLIED.
|
|
|
|
|
|
Module Name:
|
|
|
|
BlockIo.h
|
|
|
|
Abstract:
|
|
|
|
BlockIo PPI as defined in EFI 2.0
|
|
|
|
Used to access block-oriented storage devices
|
|
|
|
--*/
|
|
|
|
#ifndef _PEI_BLOCK_IO_H_
|
|
#define _PEI_BLOCK_IO_H_
|
|
|
|
#define PEI_BLOCK_IO_PPI_GUID \
|
|
{ \
|
|
0x695d8aa1, 0x42ee, 0x4c46, 0x80, 0x5c, 0x6e, 0xa6, 0xbc, 0xe7, 0x99, 0xe3 \
|
|
}
|
|
|
|
EFI_FORWARD_DECLARATION (PEI_RECOVERY_BLOCK_IO_INTERFACE);
|
|
|
|
typedef UINT64 PEI_LBA;
|
|
|
|
typedef enum {
|
|
LegacyFloppy = 0,
|
|
IdeCDROM = 1,
|
|
IdeLS120 = 2,
|
|
UsbMassStorage= 3,
|
|
MaxDeviceType
|
|
} PEI_BLOCK_DEVICE_TYPE;
|
|
|
|
typedef struct {
|
|
PEI_BLOCK_DEVICE_TYPE DeviceType;
|
|
BOOLEAN MediaPresent;
|
|
UINTN LastBlock;
|
|
UINTN BlockSize;
|
|
} PEI_BLOCK_IO_MEDIA;
|
|
|
|
typedef
|
|
EFI_STATUS
|
|
(EFIAPI *PEI_GET_NUMBER_BLOCK_DEVICES) (
|
|
IN EFI_PEI_SERVICES **PeiServices,
|
|
IN PEI_RECOVERY_BLOCK_IO_INTERFACE * This,
|
|
OUT UINTN *NumberBlockDevices
|
|
);
|
|
|
|
typedef
|
|
EFI_STATUS
|
|
(EFIAPI *PEI_GET_DEVICE_MEDIA_INFORMATION) (
|
|
IN EFI_PEI_SERVICES **PeiServices,
|
|
IN PEI_RECOVERY_BLOCK_IO_INTERFACE * This,
|
|
IN UINTN DeviceIndex,
|
|
OUT PEI_BLOCK_IO_MEDIA * MediaInfo
|
|
);
|
|
|
|
typedef
|
|
EFI_STATUS
|
|
(EFIAPI *PEI_READ_BLOCKS) (
|
|
IN EFI_PEI_SERVICES **PeiServices,
|
|
IN PEI_RECOVERY_BLOCK_IO_INTERFACE * This,
|
|
IN UINTN DeviceIndex,
|
|
IN PEI_LBA StartLBA,
|
|
IN UINTN BufferSize,
|
|
OUT VOID *Buffer
|
|
);
|
|
|
|
typedef struct _PEI_RECOVERY_BLOCK_IO_INTERFACE {
|
|
PEI_GET_NUMBER_BLOCK_DEVICES GetNumberOfBlockDevices;
|
|
PEI_GET_DEVICE_MEDIA_INFORMATION GetBlockDeviceMediaInfo;
|
|
PEI_READ_BLOCKS ReadBlocks;
|
|
} PEI_RECOVERY_BLOCK_IO_INTERFACE;
|
|
|
|
extern EFI_GUID gPeiBlockIoPpiGuid;
|
|
|
|
#endif
|