summaryrefslogtreecommitdiffstats
path: root/sys/ia64
diff options
context:
space:
mode:
authorpeter <peter@FreeBSD.org>2001-11-12 09:29:05 +0000
committerpeter <peter@FreeBSD.org>2001-11-12 09:29:05 +0000
commit8425582821f33d07a806b8ce4a831cfe0ca8d95b (patch)
treebcb0afe79619a1ab7622d5e7a786dc4fd83f295f /sys/ia64
parent63c937a8f7fdfb8319a7f2c93bf0d469457dc77b (diff)
downloadFreeBSD-src-8425582821f33d07a806b8ce4a831cfe0ca8d95b.zip
FreeBSD-src-8425582821f33d07a806b8ce4a831cfe0ca8d95b.tar.gz
Implement eficlock_set() to set hardware clock.
Diffstat (limited to 'sys/ia64')
-rw-r--r--sys/ia64/ia64/eficlock.c14
1 files changed, 13 insertions, 1 deletions
diff --git a/sys/ia64/ia64/eficlock.c b/sys/ia64/ia64/eficlock.c
index bf10549..a7fc591 100644
--- a/sys/ia64/ia64/eficlock.c
+++ b/sys/ia64/ia64/eficlock.c
@@ -65,7 +65,19 @@ eficlock_get(kobj_t dev, time_t base, struct clocktime *ct)
static void
eficlock_set(kobj_t dev, struct clocktime *ct)
{
- printf("eficlock: TODR not set\n");
+ EFI_TIME time;
+ EFI_STATUS status;
+
+ ia64_efi_runtime->GetTime(&time, 0);
+ time.Second = ct->sec;
+ time.Minute = ct->min;
+ time.Hour = ct->hour;
+ time.Day = ct->day;
+ time.Month = ct->mon;
+ time.Year = ct->year + 1900;
+ status = ia64_efi_runtime->SetTime(&time);
+ if (status != EFI_SUCCESS)
+ printf("eficlock_set: could not set TODR\n");
}
static int
OpenPOWER on IntegriCloud