Skip to content

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.

main

main() -> None

Main entry point for the status code processor.