/** @file
CPUInfo.h -- Header for CPUInfo
Copyright (c) HR650X BIOS Decompilation Project
**/
#ifndef __CPUINFO_H__
#define __CPUINFO_H__
#include "../uefi_headers/Uefi.h"
//
// Function Prototypes
//
EFI_STATUS
EFIAPI
CpuInfoEntryPoint(
VOID
);
EFI_STATUS
EFIAPI
GetPeiServices(
VOID
);
EFI_STATUS
EFIAPI
VgaPrintStringAt(
VOID
);
EFI_STATUS
EFIAPI
AsmCpuid(
VOID
);
EFI_STATUS
EFIAPI
CpuId(
VOID
);
EFI_STATUS
EFIAPI
AsciiStrLen(
VOID
);
EFI_STATUS
EFIAPI
ReadIdtr(
VOID
);
EFI_STATUS
EFIAPI
CpuInfoReportAssertion(
VOID
);
EFI_STATUS
EFIAPI
CpuDeadLoop(
VOID
);
EFI_STATUS
EFIAPI
codes used in GetCpuPresenceStatus(
VOID
);
EFI_STATUS
EFIAPI
#define CPU_NOT_PRESENT 0(
VOID
);
EFI_STATUS
EFIAPI
constants(
VOID
);
EFI_STATUS
EFIAPI
display table entry: { x, y }(
VOID
);
EFI_STATUS
EFIAPI
with x == 0xFF / -1(
VOID
);
EFI_STATUS
EFIAPI
declarations(
VOID
);
EFI_STATUS
EFIAPI
EFIAPI(
VOID
);
EFI_STATUS
EFIAPI
function prototypes(
VOID
);
EFI_STATUS
EFIAPI
GetPeiServices ((
VOID
);
EFI_STATUS
EFIAPI
Entry Point(
VOID
);
EFI_STATUS
EFIAPI
initial POST progress: 0%(
VOID
);
EFI_STATUS
EFIAPI
(0, 9, "== Progress : 0% ==");(
VOID
);
EFI_STATUS
EFIAPI
the progress-position table and display(
VOID
);
EFI_STATUS
EFIAPI
each position until terminator (-1) is found.(
VOID
);
EFI_STATUS
EFIAPI
table is an array of PROGRESS_POSITION {X,Y}(
VOID
);
EFI_STATUS
EFIAPI
at byte_FFE83F24.(
VOID
);
EFI_STATUS
EFIAPI
= (PROGRESS_POSITION*)(UINTN)0xFFE83F24;(
VOID
);
EFI_STATUS
EFIAPI
entry (50,y) when y is in [11..21] — these are(
VOID
);
EFI_STATUS
EFIAPI
"already displayed" slots.(
VOID
);
EFI_STATUS
EFIAPI
(X != 50 || Y < 11 || Y > 21) {(
VOID
);
EFI_STATUS
EFIAPI
PPI or propagate descriptor to next PEIM(
VOID
);
EFI_STATUS
EFIAPI
at offset +36 (sizeof(EFI_PEI_SERVICES) + 36)(
VOID
);
EFI_STATUS
EFIAPI
unk_FFE83F14 as the parameter. This could be(
VOID
);
EFI_STATUS
EFIAPI
the PEIM case, this likely dispatches a notification(
VOID
);
EFI_STATUS
EFIAPI
installs a PPI.(
VOID
);
EFI_STATUS
EFIAPI
EFI_SUCCESS;(
VOID
);
EFI_STATUS
EFIAPI
Print Support(
VOID
);
EFI_STATUS
EFIAPI
VGA buffer offset: 2 bytes per cell(
VOID
);
EFI_STATUS
EFIAPI
memory starts at 0xB8000 (753664 in decimal)(
VOID
);
EFI_STATUS
EFIAPI
= VGA_TEXT_MEMORY + (X + Y * 80);(
VOID
);
EFI_STATUS
EFIAPI
cursor by setting cursor position to scanline 32(
VOID
);
EFI_STATUS
EFIAPI
(VGA_CRTC_ADDR_PORT, VGA_CURSOR_START);(
VOID
);
EFI_STATUS
EFIAPI
string characters with attribute 7(
VOID
);
EFI_STATUS
EFIAPI
(Index = 0; Index < Length; Index++) {(
VOID
);
EFI_STATUS
EFIAPI
attribute of the last character (foreground)(
VOID
);
EFI_STATUS
EFIAPI
Presence Detection(
VOID
);
EFI_STATUS
EFIAPI
current RTC address register, preserve NMI mask (bit 7)(
VOID
);
EFI_STATUS
EFIAPI
CMOS index 0x4A (CPU presence)(
VOID
);
EFI_STATUS
EFIAPI
= IoRead8 (RTC_ADDRESS_PORT);(
VOID
);
EFI_STATUS
EFIAPI
CPU presence value from CMOS data register(
VOID
);
EFI_STATUS
EFIAPI
= IoRead8 (RTC_DATA_PORT);(
VOID
);
EFI_STATUS
EFIAPI
the value:(
VOID
);
EFI_STATUS
EFIAPI
(CmosValue > 3) {(
VOID
);
EFI_STATUS
EFIAPI
GPIO/MMIO register at fixed address for CPU presence(
VOID
);
EFI_STATUS
EFIAPI
1 set = CPU present(
VOID
);
EFI_STATUS
EFIAPI
= (*(volatile UINT8*)0xFDAF0490 & 2) | 1;(
VOID
);
EFI_STATUS
EFIAPI
CPU(
VOID
);
EFI_STATUS
EFIAPI
means not valid/empty(
VOID
);
EFI_STATUS
EFIAPI
(CmosValue == 0xFF) {(
VOID
);
EFI_STATUS
EFIAPI
socket(
VOID
);
EFI_STATUS
EFIAPI
}(
VOID
);
EFI_STATUS
EFIAPI
(-2147483648)(
VOID
);
EFI_STATUS
EFIAPI
Services Access(
VOID
);
EFI_STATUS
EFIAPI
PEI Services pointer is stored at the DWORD immediately(
VOID
);
EFI_STATUS
EFIAPI
the IDT base address.(
VOID
);
EFI_STATUS
EFIAPI
= *(UINTN*)(*(UINTN*)&Idtr.Base - sizeof (UINTN));(
VOID
);
EFI_STATUS
EFIAPI
PEI Service at offset 32 (likely LocatePpi or similar)(
VOID
);
EFI_STATUS
EFIAPI
for the GUID at unk_FFE83EF4.(
VOID
);
EFI_STATUS
EFIAPI
((*PeiServices)->LocatePpi ((
VOID
);
EFI_STATUS
EFIAPI
Print (Conditional)(
VOID
);
EFI_STATUS
EFIAPI
PEI Services debug print at offset 0(
VOID
);
EFI_STATUS
EFIAPI
is typically DebugPrint or similar.(
VOID
);
EFI_STATUS
EFIAPI
(*(PeiServices + 0))(ErrorLevel, Format, (CHAR8*)Va);(
VOID
);
EFI_STATUS
EFIAPI
Wrappers(
VOID
);
EFI_STATUS
EFIAPI
if leaf 0x0B is supported (EBX non-zero means valid)(
VOID
);
EFI_STATUS
EFIAPI
(a1 != NULL) {(
VOID
);
EFI_STATUS
EFIAPI
/ Debug Assert Support(
VOID
);
EFI_STATUS
EFIAPI
+ 4 is ReportStatusCode or assertion handler(
VOID
);
EFI_STATUS
EFIAPI
Helpers(
VOID
);
EFI_STATUS
EFIAPI
Access(
VOID
);
EFI_STATUS
EFIAPI
Functions(
VOID
);
EFI_STATUS
EFIAPI
for backwards overlap: if src < dst and src+count-1 >= dst(
VOID
);
EFI_STATUS
EFIAPI
from end to start.(
VOID
);
EFI_STATUS
EFIAPI
((UINTN)Src8 < (UINTN)Dst8 && ((UINTN)Src8 + Count - 1) >= (UINTN)Dst8) {(
VOID
);
EFI_STATUS
EFIAPI
= &Src8[Count - 1];(
VOID
);
EFI_STATUS
EFIAPI
(; Count >= 4; Count -= 4) {(
VOID
);
#endif /* __CPUINFO_H__ */