| /* |
| * Copyright (c) 2026 The Fuchsia Authors |
| * |
| * SPDX-License-Identifier: BSD-3-Clause |
| */ |
| |
| #include <common.h> |
| #include <efi_loader.h> |
| #include <gbl_efi_debug_protocol.h> |
| |
| static efi_status_t EFIAPI fatal_error(struct GblEfiDebugProtocol *self, |
| const void *frame_ptr, |
| GblEfiDebugErrorTag tag) |
| { |
| EFI_ENTRY("%p, %p, %llu", self, frame_ptr, tag); |
| printf("GBL FATAL ERROR: tag %llu, frame_ptr %p\n", tag, frame_ptr); |
| return EFI_EXIT(EFI_SUCCESS); |
| } |
| |
| static const efi_guid_t guid = EFI_GUID(0x98ca3da1, 0xc1ac, 0x4402, 0x9c, 0x16, |
| 0x75, 0x58, 0xd3, 0xed, 0x57, 0x05); |
| |
| static GblEfiDebugProtocol protocol = { |
| .revision = GBL_EFI_DEBUG_PROTOCOL_REVISION, |
| .fatal_error = fatal_error, |
| }; |
| |
| efi_status_t efi_gbl_debug_register(void) |
| { |
| efi_status_t ret = efi_add_protocol(efi_root, &guid, (void *)&protocol); |
| if (ret != EFI_SUCCESS) |
| printf("Cannot install GBL_EFI_DEBUG_PROTOCOL\n"); |
| return ret; |
| } |