]> git.proxmox.com Git - mirror_edk2.git/blob - EmulatorPkg/TimerDxe/Timer.h
UefiCpuPkg: Move AsmRelocateApLoopStart from Mpfuncs.nasm to AmdSev.nasm
[mirror_edk2.git] / EmulatorPkg / TimerDxe / Timer.h
1 /*++ @file
2 Emu Emulation Architectural Protocol Driver as defined in UEFI/PI.
3 This Timer module uses an UNIX Thread to simulate the timer-tick driven
4 timer service.
5
6 Copyright (c) 2006, Intel Corporation. All rights reserved.<BR>
7 Portions copyright (c) 2010 - 2011, Apple Inc. All rights reserved.
8 SPDX-License-Identifier: BSD-2-Clause-Patent
9
10
11 **/
12
13 #ifndef _TIMER_H_
14 #define _TIMER_H_
15
16
17
18
19 //
20 // Legal timer value range in 100 ns units
21 //
22 #define TIMER_MINIMUM_VALUE 0
23 #define TIMER_MAXIMUM_VALUE (0x100000000ULL - 1)
24
25 //
26 // Default timer value in 100 ns units (50 ms)
27 //
28 #define DEFAULT_TIMER_TICK_DURATION 500000
29
30 //
31 // Function Prototypes
32 //
33 EFI_STATUS
34 EFIAPI
35 EmuTimerDriverInitialize (
36 IN EFI_HANDLE ImageHandle,
37 IN EFI_SYSTEM_TABLE *SystemTable
38 );
39
40 EFI_STATUS
41 EFIAPI
42 EmuTimerDriverRegisterHandler (
43 IN EFI_TIMER_ARCH_PROTOCOL *This,
44 IN EFI_TIMER_NOTIFY NotifyFunction
45 );
46
47 EFI_STATUS
48 EFIAPI
49 EmuTimerDriverSetTimerPeriod (
50 IN EFI_TIMER_ARCH_PROTOCOL *This,
51 IN UINT64 TimerPeriod
52 );
53
54 EFI_STATUS
55 EFIAPI
56 EmuTimerDriverGetTimerPeriod (
57 IN EFI_TIMER_ARCH_PROTOCOL *This,
58 OUT UINT64 *TimerPeriod
59 );
60
61 EFI_STATUS
62 EFIAPI
63 EmuTimerDriverGenerateSoftInterrupt (
64 IN EFI_TIMER_ARCH_PROTOCOL *This
65 );
66
67 #endif