summaryrefslogtreecommitdiff
path: root/DuetPkg/PcRtc/x64
diff options
context:
space:
mode:
authorklu2 <klu2@6f19259b-4bc3-4df7-8a09-765794883524>2008-04-17 05:48:13 +0000
committerklu2 <klu2@6f19259b-4bc3-4df7-8a09-765794883524>2008-04-17 05:48:13 +0000
commitc69dd9dfad3eb97d5e21f520f3ba35d102ec4cfa (patch)
treee6065a748931519b3cf11d9811c0beef9c80d58e /DuetPkg/PcRtc/x64
parentfcf03596d10de53e45292bd9eb4767a8ddc344ed (diff)
downloadedk2-c69dd9dfad3eb97d5e21f520f3ba35d102ec4cfa.zip
edk2-c69dd9dfad3eb97d5e21f520f3ba35d102ec4cfa.tar.gz
edk2-c69dd9dfad3eb97d5e21f520f3ba35d102ec4cfa.tar.bz2
Porting Duet module from EDKI to EDKII
git-svn-id: https://edk2.svn.sourceforge.net/svnroot/edk2/trunk/edk2@5076 6f19259b-4bc3-4df7-8a09-765794883524
Diffstat (limited to 'DuetPkg/PcRtc/x64')
-rw-r--r--DuetPkg/PcRtc/x64/RealTimeClock.c170
1 files changed, 170 insertions, 0 deletions
diff --git a/DuetPkg/PcRtc/x64/RealTimeClock.c b/DuetPkg/PcRtc/x64/RealTimeClock.c
new file mode 100644
index 0000000..4f4410e
--- /dev/null
+++ b/DuetPkg/PcRtc/x64/RealTimeClock.c
@@ -0,0 +1,170 @@
+/*++
+
+Copyright (c) 2005, Intel Corporation
+All rights reserved. This program and the accompanying materials
+are licensed and made available under the terms and conditions of the BSD License
+which accompanies this distribution. The full text of the license may be found at
+http://opensource.org/licenses/bsd-license.php
+
+THE PROGRAM IS DISTRIBUTED UNDER THE BSD LICENSE ON AN "AS IS" BASIS,
+WITHOUT WARRANTIES OR REPRESENTATIONS OF ANY KIND, EITHER EXPRESS OR IMPLIED.
+
+Module Name:
+ x64PcRtc.c
+
+Abstract:
+
+--*/
+
+#include "RealTimeClock.h"
+
+static PC_RTC_MODULE_GLOBALS mModuleGlobal;
+
+EFI_STATUS
+EFIAPI
+PcRtcEfiGetTime (
+ OUT EFI_TIME *Time,
+ OUT EFI_TIME_CAPABILITIES *Capabilities
+ )
+/*++
+
+Routine Description:
+
+ TODO: Add function description
+
+Arguments:
+
+ Time - TODO: add argument description
+ Capabilities - TODO: add argument description
+
+Returns:
+
+ TODO: add return values
+
+--*/
+{
+ return PcRtcGetTime (Time, Capabilities, &mModuleGlobal);
+}
+
+EFI_STATUS
+EFIAPI
+PcRtcEfiSetTime (
+ IN EFI_TIME *Time
+ )
+/*++
+
+Routine Description:
+
+ TODO: Add function description
+
+Arguments:
+
+ Time - TODO: add argument description
+
+Returns:
+
+ TODO: add return values
+
+--*/
+{
+ return PcRtcSetTime (Time, &mModuleGlobal);
+}
+
+EFI_STATUS
+EFIAPI
+PcRtcEfiGetWakeupTime (
+ OUT BOOLEAN *Enabled,
+ OUT BOOLEAN *Pending,
+ OUT EFI_TIME *Time
+ )
+/*++
+
+Routine Description:
+
+ TODO: Add function description
+
+Arguments:
+
+ Enabled - TODO: add argument description
+ Pending - TODO: add argument description
+ Time - TODO: add argument description
+
+Returns:
+
+ TODO: add return values
+
+--*/
+{
+ return PcRtcGetWakeupTime (Enabled, Pending, Time, &mModuleGlobal);
+}
+
+EFI_STATUS
+EFIAPI
+PcRtcEfiSetWakeupTime (
+ IN BOOLEAN Enabled,
+ OUT EFI_TIME *Time
+ )
+/*++
+
+Routine Description:
+
+ TODO: Add function description
+
+Arguments:
+
+ Enabled - TODO: add argument description
+ Time - TODO: add argument description
+
+Returns:
+
+ TODO: add return values
+
+--*/
+{
+ return PcRtcSetWakeupTime (Enabled, Time, &mModuleGlobal);
+}
+
+EFI_STATUS
+EFIAPI
+InitializeRealTimeClock (
+ IN EFI_HANDLE ImageHandle,
+ IN EFI_SYSTEM_TABLE *SystemTable
+ )
+/*++
+
+Routine Description:
+
+ Arguments:
+
+
+
+Returns:
+--*/
+// TODO: ImageHandle - add argument and description to function comment
+// TODO: SystemTable - add argument and description to function comment
+{
+ EFI_STATUS Status;
+ EFI_HANDLE NewHandle;
+
+ EfiInitializeLock (&mModuleGlobal.RtcLock, TPL_HIGH_LEVEL);
+
+ Status = PcRtcInit (&mModuleGlobal);
+ if (EFI_ERROR (Status)) {
+ return Status;
+ }
+
+ SystemTable->RuntimeServices->GetTime = PcRtcEfiGetTime;
+ SystemTable->RuntimeServices->SetTime = PcRtcEfiSetTime;
+ SystemTable->RuntimeServices->GetWakeupTime = PcRtcEfiGetWakeupTime;
+ SystemTable->RuntimeServices->SetWakeupTime = PcRtcEfiSetWakeupTime;
+
+ NewHandle = NULL;
+ Status = gBS->InstallMultipleProtocolInterfaces (
+ &NewHandle,
+ &gEfiRealTimeClockArchProtocolGuid,
+ NULL,
+ NULL
+ );
+
+ return Status;
+}