Changeset View
Changeset View
Standalone View
Standalone View
stand/efi/libefi/time_event.c
Show All 34 Lines | |||||
static EFI_EVENT time_event; | static EFI_EVENT time_event; | ||||
static uint64_t curtime; | static uint64_t curtime; | ||||
static void | static void | ||||
time_update(EFI_EVENT event, void *context) | time_update(EFI_EVENT event, void *context) | ||||
{ | { | ||||
curtime += 10; | curtime++; | ||||
} | } | ||||
void | void | ||||
efi_time_init(void) | efi_time_init(void) | ||||
{ | { | ||||
/* Create a timer event */ | /* Create a timer event */ | ||||
BS->CreateEvent(EVT_TIMER | EVT_NOTIFY_SIGNAL, TPL_CALLBACK, | BS->CreateEvent(EVT_TIMER | EVT_NOTIFY_SIGNAL, TPL_CALLBACK, | ||||
time_update, 0, &time_event); | time_update, 0, &time_event); | ||||
/* Use a 10ms timer */ | /* Use a 1s timer */ | ||||
BS->SetTimer(time_event, TimerPeriodic, 100000); | BS->SetTimer(time_event, TimerPeriodic, 10000000); | ||||
} | } | ||||
void | void | ||||
efi_time_fini(void) | efi_time_fini(void) | ||||
{ | { | ||||
/* Cancel the timer */ | /* Cancel the timer */ | ||||
BS->SetTimer(time_event, TimerCancel, 0); | BS->SetTimer(time_event, TimerCancel, 0); | ||||
BS->CloseEvent(time_event); | BS->CloseEvent(time_event); | ||||
} | } | ||||
time_t | time_t | ||||
time(time_t *tloc) | time(time_t *tloc) | ||||
{ | { | ||||
time_t t; | time_t t; | ||||
t = curtime / 1000; | t = curtime; | ||||
if (tloc != NULL) | if (tloc != NULL) | ||||
*tloc = t; | *tloc = t; | ||||
return (t); | return (t); | ||||
} | } | ||||
time_t | time_t | ||||
getsecs(void) | getsecs(void) | ||||
{ | { | ||||
return time(0); | return time(0); | ||||
} | } |