+++ /dev/null
-/** @file\r
- Metronome Architectural Protocol as defined in DXE CIS\r
-\r
- This code abstracts the DXE core to provide delay services.\r
-\r
- Copyright (c) 2006, Intel Corporation \r
- All rights reserved. This program and the accompanying materials \r
- are licensed and made available under the terms and conditions of the BSD License \r
- which accompanies this distribution. The full text of the license may be found at \r
- http://opensource.org/licenses/bsd-license.php \r
-\r
- THE PROGRAM IS DISTRIBUTED UNDER THE BSD LICENSE ON AN "AS IS" BASIS, \r
- WITHOUT WARRANTIES OR REPRESENTATIONS OF ANY KIND, EITHER EXPRESS OR IMPLIED. \r
-\r
- Module Name: Metronome.h\r
-\r
- @par Revision Reference:\r
- Version 0.91B.\r
-\r
-**/\r
-\r
-#ifndef __ARCH_PROTOCOL_METRONOME_H__\r
-#define __ARCH_PROTOCOL_METRONOME_H__\r
-\r
-//\r
-// Global ID for the Metronome Architectural Protocol\r
-//\r
-#define EFI_METRONOME_ARCH_PROTOCOL_GUID \\r
- { 0x26baccb2, 0x6f42, 0x11d4, {0xbc, 0xe7, 0x0, 0x80, 0xc7, 0x3c, 0x88, 0x81 } }\r
-\r
-//\r
-// Declare forward reference for the Metronome Architectural Protocol\r
-//\r
-typedef struct _EFI_METRONOME_ARCH_PROTOCOL EFI_METRONOME_ARCH_PROTOCOL;\r
-\r
-/**\r
- The WaitForTick() function waits for the number of ticks specified by \r
- TickNumber from a known time source in the platform. If TickNumber of \r
- ticks are detected, then EFI_SUCCESS is returned. The actual time passed \r
- between entry of this function and the first tick is between 0 and \r
- TickPeriod 100 nS units. If you want to guarantee that at least TickPeriod \r
- time has elapsed, wait for two ticks. This function waits for a hardware \r
- event to determine when a tick occurs. It is possible for interrupt \r
- processing, or exception processing to interrupt the execution of the \r
- WaitForTick() function. Depending on the hardware source for the ticks, it \r
- is possible for a tick to be missed. This function cannot guarantee that \r
- ticks will not be missed. If a timeout occurs waiting for the specified \r
- number of ticks, then EFI_TIMEOUT is returned.\r
-\r
- @param This The EFI_METRONOME_ARCH_PROTOCOL instance.\r
- @param TickNumber Number of ticks to wait.\r
-\r
- @retval EFI_SUCCESS The wait for the number of ticks specified by TickNumber\r
- succeeded.\r
- @retval EFI_TIMEOUT A timeout occurred waiting for the specified number of ticks.\r
-\r
-**/\r
-typedef \r
-EFI_STATUS\r
-(EFIAPI *EFI_METRONOME_WAIT_FOR_TICK) (\r
- IN EFI_METRONOME_ARCH_PROTOCOL *This,\r
- IN UINT32 TickNumber\r
- );\r
-\r
-//\r
-//\r
-\r
-/**\r
- Interface stucture for the Metronome Architectural Protocol.\r
-\r
- @par Protocol Description:\r
- This protocol provides access to a known time source in the platform to the\r
- core. The core uses this known time source to produce core services that \r
- require calibrated delays. \r
-\r
- @param WaitForTick\r
- Waits for a specified number of ticks from a known time source \r
- in the platform. The actual time passed between entry of this \r
- function and the first tick is between 0 and TickPeriod 100 nS \r
- units. If you want to guarantee that at least TickPeriod time \r
- has elapsed, wait for two ticks.\r
-\r
- @param TickPeriod\r
- The period of platform's known time source in 100 nS units. \r
- This value on any platform must be at least 10 uS, and must not \r
- exceed 200 uS. The value in this field is a constant that must \r
- not be modified after the Metronome architectural protocol is \r
- installed. All consumers must treat this as a read-only field.\r
-\r
-**/\r
-struct _EFI_METRONOME_ARCH_PROTOCOL {\r
- EFI_METRONOME_WAIT_FOR_TICK WaitForTick;\r
- UINT32 TickPeriod;\r
-};\r
-\r
-extern EFI_GUID gEfiMetronomeArchProtocolGuid;\r
-\r
-#endif\r