TianoCore EDK2 master
Loading...
Searching...
No Matches
DxeProtocolNotify.c File Reference
#include "DxeMain.h"

Go to the source code of this file.

Data Structures

struct  GUID_TO_STRING_PROTOCOL_ENTRY
 

Functions

EFI_STATUS CoreAllEfiServicesAvailable (VOID)
 
VOID EFIAPI GenericProtocolNotify (IN EFI_EVENT Event, IN VOID *Context)
 
VOID CoreNotifyOnProtocolEntryTable (EFI_CORE_PROTOCOL_NOTIFY_ENTRY *Entry)
 
VOID CoreNotifyOnProtocolInstallation (VOID)
 
VOID CoreDisplayMissingArchProtocols (VOID)
 

Variables

EFI_CORE_PROTOCOL_NOTIFY_ENTRY mArchProtocols []
 
EFI_CORE_PROTOCOL_NOTIFY_ENTRY mOptionalProtocols []
 
GLOBAL_REMOVE_IF_UNREFERENCED CONST GUID_TO_STRING_PROTOCOL_ENTRY mMissingProtocols []
 

Detailed Description

This file deals with Architecture Protocol (AP) registration in the Dxe Core. The mArchProtocols[] array represents a list of events that represent the Architectural Protocols.

Copyright (c) 2006 - 2018, Intel Corporation. All rights reserved.
SPDX-License-Identifier: BSD-2-Clause-Patent

Definition in file DxeProtocolNotify.c.

Function Documentation

◆ CoreAllEfiServicesAvailable()

EFI_STATUS CoreAllEfiServicesAvailable ( VOID  )

Return TRUE if all AP services are available.

Return values
EFI_SUCCESSAll AP services are available
EFI_NOT_FOUNDAt least one AP service is not available

Definition at line 80 of file DxeProtocolNotify.c.

◆ CoreDisplayMissingArchProtocols()

VOID CoreDisplayMissingArchProtocols ( VOID  )

Displays Architectural protocols that were not loaded and are required for DXE core to function. Only used in Debug Builds.

Definition at line 262 of file DxeProtocolNotify.c.

◆ CoreNotifyOnProtocolEntryTable()

VOID CoreNotifyOnProtocolEntryTable ( EFI_CORE_PROTOCOL_NOTIFY_ENTRY Entry)

Creates an event for each entry in a table that is fired everytime a Protocol of a specific type is installed.

Parameters
EntryPointer to EFI_CORE_PROTOCOL_NOTIFY_ENTRY.

Definition at line 211 of file DxeProtocolNotify.c.

◆ CoreNotifyOnProtocolInstallation()

VOID CoreNotifyOnProtocolInstallation ( VOID  )

Creates an events for the Architectural Protocols and the optional protocols that are fired everytime a Protocol of a specific type is installed.

Definition at line 248 of file DxeProtocolNotify.c.

◆ GenericProtocolNotify()

VOID EFIAPI GenericProtocolNotify ( IN EFI_EVENT  Event,
IN VOID *  Context 
)

Notification event handler registered by CoreNotifyOnArchProtocolInstallation (). This notify function is registered for every architectural protocol. This handler updates mArchProtocol[] array entry with protocol instance data and sets it's present flag to TRUE. If any constructor is required it is executed. The EFI System Table headers are updated.

Parameters
EventThe Event that is being processed, not used.
ContextEvent Context, not used.

Definition at line 108 of file DxeProtocolNotify.c.

Variable Documentation

◆ mArchProtocols

Initial value:
= {
{ &gEfiSecurityArchProtocolGuid, (VOID **)&gSecurity, NULL, NULL, FALSE },
{ &gEfiCpuArchProtocolGuid, (VOID **)&gCpu, NULL, NULL, FALSE },
{ &gEfiMetronomeArchProtocolGuid, (VOID **)&gMetronome, NULL, NULL, FALSE },
{ &gEfiTimerArchProtocolGuid, (VOID **)&gTimer, NULL, NULL, FALSE },
{ &gEfiBdsArchProtocolGuid, (VOID **)&gBds, NULL, NULL, FALSE },
{ &gEfiWatchdogTimerArchProtocolGuid, (VOID **)&gWatchdogTimer, NULL, NULL, FALSE },
{ &gEfiRuntimeArchProtocolGuid, (VOID **)&gRuntime, NULL, NULL, FALSE },
{ &gEfiVariableArchProtocolGuid, (VOID **)NULL, NULL, NULL, FALSE },
{ &gEfiVariableWriteArchProtocolGuid, (VOID **)NULL, NULL, NULL, FALSE },
{ &gEfiCapsuleArchProtocolGuid, (VOID **)NULL, NULL, NULL, FALSE },
{ &gEfiMonotonicCounterArchProtocolGuid, (VOID **)NULL, NULL, NULL, FALSE },
{ &gEfiResetArchProtocolGuid, (VOID **)NULL, NULL, NULL, FALSE },
{ &gEfiRealTimeClockArchProtocolGuid, (VOID **)NULL, NULL, NULL, FALSE },
{ NULL, (VOID **)NULL, NULL, NULL, FALSE }
}
EFI_BDS_ARCH_PROTOCOL * gBds
Definition: DxeMain.c:24
EFI_METRONOME_ARCH_PROTOCOL gMetronome
Definition: Metronome.c:51
#define NULL
Definition: Base.h:319
#define FALSE
Definition: Base.h:307
EFI_TIMER_ARCH_PROTOCOL gTimer
Definition: TimerDxe.c:264

Definition at line 21 of file DxeProtocolNotify.c.

◆ mMissingProtocols

Initial value:
= {
{ &gEfiSecurityArchProtocolGuid, "Security" },
{ &gEfiCpuArchProtocolGuid, "CPU" },
{ &gEfiMetronomeArchProtocolGuid, "Metronome" },
{ &gEfiTimerArchProtocolGuid, "Timer" },
{ &gEfiBdsArchProtocolGuid, "Bds" },
{ &gEfiWatchdogTimerArchProtocolGuid, "Watchdog Timer" },
{ &gEfiRuntimeArchProtocolGuid, "Runtime" },
{ &gEfiVariableArchProtocolGuid, "Variable" },
{ &gEfiVariableWriteArchProtocolGuid, "Variable Write" },
{ &gEfiCapsuleArchProtocolGuid, "Capsule" },
{ &gEfiMonotonicCounterArchProtocolGuid, "Monotonic Counter" },
{ &gEfiResetArchProtocolGuid, "Reset" },
{ &gEfiRealTimeClockArchProtocolGuid, "Real Time Clock" },
{ NULL, "" }
}

Definition at line 55 of file DxeProtocolNotify.c.

◆ mOptionalProtocols

EFI_CORE_PROTOCOL_NOTIFY_ENTRY mOptionalProtocols[]
Initial value:
= {
{ &gEfiSecurity2ArchProtocolGuid, (VOID **)&gSecurity2, NULL, NULL, FALSE },
{ &gEfiSmmBase2ProtocolGuid, (VOID **)&gSmmBase2, NULL, NULL, FALSE },
{ NULL, (VOID **)NULL, NULL, NULL, FALSE }
}

Definition at line 41 of file DxeProtocolNotify.c.