Newer
Older
AMI-Aptio-BIOS-Reversed / CsmBlockIo / CsmBlockIo.h
@Ajax Dong Ajax Dong 2 days ago 18 KB Init
/** @file
  CsmBlockIo.h -- Header for CsmBlockIo

Copyright (c) HR650X BIOS Decompilation Project
**/

#ifndef __CSMBLOCKIO_H__
#define __CSMBLOCKIO_H__

#include "../uefi_headers/Uefi.h"

//
// Function Prototypes
//

EFI_STATUS
EFIAPI
CsmAssert(
  VOID
);

EFI_STATUS
EFIAPI
CsmDebugPrint(
  VOID
);

EFI_STATUS
EFIAPI
CsmCheckDebugLevel(
  VOID
);

EFI_STATUS
EFIAPI
CsmMatchGuid(
  VOID
);

EFI_STATUS
EFIAPI
CsmReverseQword(
  VOID
);

EFI_STATUS
EFIAPI
CsmZeroMem(
  VOID
);

EFI_STATUS
EFIAPI
CsmGetCurrentAllocation(
  VOID
);

EFI_STATUS
EFIAPI
CsmLegacyRegionAllocate(
  VOID
);

EFI_STATUS
EFIAPI
CsmBbsTableCopy(
  VOID
);

EFI_STATUS
EFIAPI
CsmBbsTableAllocate(
  VOID
);

EFI_STATUS
EFIAPI
Int13SaveState(
  VOID
);

EFI_STATUS
EFIAPI
Int13RestoreState(
  VOID
);

EFI_STATUS
EFIAPI
Int13GetStatus(
  VOID
);

EFI_STATUS
EFIAPI
Int13ErrorStub(
  VOID
);

EFI_STATUS
EFIAPI
Int13ReadWriteChs(
  VOID
);

EFI_STATUS
EFIAPI
Int13ExtendedRead(
  VOID
);

EFI_STATUS
EFIAPI
Int13ChsReadWrite(
  VOID
);

EFI_STATUS
EFIAPI
Int13ExtendedWrite(
  VOID
);

EFI_STATUS
EFIAPI
DiskInfoIdentify(
  VOID
);

EFI_STATUS
EFIAPI
CsmDiskInfoHandler(
  VOID
);

EFI_STATUS
EFIAPI
CsmBlockIoEntryPoint(
  VOID
);

EFI_STATUS
EFIAPI
CsmBlockIoInitDevice(
  VOID
);

EFI_STATUS
EFIAPI
CsmBlockIoCloseDevice(
  VOID
);

EFI_STATUS
EFIAPI
CsmFindInIplDt(
  VOID
);

EFI_STATUS
EFIAPI
CsmInitInt13Handler(
  VOID
);

EFI_STATUS
EFIAPI
Int13IdentifyDevice(
  VOID
);

EFI_STATUS
EFIAPI
Int13GetDriveParameters(
  VOID
);

EFI_STATUS
EFIAPI
Int13ChsGeometry(
  VOID
);

EFI_STATUS
EFIAPI
BbsDeviceTypeBuilder(
  VOID
);

EFI_STATUS
EFIAPI
Data(
  VOID
);

EFI_STATUS
EFIAPI
GUID definitions (.rdata section)(
  VOID
);

EFI_STATUS
EFIAPI
gEfiLegacyInterruptProtocolGuid   = EFI_LEGACY_INTERRUPT_PROTOCOL_GUID;    // 0x3270(
  VOID
);

EFI_STATUS
EFIAPI
EFI_GUID gCsmBlockIoInternalGuid           = EFI_CSM_BLOCK_IO_INTERNAL_GUID;        // 0x3260(
  VOID
);

EFI_STATUS
EFIAPI
EFI_GUID gEfiLegacyRegionProtocolGuid      = EFI_LEGACY_REGION_PROTOCOL_GUID;       // 0x3290(
  VOID
);

EFI_STATUS
EFIAPI
EFI_GUID gEfiLegacyBiosPlatformProtocolGuid = EFI_LEGACY_BIOS_PLATFORM_PROTOCOL_GUID; // 0x3300(
  VOID
);

EFI_STATUS
EFIAPI
EFI_GUID gEfiLegacyMbrProtocolGuid         = EFI_LEGACY_MBR_PROTOCOL_GUID;          // 0x32D0(
  VOID
);

EFI_STATUS
EFIAPI
GUIDs installed by this driver(
  VOID
);

EFI_STATUS
EFIAPI
gEfiDiskInfoProtocolGuid          = EFI_DISK_INFO_PROTOCOL_GUID;           // 0x32B0(
  VOID
);

EFI_STATUS
EFIAPI
EFI_GUID gEfiLegacyBiosProtocolGuid        = EFI_LEGACY_BIOS_PROTOCOL_GUID;        // 0x32C0(
  VOID
);

EFI_STATUS
EFIAPI
list pointer (cached, from DxeHobLib)(
  VOID
);

EFI_STATUS
EFIAPI
*mHobList = NULL;     // 0x33B8(
  VOID
);

EFI_STATUS
EFIAPI
output driver handle (from sub_275C)(
  VOID
);

EFI_STATUS
EFIAPI
*mDebugOutputHandle = NULL;  // 0x33B0(
  VOID
);

EFI_STATUS
EFIAPI
mCmosScratchRegister = 0;   // 0x33D8(
  VOID
);

EFI_STATUS
EFIAPI
handler state save/restore(
  VOID
);

EFI_STATUS
EFIAPI
mInt13SavedEflags = 0;      // 0x33DC(
  VOID
);

EFI_STATUS
EFIAPI
buffer for INT13 data transfer(
  VOID
);

EFI_STATUS
EFIAPI
*mInt13TransferBuffer = NULL;  // 0x33E0(
  VOID
);

EFI_STATUS
EFIAPI
for INT13 data transfer(
  VOID
);

EFI_STATUS
EFIAPI
mInt13TransferSegment = 0;     // 0x33E8(
  VOID
);

EFI_STATUS
EFIAPI
//(
  VOID
);

EFI_STATUS
EFIAPI
a CRC/checksum and function pointers for internal dispatch(
  VOID
);

EFI_STATUS
EFIAPI
struct {(
  VOID
);

EFI_STATUS
EFIAPI
the legacy BIOS extension protocol interface(
  VOID
);

EFI_STATUS
EFIAPI
BBS type value(
  VOID
);

EFI_STATUS
EFIAPI
mDefaultBbsType = 0x4FF7F;   // 0x3378(
  VOID
);

EFI_STATUS
EFIAPI
handle allocation counter(
  VOID
);

EFI_STATUS
EFIAPI
mIplDtHandleCounter = 0;      // 0x3380(
  VOID
);

EFI_STATUS
EFIAPI
count for the IPLDT allocation (sub_FA8)(
  VOID
);

EFI_STATUS
EFIAPI
mIplDtRefCount = 0;           // 0x3388(
  VOID
);

EFI_STATUS
EFIAPI
table pointer (off_3330 = &mDispatchTable)(
  VOID
);

EFI_STATUS
EFIAPI
pointer (off_3360 = &mLegacyBiosExtTable)(
  VOID
);

EFI_STATUS
EFIAPI
Helpers(
  VOID
);

EFI_STATUS
EFIAPI
-- Debug assert helper(
  VOID
);

EFI_STATUS
EFIAPI
gDebugOutput->DebugAssert(FileName, LineNumber, Description)(
  VOID
);

EFI_STATUS
EFIAPI
EFIAPI(
  VOID
);

EFI_STATUS
EFIAPI
-- Debug print helper (log with format)(
  VOID
);

EFI_STATUS
EFIAPI
-- Get debug output protocol handle(
  VOID
);

EFI_STATUS
EFIAPI
the EFI_DEBUG_OUTPUT_PROTOCOL (at 0x3240) from the HOB list(
  VOID
);

EFI_STATUS
EFIAPI
*(
  VOID
);

EFI_STATUS
EFIAPI
debug protocol from HOB(
  VOID
);

EFI_STATUS
EFIAPI
(EFI_ERROR (gBS->LocateProtocol ((
  VOID
);

EFI_STATUS
EFIAPI
NULL(
  VOID
);

EFI_STATUS
EFIAPI
-- Check CMOS scratch register for debug level(
  VOID
);

EFI_STATUS
EFIAPI
CMOS offset 0x4B, checks debug enable bit(
  VOID
);

EFI_STATUS
EFIAPI
CsmCheckDebugLevel ((
  VOID
);

EFI_STATUS
EFIAPI
-- Get HOB list pointer (DxeHobLib)(
  VOID
);

EFI_STATUS
EFIAPI
-- Compare GUID at HOB entry with target guid(
  VOID
);

EFI_STATUS
EFIAPI
CsmMatchGuid ((
  VOID
);

EFI_STATUS
EFIAPI
V2 = CsmReverseQword ((UINT64 *)TargetGuid);(
  VOID
);

EFI_STATUS
EFIAPI
V2 = CsmReverseQword ((UINT64 *)((UINT8 *)TargetGuid + 8));(
  VOID
);

EFI_STATUS
EFIAPI
-- Reverse 8 bytes for GUID comparison(
  VOID
);

EFI_STATUS
EFIAPI
CsmReverseQword ((
  VOID
);

EFI_STATUS
EFIAPI
-- ZeroMemory(
  VOID
);

EFI_STATUS
EFIAPI
CsmZeroMem ((
  VOID
);

EFI_STATUS
EFIAPI
-- Memory copy (overlap-safe)(
  VOID
);

EFI_STATUS
EFIAPI
overlapping buffers(
  VOID
);

EFI_STATUS
EFIAPI
= FALSE;(
  VOID
);

EFI_STATUS
EFIAPI
copy (8-byte aligned)(
  VOID
);

EFI_STATUS
EFIAPI
= (UINTN)S & 7;(
  VOID
);

EFI_STATUS
EFIAPI
-- Get current allocation position from legacy region(
  VOID
);

EFI_STATUS
EFIAPI
a header-terminated chain of blocks starting at the(
  VOID
);

EFI_STATUS
EFIAPI
region memory buffer. Each block has 4-byte header:(
  VOID
);

EFI_STATUS
EFIAPI
= type (0xFF = end, 0x00 = unused)(
  VOID
);

EFI_STATUS
EFIAPI
= 0x7F marker(
  VOID
);

EFI_STATUS
EFIAPI
the total payload size allocated so far (skip 4-byte header).(
  VOID
);

EFI_STATUS
EFIAPI
CsmGetCurrentAllocation ((
  VOID
);

EFI_STATUS
EFIAPI
for end-of-table or unused entry marker(
  VOID
);

EFI_STATUS
EFIAPI
(Ptr[0] == 0x7F && Ptr[1] == 0xFF) {(
  VOID
);

/// return total + 4 (skip header)
EFI_STATUS
EFIAPI
marker found(
  VOID
);

EFI_STATUS
EFIAPI
Total + 4;(
  VOID
);

EFI_STATUS
EFIAPI
-- Allocate boot services data pool(
  VOID
);

EFI_STATUS
EFIAPI
for gBS->AllocatePool (EfiBootServicesData, Size, &Buffer)(
  VOID
);

EFI_STATUS
EFIAPI
CsmLegacyRegionAllocate ((
  VOID
);

EFI_STATUS
EFIAPI
-- Allocate and copy a BBS type table to boot services data pool(
  VOID
);

EFI_STATUS
EFIAPI
CsmBbsTableCopy ((
  VOID
);

EFI_STATUS
EFIAPI
-- Legacy region allocation wrapper(
  VOID
);

EFI_STATUS
EFIAPI
pBbsType is provided, allocate and copy the BBS type table.(
  VOID
);

EFI_STATUS
EFIAPI
NULL, free the allocation.(
  VOID
);

EFI_STATUS
EFIAPI
CsmBbsTableAllocate ((
  VOID
);

EFI_STATUS
EFIAPI
Subsystem: State Save/Restore(
  VOID
);

EFI_STATUS
EFIAPI
-- Save current interrupt state for a device(
  VOID
);

EFI_STATUS
EFIAPI
global INT13 eflags into the per-device saved-flags array(
  VOID
);

EFI_STATUS
EFIAPI
replaces it with the device's current flags value.(
  VOID
);

EFI_STATUS
EFIAPI
saved-flags array is indexed by the device number stored at(
  VOID
);

EFI_STATUS
EFIAPI
Int13SaveState ((
  VOID
);

EFI_STATUS
EFIAPI
current global eflags into the per-device slot(
  VOID
);

EFI_STATUS
EFIAPI
= Private->Int13SavedFlags[FlagsIndex];(
  VOID
);

EFI_STATUS
EFIAPI
with device's current flags(
  VOID
);

EFI_STATUS
EFIAPI
-- Restore previous interrupt state for a device(
  VOID
);

EFI_STATUS
EFIAPI
the global INT13 eflags value from the per-device saved array.(
  VOID
);

EFI_STATUS
EFIAPI
Int13RestoreState ((
  VOID
);

EFI_STATUS
EFIAPI
saved eflags from the per-device slot(
  VOID
);

EFI_STATUS
EFIAPI
Handler Functions(
  VOID
);

EFI_STATUS
EFIAPI
-- INT13h disk I/O status check (function 0x01)(
  VOID
);

EFI_STATUS
EFIAPI
Int13GetStatus ((
  VOID
);

EFI_STATUS
EFIAPI
context+0x89(
  VOID
);

EFI_STATUS
EFIAPI
-- INT13h error handler (stub)(
  VOID
);

EFI_STATUS
EFIAPI
Int13ErrorStub ((
  VOID
);

EFI_STATUS
EFIAPI
-- placeholder for Int13Error function pointer(
  VOID
);

EFI_STATUS
EFIAPI
-- INT13h Read Sectors (CHS mode, function 0x02)(
  VOID
);

EFI_STATUS
EFIAPI
when device has CHS geometry (original IDE/ATA)(
  VOID
);

EFI_STATUS
EFIAPI
Int13ReadWriteChs ((
  VOID
);

EFI_STATUS
EFIAPI
INT13 CHS packet(
  VOID
);

EFI_STATUS
EFIAPI
read(
  VOID
);

/// re-detect geometry
EFI_STATUS
EFIAPI
changed(
  VOID
);

EFI_STATUS
EFIAPI
data from transfer buffer(
  VOID
);

EFI_STATUS
EFIAPI
(mCommand == 0x02)  // read(
  VOID
);

EFI_STATUS
EFIAPI
-- INT13h Extended Read (function 0x42)(
  VOID
);

EFI_STATUS
EFIAPI
LBA mode with extended INT13 support (EDD-1.1+)(
  VOID
);

EFI_STATUS
EFIAPI
Int13ExtendedRead ((
  VOID
);

EFI_STATUS
EFIAPI
extended INT13 packet(
  VOID
);

EFI_STATUS
EFIAPI
copy data into transfer buffer, then issue INT13(
  VOID
);

EFI_STATUS
EFIAPI
(Command == 0x03) {  // write(
  VOID
);

EFI_STATUS
EFIAPI
-- INT13h CHS read/write (traditional CHS, function 0x02/0x03)(
  VOID
);

EFI_STATUS
EFIAPI
Int13ChsReadWrite ((
  VOID
);

EFI_STATUS
EFIAPI
LBA to CHS(
  VOID
);

EFI_STATUS
EFIAPI
= Private->Sectors + 1;(
  VOID
);

EFI_STATUS
EFIAPI
loop (up to 3 attempts)(
  VOID
);

EFI_STATUS
EFIAPI
= 3;(
  VOID
);

EFI_STATUS
EFIAPI
-- INT13h Extended Write (function 0x43), Verify (0x44)(
  VOID
);

EFI_STATUS
EFIAPI
Int13ExtendedWrite ((
  VOID
);

EFI_STATUS
EFIAPI
data to transfer buffer first for write(
  VOID
);

EFI_STATUS
EFIAPI
((VOID *)mInt13TransferBuffer, (VOID *)CurrentBuf, TransferBytes);(
  VOID
);

EFI_STATUS
EFIAPI
Info Protocol: Inquiry and Identify(
  VOID
);

EFI_STATUS
EFIAPI
-- EFI_DISK_INFO.inquiry(
  VOID
);

EFI_STATUS
EFIAPI
EFAPI(
  VOID
);

EFI_STATUS
EFIAPI
-- EFI_DISK_INFO.Identify(
  VOID
);

EFI_STATUS
EFIAPI
BIOS Protocol / INT13 Dispatch(
  VOID
);

EFI_STATUS
EFIAPI
-- Legacy Disk Info handler (first entry point)(
  VOID
);

EFI_STATUS
EFIAPI
the EFI_DISK_INFO_PROTOCOL interface for identifying disk types(
  VOID
);

EFI_STATUS
EFIAPI
locating the appropriate legacy block I/O region.(
  VOID
);

EFI_STATUS
EFIAPI
CsmDiskInfoHandler ((
  VOID
);

EFI_STATUS
EFIAPI
the Legacy Interrupt protocol(
  VOID
);

EFI_STATUS
EFIAPI
= gBS->LocateProtocol ((
  VOID
);

EFI_STATUS
EFIAPI
the Block I/O protocol on this handle(
  VOID
);

EFI_STATUS
EFIAPI
= gBS->OpenProtocol ((
  VOID
);

EFI_STATUS
EFIAPI
if Legacy BIOS Platform protocol is available(
  VOID
);

EFI_STATUS
EFIAPI
for Legacy MBR(
  VOID
);

EFI_STATUS
EFIAPI
MBR and check for boot signature(
  VOID
);

EFI_STATUS
EFIAPI
= Private->LegacyRegion;(
  VOID
);

EFI_STATUS
EFIAPI
60,   // bytes(
  VOID
);

EFI_STATUS
EFIAPI
&DeviceType(
  VOID
);

EFI_STATUS
EFIAPI
device type(
  VOID
);

EFI_STATUS
EFIAPI
(DeviceType <= 0x0D) {(
  VOID
);

EFI_STATUS
EFIAPI
BBS device type from IPLDT table(
  VOID
);

EFI_STATUS
EFIAPI
transfer buffer base(
  VOID
);

EFI_STATUS
EFIAPI
transfer buffer flags(
  VOID
);

EFI_STATUS
EFIAPI
bits 8-10(
  VOID
);

EFI_STATUS
EFIAPI
INT13 handler entry(
  VOID
);

EFI_STATUS
EFIAPI
BBS device table(
  VOID
);

EFI_STATUS
EFIAPI
active BBS entries(
  VOID
);

EFI_STATUS
EFIAPI
(Index = 0; Index < 256; Index++) {(
  VOID
);

EFI_STATUS
EFIAPI
INT13 to discover drives(
  VOID
);

EFI_STATUS
EFIAPI
= Private->BbsTable->Execute ((
  VOID
);

EFI_STATUS
EFIAPI
post-INT13 BBS entries(
  VOID
);

EFI_STATUS
EFIAPI
BBS entry table in legacy region(
  VOID
);

EFI_STATUS
EFIAPI
(mIplDtHandleCounter == 0) {(
  VOID
);

EFI_STATUS
EFIAPI
protocols and return error(
  VOID
);

EFI_STATUS
EFIAPI
Point(
  VOID
);

EFI_STATUS
EFIAPI
global protocol pointers(
  VOID
);

EFI_STATUS
EFIAPI
= ImageHandle;(
  VOID
);

EFI_STATUS
EFIAPI
HOB list(
  VOID
);

EFI_STATUS
EFIAPI
();(
  VOID
);

EFI_STATUS
EFIAPI
three protocol interfaces on the image handle:(
  VOID
);

EFI_STATUS
EFIAPI
gBS->InstallMultipleProtocolInterfaces ((
  VOID
);

EFI_STATUS
EFIAPI
- dispatch table with sub_4C8, sub_6D4, sub_FA8(
  VOID
);

EFI_STATUS
EFIAPI
- legacy bios ext table(
  VOID
);

EFI_STATUS
EFIAPI
interface (protocol-only notification)(
  VOID
);

EFI_STATUS
EFIAPI
-- Main INT13 handler / CSM Block I/O initialization per device(
  VOID
);

EFI_STATUS
EFIAPI
for each disk device that needs CSM legacy support.(
  VOID
);

EFI_STATUS
EFIAPI
- Private context (CSM_BLOCK_IO_PRIVATE *)(
  VOID
);

EFI_STATUS
EFIAPI
- EFI_HANDLE for the block device(
  VOID
);

EFI_STATUS
EFIAPI
CsmBlockIoInitDevice ((
  VOID
);

EFI_STATUS
EFIAPI
state(
  VOID
);

EFI_STATUS
EFIAPI
(BbsBitmap, sizeof(BbsBitmap));(
  VOID
);

EFI_STATUS
EFIAPI
Legacy Interrupt protocol(
  VOID
);

EFI_STATUS
EFIAPI
Legacy 8259 protocol(
  VOID
);

EFI_STATUS
EFIAPI
Block I/O protocol on this handle(
  VOID
);

EFI_STATUS
EFIAPI
Legacy Bios Platform protocol (optional)(
  VOID
);

EFI_STATUS
EFIAPI
for Legacy MBR too(
  VOID
);

/// read device type via Legacy Region
EFI_STATUS
EFIAPI
MBR is available(
  VOID
);

EFI_STATUS
EFIAPI
transfer buffer base from legacy region (offset 4)(
  VOID
);

EFI_STATUS
EFIAPI
transfer buffer flags (mask 0x700)(
  VOID
);

EFI_STATUS
EFIAPI
BIOS INT13 handler entry(
  VOID
);

EFI_STATUS
EFIAPI
= Private->BbsTable->Init ((
  VOID
);

EFI_STATUS
EFIAPI
BBS table(
  VOID
);

EFI_STATUS
EFIAPI
= Private->BbsTable->GetTable ((
  VOID
);

EFI_STATUS
EFIAPI
current BBS entries(
  VOID
);

EFI_STATUS
EFIAPI
-- Close / Cleanup INT13 for a device(
  VOID
);

EFI_STATUS
EFIAPI
when a device handle is removed or when shutting down CSM(
  VOID
);

EFI_STATUS
EFIAPI
I/O legacy support.(
  VOID
);

EFI_STATUS
EFIAPI
CsmBlockIoCloseDevice ((
  VOID
);

EFI_STATUS
EFIAPI
reference count on IPLDT allocation(
  VOID
);

EFI_STATUS
EFIAPI
(--mIplDtRefCount == 0) {(
  VOID
);

EFI_STATUS
EFIAPI
each device handle(
  VOID
);

EFI_STATUS
EFIAPI
(Index = 0; Index < DeviceCount; Index++) {(
  VOID
);

EFI_STATUS
EFIAPI
Disk Info protocol on the child handle(
  VOID
);

EFI_STATUS
EFIAPI
Legacy BIOS Platform is available, transfer to it(
  VOID
);

EFI_STATUS
EFIAPI
(PlatformAvailable) {(
  VOID
);

EFI_STATUS
EFIAPI
the INT13 handler's memory(
  VOID
);

EFI_STATUS
EFIAPI
the protocol interface on the child handle(
  VOID
);

EFI_STATUS
EFIAPI
= gBS->InstallProtocolInterface ((
  VOID
);

EFI_STATUS
EFIAPI
legacy region flags(
  VOID
);

EFI_STATUS
EFIAPI
Platform is not available, close BlockIo(
  VOID
);

EFI_STATUS
EFIAPI
(!PlatformAvailable) {(
  VOID
);

EFI_STATUS
EFIAPI
cleanup(
  VOID
);

EFI_STATUS
EFIAPI
-- Find device in IPLDT (Legacy Device Table)(
  VOID
);

EFI_STATUS
EFIAPI
the IPLDT for a matching bus:device tuple and sets(
  VOID
);

EFI_STATUS
EFIAPI
device index.(
  VOID
);

EFI_STATUS
EFIAPI
CsmFindInIplDt ((
  VOID
);

EFI_STATUS
EFIAPI
number(
  VOID
);

EFI_STATUS
EFIAPI
}(
  VOID
);

EFI_STATUS
EFIAPI
-- INT13 handler initialization(
  VOID
);

EFI_STATUS
EFIAPI
to set up INT13 handler function table for a device.(
  VOID
);

EFI_STATUS
EFIAPI
CsmInitInt13Handler ((
  VOID
);

EFI_STATUS
EFIAPI
the media descriptor pointer and INT13 saved state array(
  VOID
);

EFI_STATUS
EFIAPI
signature based on system table revision(
  VOID
);

EFI_STATUS
EFIAPI
(gST->Hdr.Revision < 0x2001F) {(
  VOID
);

EFI_STATUS
EFIAPI
and set up drive parameters(
  VOID
);

EFI_STATUS
EFIAPI
(!Int13IdentifyDevice (Private, (UINT8 *)&Private->DeviceInfo)) {(
  VOID
);

/// use extended INT13
EFI_STATUS
EFIAPI
device(
  VOID
);

EFI_STATUS
EFIAPI
support 512-byte sectors(
  VOID
);

EFI_STATUS
EFIAPI
(Private->BlockSize != 512) {(
  VOID
);

EFI_STATUS
EFIAPI
up INT13 handler function table(
  VOID
);

/// use LBA handlers
EFI_STATUS
EFIAPI
INT13 device(
  VOID
);

EFI_STATUS
EFIAPI
-- Identify device parameters via INT13(
  VOID
);

EFI_STATUS
EFIAPI
INT13 function 0x13 to get drive parameters(
  VOID
);

EFI_STATUS
EFIAPI
Int13IdentifyDevice ((
  VOID
);

EFI_STATUS
EFIAPI
*(UINT16 *)&DeviceInfo[28] = (UINT16)((
  VOID
);

EFI_STATUS
EFIAPI
return TRUE;(
  VOID
);

EFI_STATUS
EFIAPI
*(UINT16 *)&DeviceInfo[28] = *(UINT16 *)&DeviceInfo[11]; // Cylinders(
  VOID
);

EFI_STATUS
EFIAPI
if (DeviceInfo[27]) {(
  VOID
);

EFI_STATUS
EFIAPI
-- Get extended drive parameters (INT13 function 0x48)(
  VOID
);

EFI_STATUS
EFIAPI
EDD-3.0 compatible devices, retrieves full geometry.(
  VOID
);

EFI_STATUS
EFIAPI
Int13GetDriveParameters ((
  VOID
);

EFI_STATUS
EFIAPI
packet size (41h)(
  VOID
);

EFI_STATUS
EFIAPI
DriveParams[1] = 8;(
  VOID
);

EFI_STATUS
EFIAPI
size low(
  VOID
);

EFI_STATUS
EFIAPI
DriveParams[6] = DriveParams[1] & 8;         // LBA(
  VOID
);

EFI_STATUS
EFIAPI
DriveParams[3] = DriveParams[1] & 1;          // extended INT13(
  VOID
);

EFI_STATUS
EFIAPI
CHS geometry from INT13 function(
  VOID
);

EFI_STATUS
EFIAPI
-- Get CHS geometry from INT13 (function 0x08 or ATA identify)(
  VOID
);

EFI_STATUS
EFIAPI
Int13ChsGeometry ((
  VOID
);

EFI_STATUS
EFIAPI
CMOS parameter table for geometry decode(
  VOID
);

EFI_STATUS
EFIAPI
up INT13 function 0x08 parameter block(
  VOID
);

EFI_STATUS
EFIAPI
= 'O';  // 79(
  VOID
);

EFI_STATUS
EFIAPI
*(UINT16 *)(mInt13TransferSegment2 + 32) = 74;(
  VOID
);

EFI_STATUS
EFIAPI
-- read geometry from transfer buffer(
  VOID
);

EFI_STATUS
EFIAPI
DriveParams[27] = DriveParams[44];        // Sectors(
  VOID
);

EFI_STATUS
EFIAPI
CHS from function 0x08 response(
  VOID
);

EFI_STATUS
EFIAPI
(FunctionCode != 10) {(
  VOID
);

EFI_STATUS
EFIAPI
total sectors(
  VOID
);

EFI_STATUS
EFIAPI
per sector(
  VOID
);

EFI_STATUS
EFIAPI
total sectors from CHS(
  VOID
);

EFI_STATUS
EFIAPI
-- Build BBS device type ID(
  VOID
);

EFI_STATUS
EFIAPI
device path media type string and generates BBS device type ID(
  VOID
);

EFI_STATUS
EFIAPI
the IPLDT / BBS table.(
  VOID
);

EFI_STATUS
EFIAPI
+2 from device path(
  VOID
);

EFI_STATUS
EFIAPI
type for unrecognized devices(
  VOID
);

EFI_STATUS
EFIAPI
device path node type(
  VOID
);

EFI_STATUS
EFIAPI
(*(UINT8 *)((UINTN)DevicePath + 2) != 0x30) {     // MESSAGING_DEVICE_PATH(
  VOID
);

EFI_STATUS
EFIAPI
too small(
  VOID
);

EFI_STATUS
EFIAPI
media type(
  VOID
);

EFI_STATUS
EFIAPI
media type strings(
  VOID
);

EFI_STATUS
EFIAPI
if (AsciiStrnCmp ((CHAR8 *)MediaType, MEDIA_ATAPI, 5) == 0) {(
  VOID
);

EFI_STATUS
EFIAPI
master(
  VOID
);

EFI_STATUS
EFIAPI
(same as ATAPI)(
  VOID
);

EFI_STATUS
EFIAPI
if (AsciiStrnCmp ((CHAR8 *)MediaType, MEDIA_SCSI, 4) != 0) {(
  VOID
);

EFI_STATUS
EFIAPI
if (AsciiStrnCmp ((CHAR8 *)MediaType, MEDIA_USB, 3) != 0) {(
  VOID
);

EFI_STATUS
EFIAPI
if (AsciiStrnCmp ((CHAR8 *)MediaType, MEDIA_1394, 4) != 0) {(
  VOID
);

EFI_STATUS
EFIAPI
if (AsciiStrnCmp ((CHAR8 *)MediaType, MEDIA_FIBRE, 5) != 0) {(
  VOID
);

EFI_STATUS
EFIAPI
*(UINT64 *)&TypeFields[4] = *(UINT64 *)((UINTN)DevicePath + 88);(
  VOID
);

EFI_STATUS
EFIAPI
TypeFields[0] = *(UINT8 *)((UINTN)DevicePath + 96);(
  VOID
);

EFI_STATUS
EFIAPI
*(UINT32 *)&TypeFields[0] = *(UINT32 *)((UINTN)DevicePath + 88);(
  VOID
);

EFI_STATUS
EFIAPI
GUID-like type(
  VOID
);

#endif /* __CSMBLOCKIO_H__ */