REF: https://bugzilla.tianocore.org/show_bug.cgi?id=3737 Apply uncrustify changes to .c/.h files in the EmbeddedPkg package Cc: Andrew Fish <afish@apple.com> Cc: Leif Lindholm <leif@nuviainc.com> Cc: Michael D Kinney <michael.d.kinney@intel.com> Signed-off-by: Michael Kubacki <michael.kubacki@microsoft.com> Reviewed-by: Andrew Fish <afish@apple.com>
		
			
				
	
	
		
			179 lines
		
	
	
		
			4.2 KiB
		
	
	
	
		
			C
		
	
	
	
	
	
			
		
		
	
	
			179 lines
		
	
	
		
			4.2 KiB
		
	
	
	
		
			C
		
	
	
	
	
	
/** @file
 | 
						|
*
 | 
						|
*  Copyright (c) 2016, Hisilicon Limited. All rights reserved.
 | 
						|
*  Copyright (c) 2016-2019, Linaro Limited. All rights reserved.
 | 
						|
*  Copyright (c) 2021, Ampere Computing LLC. All rights reserved.
 | 
						|
*
 | 
						|
*  SPDX-License-Identifier: BSD-2-Clause-Patent
 | 
						|
*
 | 
						|
**/
 | 
						|
 | 
						|
#ifndef _TIME_BASE_LIB_H_
 | 
						|
#define _TIME_BASE_LIB_H_
 | 
						|
 | 
						|
#include <Uefi/UefiBaseType.h>
 | 
						|
 | 
						|
//
 | 
						|
// Convenience macros to obtain a build date
 | 
						|
//
 | 
						|
// These macros should work for any compiler that follows ISO/IEC 9899,
 | 
						|
// in which case __DATE__ is defined as a "Mmm dd yyyy" 11 chars string,
 | 
						|
// but add an explicit filter for compilers that have been validated.
 | 
						|
//
 | 
						|
#if (defined (__GNUC__) || defined (_MSC_VER) || defined (__clang__))
 | 
						|
#define TIME_BUILD_YEAR   (__DATE__[7] == '?' ? 1900\
 | 
						|
          : (((__DATE__[7] - '0') * 1000 )          \
 | 
						|
          + (__DATE__[8] - '0') * 100               \
 | 
						|
          + (__DATE__[9] - '0') * 10                \
 | 
						|
          + __DATE__[10] - '0'))
 | 
						|
#define TIME_BUILD_MONTH  ( __DATE__ [2] == '?' ? 1 \
 | 
						|
          : __DATE__ [2] == 'n' ? (                 \
 | 
						|
            __DATE__ [1] == 'a' ? 1 : 6)            \
 | 
						|
          : __DATE__ [2] == 'b' ? 2                 \
 | 
						|
          : __DATE__ [2] == 'r' ? (                 \
 | 
						|
            __DATE__ [0] == 'M' ? 3 : 4)            \
 | 
						|
          : __DATE__ [2] == 'y' ? 5                 \
 | 
						|
          : __DATE__ [2] == 'l' ? 7                 \
 | 
						|
          : __DATE__ [2] == 'g' ? 8                 \
 | 
						|
          : __DATE__ [2] == 'p' ? 9                 \
 | 
						|
          : __DATE__ [2] == 't' ? 10                \
 | 
						|
          : __DATE__ [2] == 'v' ? 11                \
 | 
						|
          : 12)
 | 
						|
#define TIME_BUILD_DAY    ( __DATE__[4] == '?' ? 1  \
 | 
						|
          : ((__DATE__[4] == ' ' ? 0 :              \
 | 
						|
            ((__DATE__[4] - '0') * 10))             \
 | 
						|
          + __DATE__[5] - '0'))
 | 
						|
#endif
 | 
						|
 | 
						|
// Define EPOCH (1970-JANUARY-01) in the Julian Date representation
 | 
						|
#define EPOCH_JULIAN_DATE  2440588
 | 
						|
 | 
						|
// Seconds per unit
 | 
						|
#define SEC_PER_MIN   ((UINTN)    60)
 | 
						|
#define SEC_PER_HOUR  ((UINTN)  3600)
 | 
						|
#define SEC_PER_DAY   ((UINTN) 86400)
 | 
						|
 | 
						|
/**
 | 
						|
  Check if it is a leap year.
 | 
						|
 | 
						|
  @param    Time  The UEFI time to be checked.
 | 
						|
 | 
						|
  @retval   TRUE  It is a leap year.
 | 
						|
  @retval   FALSE It is NOT a leap year.
 | 
						|
 | 
						|
**/
 | 
						|
BOOLEAN
 | 
						|
EFIAPI
 | 
						|
IsLeapYear (
 | 
						|
  IN  EFI_TIME  *Time
 | 
						|
  );
 | 
						|
 | 
						|
/**
 | 
						|
  Check if the day in the UEFI time is valid.
 | 
						|
 | 
						|
  @param    Time    The UEFI time to be checked.
 | 
						|
 | 
						|
  @retval   TRUE    Valid.
 | 
						|
  @retval   FALSE   Invalid.
 | 
						|
 | 
						|
**/
 | 
						|
BOOLEAN
 | 
						|
EFIAPI
 | 
						|
IsDayValid (
 | 
						|
  IN  EFI_TIME  *Time
 | 
						|
  );
 | 
						|
 | 
						|
/**
 | 
						|
  Check if the time zone is valid.
 | 
						|
  Valid values are between -1440 and 1440 or 2047 (EFI_UNSPECIFIED_TIMEZONE).
 | 
						|
 | 
						|
  @param    TimeZone    The time zone to be checked.
 | 
						|
 | 
						|
  @retval   TRUE    Valid.
 | 
						|
  @retval   FALSE   Invalid.
 | 
						|
 | 
						|
**/
 | 
						|
BOOLEAN
 | 
						|
EFIAPI
 | 
						|
IsValidTimeZone (
 | 
						|
  IN  INT16  TimeZone
 | 
						|
  );
 | 
						|
 | 
						|
/**
 | 
						|
  Check if the daylight is valid.
 | 
						|
  Valid values are:
 | 
						|
    0 : Time is not affected.
 | 
						|
    1 : Time is affected, and has not been adjusted for daylight savings.
 | 
						|
    3 : Time is affected, and has been adjusted for daylight savings.
 | 
						|
  All other values are invalid.
 | 
						|
 | 
						|
  @param    Daylight    The daylight to be checked.
 | 
						|
 | 
						|
  @retval   TRUE    Valid.
 | 
						|
  @retval   FALSE   Invalid.
 | 
						|
 | 
						|
**/
 | 
						|
BOOLEAN
 | 
						|
EFIAPI
 | 
						|
IsValidDaylight (
 | 
						|
  IN  INT8  Daylight
 | 
						|
  );
 | 
						|
 | 
						|
/**
 | 
						|
  Check if the UEFI time is valid.
 | 
						|
 | 
						|
  @param    Time    The UEFI time to be checked.
 | 
						|
 | 
						|
  @retval   TRUE    Valid.
 | 
						|
  @retval   FALSE   Invalid.
 | 
						|
 | 
						|
**/
 | 
						|
BOOLEAN
 | 
						|
EFIAPI
 | 
						|
IsTimeValid (
 | 
						|
  IN  EFI_TIME  *Time
 | 
						|
  );
 | 
						|
 | 
						|
/**
 | 
						|
  Converts Epoch seconds (elapsed since 1970 JANUARY 01, 00:00:00 UTC) to EFI_TIME.
 | 
						|
 | 
						|
  @param  EpochSeconds   Epoch seconds.
 | 
						|
  @param  Time           The time converted to UEFI format.
 | 
						|
 | 
						|
**/
 | 
						|
VOID
 | 
						|
EFIAPI
 | 
						|
EpochToEfiTime (
 | 
						|
  IN  UINTN     EpochSeconds,
 | 
						|
  OUT EFI_TIME  *Time
 | 
						|
  );
 | 
						|
 | 
						|
/**
 | 
						|
  Converts EFI_TIME to Epoch seconds (elapsed since 1970 JANUARY 01, 00:00:00 UTC).
 | 
						|
 | 
						|
  @param    Time  The UEFI time to be converted.
 | 
						|
 | 
						|
  @return   Number of seconds.
 | 
						|
 | 
						|
**/
 | 
						|
UINTN
 | 
						|
EFIAPI
 | 
						|
EfiTimeToEpoch (
 | 
						|
  IN  EFI_TIME  *Time
 | 
						|
  );
 | 
						|
 | 
						|
/**
 | 
						|
  Get the day of the week from the UEFI time.
 | 
						|
 | 
						|
  @param    Time  The UEFI time to be calculated.
 | 
						|
 | 
						|
  @return   The day of the week: Sunday=0, Monday=1, ... Saturday=6
 | 
						|
 | 
						|
**/
 | 
						|
UINTN
 | 
						|
EfiTimeToWday (
 | 
						|
  IN  EFI_TIME  *Time
 | 
						|
  );
 | 
						|
 | 
						|
#endif
 |