/** @file UART Serial Port library functions. Copyright (c) 2023, Intel Corporation. All rights reserved.
SPDX-License-Identifier: BSD-2-Clause-Patent **/ #include extern BOOLEAN mBaseSerialPortLibHobAtRuntime; /** Set mSerialIoUartLibAtRuntime flag as TRUE after ExitBootServices. @param[in] Event The Event that is being processed. @param[in] Context The Event Context. **/ STATIC VOID EFIAPI BaseSerialPortLibHobExitBootServicesEvent ( IN EFI_EVENT Event, IN VOID *Context ) { mBaseSerialPortLibHobAtRuntime = TRUE; } /** The constructor function registers a callback for the ExitBootServices event. @param[in] ImageHandle The firmware allocated handle for the EFI image. @param[in] SystemTable A pointer to the EFI System Table. @retval EFI_SUCCESS The operation completed successfully. @retval other Either the serial port failed to initialize or the ExitBootServices event callback registration failed. **/ EFI_STATUS EFIAPI DxeBaseSerialPortLibHobConstructor ( IN EFI_HANDLE ImageHandle, IN EFI_SYSTEM_TABLE *SystemTable ) { EFI_EVENT SerialPortLibHobExitBootServicesEvent; return SystemTable->BootServices->CreateEvent ( EVT_SIGNAL_EXIT_BOOT_SERVICES, TPL_NOTIFY, BaseSerialPortLibHobExitBootServicesEvent, NULL, &SerialPortLibHobExitBootServicesEvent ); }