Status code processor
status_code_processor ¶
Status Code Processor.
Copyright © Microsoft Corporation SPDX-License-Identifier: BSD-2-Clause-Patent
A tool for parsing and decoding UEFI/EDK2 status codes from debug logs. Supports both standard PI specification codes and platform-specific custom codes, with automatic header discovery, macro resolution, and GUID-to-module name lookup.
discover_status_code_headers ¶
discover_status_code_headers(
search_path: Optional[str],
) -> list[str]
Automatically discover platform-specific status code header files.
parse_single_header_file ¶
parse_single_header_file(
header_file_path: str,
existing_definitions: Optional[dict[str, int]] = None,
) -> tuple[dict[int, tuple[str, str]], dict[str, int], str]
Parse a single status code header file.
parse_platform_status_codes ¶
parse_platform_status_codes(
header_paths: Optional[list[str]],
) -> tuple[dict[int, tuple[str, str]], dict[str, int]]
Parse platform-specific status code definitions from header files.
Returns a tuple of (status_codes_dict, definitions_dict): - status_codes_dict: Maps complete status code values to (name, source_file) - definitions_dict: Maps all parsed macro names to their values (for component lookup)
parse_status_code_type ¶
parse_status_code_type(
code_type: int,
) -> dict[str, tuple[int, str] | int]
Parse the status code type field (CodeType in error messages).
parse_status_code_value ¶
parse_status_code_value(
value: int,
platform_codes: Optional[
dict[int, tuple[str, str]]
] = None,
platform_definitions: Optional[dict[str, int]] = None,
) -> dict[str, tuple[int, str] | str | dict[str, int]]
Parse the status code value field.
Parameters:
| Name | Type | Description | Default |
|---|---|---|---|
value
|
int
|
The status code value to parse |
required |
platform_codes
|
Optional[dict[int, tuple[str, str]]]
|
Dict mapping complete status codes to (name, source_file) |
None
|
platform_definitions
|
Optional[dict[str, int]]
|
Dict mapping all macro names to their values (for component lookup) |
None
|
find_guid_in_files ¶
find_guid_in_files(
guid: str, search_path: Optional[str]
) -> Optional[str]
Search for GUID in .inf, .dec, and .fdf files to find module name.
process_progress_code ¶
process_progress_code(
code_str: str,
search_path: Optional[str] = None,
explicit_headers: Optional[list[str]] = None,
auto_discover: bool = False,
) -> None
Process a progress code string.
process_error_code ¶
process_error_code(
error_str: str,
search_path: Optional[str] = None,
explicit_headers: Optional[list[str]] = None,
auto_discover: bool = False,
) -> None
Process an error code string.