TianoCore EDK2 master
Loading...
Searching...
No Matches
Metronome.c File Reference

Go to the source code of this file.

Functions

EFI_STATUS EFIAPI WaitForTick (IN EFI_METRONOME_ARCH_PROTOCOL *This, IN UINT32 TickNumber)
 
EFI_STATUS EFIAPI MetronomeInitialize (IN EFI_HANDLE ImageHandle, IN EFI_SYSTEM_TABLE *SystemTable)
 

Variables

EFI_METRONOME_ARCH_PROTOCOL gMetronome
 
EFI_HANDLE gMetronomeHandle = NULL
 

Detailed Description

Copyright (c) 2008 - 2009, Apple Inc. All rights reserved.
Copyright (c) 2013, ARM Ltd. All rights reserved.

SPDX-License-Identifier: BSD-2-Clause-Patent

Definition in file Metronome.c.

Function Documentation

◆ MetronomeInitialize()

EFI_STATUS EFIAPI MetronomeInitialize ( IN EFI_HANDLE  ImageHandle,
IN EFI_SYSTEM_TABLE SystemTable 
)

Initialize the state information for the CPU Architectural Protocol

Parameters
ImageHandleof the loaded driver
SystemTablePointer to the System Table
Return values
EFI_SUCCESSProtocol registered
EFI_OUT_OF_RESOURCESCannot allocate protocol data structure
EFI_DEVICE_ERRORHardware problems

Definition at line 109 of file Metronome.c.

◆ WaitForTick()

EFI_STATUS EFIAPI WaitForTick ( IN EFI_METRONOME_ARCH_PROTOCOL This,
IN UINT32  TickNumber 
)

The WaitForTick() function waits for the number of ticks specified by TickNumber from a known time source in the platform. If TickNumber of ticks are detected, then EFI_SUCCESS is returned. The actual time passed between entry of this function and the first tick is between 0 and TickPeriod 100 nS units. If you want to guarantee that at least TickPeriod time has elapsed, wait for two ticks. This function waits for a hardware event to determine when a tick occurs. It is possible for interrupt processing, or exception processing to interrupt the execution of the WaitForTick() function. Depending on the hardware source for the ticks, it is possible for a tick to be missed. This function cannot guarantee that ticks will not be missed. If a timeout occurs waiting for the specified number of ticks, then EFI_TIMEOUT is returned.

Parameters
ThisThe EFI_METRONOME_ARCH_PROTOCOL instance.
TickNumberNumber of ticks to wait.
Return values
EFI_SUCCESSThe wait for the number of ticks specified by TickNumber succeeded.
EFI_TIMEOUTA timeout occurred waiting for the specified number of ticks.

Definition at line 80 of file Metronome.c.

Variable Documentation

◆ gMetronome

Initial value:
= {
FixedPcdGet32 (PcdMetronomeTickPeriod)
}
EFI_STATUS EFIAPI WaitForTick(IN EFI_METRONOME_ARCH_PROTOCOL *This, IN UINT32 TickNumber)
Definition: Metronome.c:80
#define FixedPcdGet32(TokenName)
Definition: PcdLib.h:92

Interface structure for the Metronome Architectural Protocol.

Protocol Description:
This protocol provides access to a known time source in the platform to the core. The core uses this known time source to produce core services that require calibrated delays.
Parameters
WaitForTickWaits for a specified number of ticks from a known time source in the platform. The actual time passed between entry of this function and the first tick is between 0 and TickPeriod 100 nS units. If you want to guarantee that at least TickPeriod time has elapsed, wait for two ticks.
TickPeriodThe period of platform's known time source in 100 nS units. This value on any platform must not exceed 200 uS. The value in this field is a constant that must not be modified after the Metronome architectural protocol is installed. All consumers must treat this as a read-only field.

Definition at line 51 of file Metronome.c.

◆ gMetronomeHandle

EFI_HANDLE gMetronomeHandle = NULL

Definition at line 94 of file Metronome.c.