IN EFI_TIME *Time\r
);\r
\r
+/**\r
+ Check if the time zone is valid.\r
+ Valid values are between -1440 and 1440 or 2047 (EFI_UNSPECIFIED_TIMEZONE).\r
+\r
+ @param TimeZone The time zone to be checked.\r
+\r
+ @retval TRUE Valid.\r
+ @retval FALSE Invalid.\r
+\r
+**/\r
+BOOLEAN\r
+EFIAPI\r
+IsValidTimeZone (\r
+ IN INT16 TimeZone\r
+ );\r
+\r
+/**\r
+ Check if the daylight is valid.\r
+ Valid values are:\r
+ 0 : Time is not affected.\r
+ 1 : Time is affected, and has not been adjusted for daylight savings.\r
+ 3 : Time is affected, and has been adjusted for daylight savings.\r
+ All other values are invalid.\r
+\r
+ @param Daylight The daylight to be checked.\r
+\r
+ @retval TRUE Valid.\r
+ @retval FALSE Invalid.\r
+\r
+**/\r
+BOOLEAN\r
+EFIAPI\r
+IsValidDaylight (\r
+ IN INT8 Daylight\r
+ );\r
+\r
/**\r
Check if the UEFI time is valid.\r
\r
return TRUE;\r
}\r
\r
+/**\r
+ Check if the time zone is valid.\r
+ Valid values are between -1440 and 1440 or 2047 (EFI_UNSPECIFIED_TIMEZONE).\r
+\r
+ @param TimeZone The time zone to be checked.\r
+\r
+ @retval TRUE Valid.\r
+ @retval FALSE Invalid.\r
+\r
+**/\r
+BOOLEAN\r
+EFIAPI\r
+IsValidTimeZone (\r
+ IN INT16 TimeZone\r
+ )\r
+{\r
+ return TimeZone == EFI_UNSPECIFIED_TIMEZONE ||\r
+ (TimeZone >= -1440 && TimeZone <= 1440);\r
+}\r
+\r
+/**\r
+ Check if the daylight is valid.\r
+ Valid values are:\r
+ 0 : Time is not affected.\r
+ 1 : Time is affected, and has not been adjusted for daylight savings.\r
+ 3 : Time is affected, and has been adjusted for daylight savings.\r
+ All other values are invalid.\r
+\r
+ @param Daylight The daylight to be checked.\r
+\r
+ @retval TRUE Valid.\r
+ @retval FALSE Invalid.\r
+\r
+**/\r
+BOOLEAN\r
+EFIAPI\r
+IsValidDaylight (\r
+ IN INT8 Daylight\r
+ )\r
+{\r
+ return Daylight == 0 ||\r
+ Daylight == EFI_TIME_ADJUST_DAYLIGHT ||\r
+ Daylight == (EFI_TIME_ADJUST_DAYLIGHT | EFI_TIME_IN_DAYLIGHT);\r
+}\r
+\r
/**\r
Check if the UEFI time is valid.\r
\r
(Time->Minute > 59 ) ||\r
(Time->Second > 59 ) ||\r
(Time->Nanosecond > 999999999) ||\r
- (!((Time->TimeZone == EFI_UNSPECIFIED_TIMEZONE) || ((Time->TimeZone >= -1440) && (Time->TimeZone <= 1440)))) ||\r
- (Time->Daylight & (~(EFI_TIME_ADJUST_DAYLIGHT | EFI_TIME_IN_DAYLIGHT)))) {\r
+ (!IsValidTimeZone(Time->TimeZone)) ||\r
+ (!IsValidDaylight(Time->Daylight))) {\r
return FALSE;\r
}\r
\r