\r
**/\r
\r
-\r
#ifndef _RTC_H_\r
#define _RTC_H_\r
\r
-\r
#include <Uefi.h>\r
\r
#include <Guid/Acpi.h>\r
#include <Library/ReportStatusCodeLib.h>\r
\r
typedef struct {\r
- EFI_LOCK RtcLock;\r
- INT16 SavedTimeZone;\r
- UINT8 Daylight;\r
- UINT8 CenturyRtcAddress;\r
+ EFI_LOCK RtcLock;\r
+ INT16 SavedTimeZone;\r
+ UINT8 Daylight;\r
+ UINT8 CenturyRtcAddress;\r
} PC_RTC_MODULE_GLOBALS;\r
\r
extern PC_RTC_MODULE_GLOBALS mModuleGlobal;\r
// Date and time initial values.\r
// They are used if the RTC values are invalid during driver initialization\r
//\r
-#define RTC_INIT_SECOND 0\r
-#define RTC_INIT_MINUTE 0\r
-#define RTC_INIT_HOUR 0\r
-#define RTC_INIT_DAY 1\r
-#define RTC_INIT_MONTH 1\r
+#define RTC_INIT_SECOND 0\r
+#define RTC_INIT_MINUTE 0\r
+#define RTC_INIT_HOUR 0\r
+#define RTC_INIT_DAY 1\r
+#define RTC_INIT_MONTH 1\r
\r
#pragma pack(1)\r
//\r
// Register A\r
//\r
typedef struct {\r
- UINT8 Rs : 4; // Rate Selection Bits\r
- UINT8 Dv : 3; // Divisor\r
- UINT8 Uip : 1; // Update in progress\r
+ UINT8 Rs : 4; // Rate Selection Bits\r
+ UINT8 Dv : 3; // Divisor\r
+ UINT8 Uip : 1; // Update in progress\r
} RTC_REGISTER_A_BITS;\r
\r
typedef union {\r
- RTC_REGISTER_A_BITS Bits;\r
- UINT8 Data;\r
+ RTC_REGISTER_A_BITS Bits;\r
+ UINT8 Data;\r
} RTC_REGISTER_A;\r
\r
//\r
// Register B\r
//\r
typedef struct {\r
- UINT8 Dse : 1; // 0 - Daylight saving disabled 1 - Daylight savings enabled\r
- UINT8 Mil : 1; // 0 - 12 hour mode 1 - 24 hour mode\r
- UINT8 Dm : 1; // 0 - BCD Format 1 - Binary Format\r
- UINT8 Sqwe : 1; // 0 - Disable SQWE output 1 - Enable SQWE output\r
- UINT8 Uie : 1; // 0 - Update INT disabled 1 - Update INT enabled\r
- UINT8 Aie : 1; // 0 - Alarm INT disabled 1 - Alarm INT Enabled\r
- UINT8 Pie : 1; // 0 - Periodic INT disabled 1 - Periodic INT Enabled\r
- UINT8 Set : 1; // 0 - Normal operation. 1 - Updates inhibited\r
+ UINT8 Dse : 1; // 0 - Daylight saving disabled 1 - Daylight savings enabled\r
+ UINT8 Mil : 1; // 0 - 12 hour mode 1 - 24 hour mode\r
+ UINT8 Dm : 1; // 0 - BCD Format 1 - Binary Format\r
+ UINT8 Sqwe : 1; // 0 - Disable SQWE output 1 - Enable SQWE output\r
+ UINT8 Uie : 1; // 0 - Update INT disabled 1 - Update INT enabled\r
+ UINT8 Aie : 1; // 0 - Alarm INT disabled 1 - Alarm INT Enabled\r
+ UINT8 Pie : 1; // 0 - Periodic INT disabled 1 - Periodic INT Enabled\r
+ UINT8 Set : 1; // 0 - Normal operation. 1 - Updates inhibited\r
} RTC_REGISTER_B_BITS;\r
\r
typedef union {\r
- RTC_REGISTER_B_BITS Bits;\r
- UINT8 Data;\r
+ RTC_REGISTER_B_BITS Bits;\r
+ UINT8 Data;\r
} RTC_REGISTER_B;\r
\r
//\r
// Register C\r
//\r
typedef struct {\r
- UINT8 Reserved : 4; // Read as zero. Can not be written.\r
- UINT8 Uf : 1; // Update End Interrupt Flag\r
- UINT8 Af : 1; // Alarm Interrupt Flag\r
- UINT8 Pf : 1; // Periodic Interrupt Flag\r
- UINT8 Irqf : 1; // Interrupt Request Flag = PF & PIE | AF & AIE | UF & UIE\r
+ UINT8 Reserved : 4; // Read as zero. Can not be written.\r
+ UINT8 Uf : 1; // Update End Interrupt Flag\r
+ UINT8 Af : 1; // Alarm Interrupt Flag\r
+ UINT8 Pf : 1; // Periodic Interrupt Flag\r
+ UINT8 Irqf : 1; // Interrupt Request Flag = PF & PIE | AF & AIE | UF & UIE\r
} RTC_REGISTER_C_BITS;\r
\r
typedef union {\r
- RTC_REGISTER_C_BITS Bits;\r
- UINT8 Data;\r
+ RTC_REGISTER_C_BITS Bits;\r
+ UINT8 Data;\r
} RTC_REGISTER_C;\r
\r
//\r
// Register D\r
//\r
typedef struct {\r
- UINT8 Reserved : 7; // Read as zero. Can not be written.\r
- UINT8 Vrt : 1; // Valid RAM and Time\r
+ UINT8 Reserved : 7; // Read as zero. Can not be written.\r
+ UINT8 Vrt : 1; // Valid RAM and Time\r
} RTC_REGISTER_D_BITS;\r
\r
typedef union {\r
- RTC_REGISTER_D_BITS Bits;\r
- UINT8 Data;\r
+ RTC_REGISTER_D_BITS Bits;\r
+ UINT8 Data;\r
} RTC_REGISTER_D;\r
\r
#pragma pack()\r
**/\r
EFI_STATUS\r
PcRtcGetTime (\r
- OUT EFI_TIME *Time,\r
- OUT EFI_TIME_CAPABILITIES *Capabilities OPTIONAL,\r
- IN PC_RTC_MODULE_GLOBALS *Global\r
+ OUT EFI_TIME *Time,\r
+ OUT EFI_TIME_CAPABILITIES *Capabilities OPTIONAL,\r
+ IN PC_RTC_MODULE_GLOBALS *Global\r
);\r
\r
/**\r
**/\r
EFI_STATUS\r
PcRtcGetWakeupTime (\r
- OUT BOOLEAN *Enabled,\r
- OUT BOOLEAN *Pending,\r
- OUT EFI_TIME *Time,\r
- IN PC_RTC_MODULE_GLOBALS *Global\r
+ OUT BOOLEAN *Enabled,\r
+ OUT BOOLEAN *Pending,\r
+ OUT EFI_TIME *Time,\r
+ IN PC_RTC_MODULE_GLOBALS *Global\r
);\r
\r
/**\r
EFI_STATUS\r
EFIAPI\r
InitializePcRtc (\r
- IN EFI_HANDLE ImageHandle,\r
- IN EFI_SYSTEM_TABLE *SystemTable\r
+ IN EFI_HANDLE ImageHandle,\r
+ IN EFI_SYSTEM_TABLE *SystemTable\r
);\r
\r
/**\r
**/\r
EFI_STATUS\r
RtcTimeFieldsValid (\r
- IN EFI_TIME *Time\r
+ IN EFI_TIME *Time\r
);\r
\r
/**\r
IN RTC_REGISTER_B RegisterB\r
);\r
\r
-\r
/**\r
Converts time read from RTC to EFI_TIME format defined by UEFI spec.\r
\r
**/\r
EFI_STATUS\r
RtcWaitToUpdate (\r
- UINTN Timeout\r
+ UINTN Timeout\r
);\r
\r
/**\r
**/\r
BOOLEAN\r
IsLeapYear (\r
- IN EFI_TIME *Time\r
+ IN EFI_TIME *Time\r
);\r
\r
/**\r
VOID\r
EFIAPI\r
PcRtcAcpiTableChangeCallback (\r
- IN EFI_EVENT Event,\r
- IN VOID *Context\r
+ IN EFI_EVENT Event,\r
+ IN VOID *Context\r
);\r
+\r
#endif\r