--- /dev/null
+/*++ @file\r
+ Emu Emulation Architectural Protocol Driver as defined in UEFI/PI.\r
+ This Timer module uses an UNIX Thread to simulate the timer-tick driven\r
+ timer service.\r
+\r
+Copyright (c) 2006, Intel Corporation. All rights reserved.<BR>\r
+Portions copyright (c) 2010 - 2011, Apple Inc. All rights reserved.\r
+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
+\r
+**/\r
+\r
+#ifndef _TIMER_H_\r
+#define _TIMER_H_\r
+\r
+\r
+\r
+\r
+//\r
+// Legal timer value range in 100 ns units\r
+//\r
+#define TIMER_MINIMUM_VALUE 0\r
+#define TIMER_MAXIMUM_VALUE (0x100000000ULL - 1)\r
+\r
+//\r
+// Default timer value in 100 ns units (50 ms)\r
+//\r
+#define DEFAULT_TIMER_TICK_DURATION 500000\r
+\r
+//\r
+// Function Prototypes\r
+//\r
+EFI_STATUS\r
+EFIAPI\r
+EmuTimerDriverInitialize (\r
+ IN EFI_HANDLE ImageHandle,\r
+ IN EFI_SYSTEM_TABLE *SystemTable\r
+ );\r
+\r
+EFI_STATUS\r
+EFIAPI\r
+EmuTimerDriverRegisterHandler (\r
+ IN EFI_TIMER_ARCH_PROTOCOL *This,\r
+ IN EFI_TIMER_NOTIFY NotifyFunction\r
+ );\r
+\r
+EFI_STATUS\r
+EFIAPI\r
+EmuTimerDriverSetTimerPeriod (\r
+ IN EFI_TIMER_ARCH_PROTOCOL *This,\r
+ IN UINT64 TimerPeriod\r
+ );\r
+\r
+EFI_STATUS\r
+EFIAPI\r
+EmuTimerDriverGetTimerPeriod (\r
+ IN EFI_TIMER_ARCH_PROTOCOL *This,\r
+ OUT UINT64 *TimerPeriod\r
+ );\r
+\r
+EFI_STATUS\r
+EFIAPI\r
+EmuTimerDriverGenerateSoftInterrupt (\r
+ IN EFI_TIMER_ARCH_PROTOCOL *This\r
+ );\r
+\r
+#endif\r