| Address | Name | Description |
|---|---|---|
| UefiBootServicesTableLibConstructor | ||
| ReportStatusCodeLibDestructor | ||
| BootServicesCleanup | ||
| RuntimeProtocolCleanup | ||
| ModuleEntryPoint | ||
| SetVirtualAddressMapHandler | ||
| SelMapStatusCodeToEventData | ||
| SelWriteEventToRecord | ||
| SelClearEventRecord | ||
| SelStatusCodeEntryInit | ||
| DebugPrintWithLevel | ||
| DebugAssert | ||
| nullsub_1 | ||
| RuntimeProtocolNotifyCleanup | ||
| SmbiosProtocolInit | ||
| SmbiosProtocolCleanup | ||
| ReportStatusCodeNotifyShutdown | ||
| SelAddEventRecord | ||
| SelCheckRedundancyStatus | ||
| SelManageEventLog | ||
| HobGuidCompare | ||
| ReadUnaligned64 | ||
| Global | Variables | |
| EFI_HANDLE | gImageHandle = NULL; | |
| RuntimeServices_0 | EFI_RUNTIME_SERVICES *gRuntimeServices2 = NULL; // RuntimeServices_1 | |
| qword_4418 | // SEL configuration state | |
| byte_4370 | UINT8 gEnableRedundancy = 0; // byte_4410 | |
| byte_4421 | UINT8 gSelOperationMode = 0; // n2 (0x4420) | |
| qword_43C0 | VOID *gHobList = NULL; // qword_43C8 | |
| qword_43D8 | UINT8 gSmbiosInitialized = 0; // byte_43D0 | |
| qword_4408 | EFI_EVENT gBootServicesCleanupEvent = NULL; // qword_43B0 | |
| qword_43F0 | EFI_EVENT gSmbiosCleanupEvent = NULL; // qword_43E8 | |
| qword_43F8 | EFI_EVENT gRuntimeProtocolCleanupEvent = NULL; // qword_43A8 | |
| BootServices_0 | at qword_43B8 | |
| SEL | Event Record Mapping Table | |
| 61 | entries x 12 bytes mapping UEFI status code classes to IPMI | |
| sensor | number, sensor type, event direction, and event data. | |
| SEL_EVENT_MAP_ENTRY | gSelEventMapTable[] = { | |
| Function | Prototypes | |
| EFI_STATUS | EFIAPI | |
| Module | Entry Point | |
| UefiBootServicesTableLibConstructor | (formerly sub_10F8) | |
| Initializes | UEFI boot services table library state. Registers | |
| exit | boot services and set virtual address map events. Locates | |
| runtime | protocol and debug print protocol instances. | |
| Cache | global pointers | |
| Register | BootServices cleanup event | |
| Register | runtime protocol cleanup event | |
| Register | SetVirtualAddressMap notify for runtime library | |
| Register | runtime protocol notify | |
| Register | SMBIOS cleanup | |
| Register | ReportStatusCode shutdown | |
| ReportStatusCodeLibDestructor | (formerly sub_1424) | |
| Closes | all registered events and frees protocol resources. | |
| Called | on error unwind or module unload. | |
| SetVirtualAddressMapHandler | (formerly sub_15CC) | |
| Converts | gRuntimeServicesCopy and gIpmiTransport for virtual | |
| addressing | after SetVirtualAddressMap. | |
| SelMapStatusCodeToEventData | (formerly sub_15FC) | |
| Searches | the SEL event mapping table for an entry matching the | |
| given | status code value and instance. If found, builds a 16-byte | |
| IPMI | SEL event record data buffer. | |
| Check | redundancy status | |
| Clear | the record first | |
| Add | with redundancy | |
| Build | record data structure | |
| Record | ID = 0 | |
| Record | Type = 2 (SEL) | |
| Timestamp | = 0 | |
| Generator | ID | |
| Event | Message Format Version | |
| Event | Type + Event Direction | |
| SelWriteEventToRecord | (formerly sub_16D4) | |
| Writes | an IPMI SEL event record using the transport protocol. | |
| Handles | reserve and append operations. | |
| Skip | if redundancy not needed | |
| Map | status code to SEL event data | |
| IPMI | transport write command | |
| NetFn | 0x0A | |
| Command | 0x44 | |
| SelClearEventRecord | (formerly sub_175C) | |
| Clears | an IPMI SEL event record. Validates sensor type. | |
| Validate | type | |
| Call | IPMI transport to clear SEL | |
| SelStatusCodeEntryInit | (formerly sub_17E0) | |
| Main | initialization for the SEL Status Code driver. Reads platform | |
| configuration | from the "ServerSetup" UEFI variable, locates the IPMI | |
| transport | protocol, registers SetVirtualAddressMap notification, and | |
| installs | the SEL event clearing/smm notification protocol. | |
| Get | IPMI transport protocol | |
| Read | ServerSetup variable | |
| Handle | SEL clear operation | |
| Check | redundancy | |
| Configure | SEL event handling | |
| Register | SMM communication protocol | |
| Register | SetVirtualAddressMap event | |
| Locate | SMM communication/SMBIOS dispatch protocol | |
| Register | clear handler | |
| DebugPrintProtocolInit | (formerly sub_1A48) | |
| Allocates | memory and locates the debug print protocol. Used for | |
| ASSERT | and debug output. | |
| DebugPrintWithLevel | (formerly sub_1AD0) | |
| Checks | current debug verbosity level (via CMOS) and prints message | |
| if | level matches. Used by ASSERT_EFI_ERROR macro output. | |
| Read | debug level from CMOS (offset 0x4B) | |
| DebugAssert | (formerly sub_1B50) | |
| Standard | EDK2 ASSERT handler. Prints file/line/expression and | |
| enters | dead loop. | |
| BootServicesCleanup | (formerly sub_1B90) | |
| ExitBootServices | callback. Nullifies the BootServices_0 pointer | |
| to | prevent use after boot services exit. | |
| RuntimeProtocolCleanup | (formerly sub_1B9C) | |
| SetVirtualAddressMap | callback. Converts the debug print protocol | |
| pointer | for runtime virtual addressing. | |
| HobGetGuidEntry | (formerly sub_1BC4) | |
| Locates | the GUIDed HOB entry in the system HOB list. Used to find | |
| the | SMBIOS table or other platform configuration tables. | |
| Get | HOB list from SystemTable | |
| nullsub_1 | (formerly nullsub_1) | |
| action | but need a registered callback. | |
| RuntimeProtocolNotifyCleanup | (formerly sub_1CA0) | |
| SetVirtualAddressMap | notification to convert the gRuntimeServices2 | |
| pointer | to virtual addressing. | |
| SmbiosProtocolInit | (formerly sub_1CB4) | |
| Locates | the SMBIOS protocol instance. Used for SMBIOS table access | |
| during | SEL event logging. | |
| SmbiosProtocolCleanup | (formerly sub_1D14) | |
| SetVirtualAddressMap | callback to convert the SMBIOS protocol | |
| ReportStatusCodeNotifyShutdown | (formerly sub_1D3C) | |
| ExitBootServices | notification. Initializes SMBIOS protocol for | |
| runtime | and marks initialization complete. | |
| SelAddEventRecord | (formerly sub_1D54) | |
| Adds | a SEL event record via the IPMI transport. Retries up to | |
| 512 | times to handle the reserve-then-add race condition with | |
| the | BMC. | |
| Send | reserve SEL command | |
| IPMI | SEL reserve | |
| IPMI | SEL add | |
| Data | length | |
| Set | reserve flag | |
| Reservation | lost/gained - need to retry | |
| SelCheckRedundancyStatus | (formerly sub_1E30) | |
| Checks | the IPMI SEL status via the transport protocol to determine | |
| if | the SEL is operational, has available space, and redundancy is | |
| NetFn | 0x0A, Cmd 0x40 (Get SEL Info) | |
| IPMI | NetFn Storage | |
| Get | SEL Info | |
| Byte | 7: SEL State (bit 3 = Redundancy, bit 7 = Operational) | |
| SelManageEventLog | (formerly sub_1E98) | |
| Manages | the IPMI SEL event log. Supports two operations: | |
| Mode | 1: Clear SEL entries matching the status code | |
| Mode | 2: Add SEL entries for status codes | |
| For | mode 2, performs a reserve + add sequence using the IPMI | |
| transport | protocol. | |
| Get | SEL info to check state | |
| SEL | has entries - clear or process | |
| Reserve | SEL | |
| Clear | SEL entries | |
| Deleting | single record not supported | |
| Add | entry | |
| Reserve | + Add | |
| Check | response byte 8 for status | |
| HobGuidCompare | (formerly sub_2048) | |
| Compares | two GUIDs by reading their QWORD pairs via unaligned | |
| ReadUnaligned64 | (formerly sub_20B8) | |
| Reads | a 64-bit value from potentially unaligned memory. |
Generated by HR650X BIOS Decompilation Project