diff options
| author | kx <kx@radix.pro> | 2024-06-04 06:43:08 +0300 |
|---|---|---|
| committer | kx <kx@radix.pro> | 2024-06-04 06:43:08 +0300 |
| commit | 7e2ccccace24636f29ddc210b94606abd4c7e42b (patch) | |
| tree | 545d43ea12671048956cafeb12303e84d601e571 /MdeModulePkg/Universal/TimestampDxe/TimestampDxe.c | |
| parent | 27b044605cd5f6b33a3d231576003850b3fe305b (diff) | |
| download | edk2-trunk.tar.xz | |
Renormalized end-of-lines from master@27b044605cd5f6b33a3d231576003850b3fe305btrunk
Diffstat (limited to 'MdeModulePkg/Universal/TimestampDxe/TimestampDxe.c')
| -rw-r--r-- | MdeModulePkg/Universal/TimestampDxe/TimestampDxe.c | 324 |
1 files changed, 162 insertions, 162 deletions
diff --git a/MdeModulePkg/Universal/TimestampDxe/TimestampDxe.c b/MdeModulePkg/Universal/TimestampDxe/TimestampDxe.c index c6ac039219..39133607ac 100644 --- a/MdeModulePkg/Universal/TimestampDxe/TimestampDxe.c +++ b/MdeModulePkg/Universal/TimestampDxe/TimestampDxe.c @@ -1,162 +1,162 @@ -/** @file
- Implementation of Timestamp Protocol using UEFI APIs.
-
-Copyright (c) 2013 - 2018, Intel Corporation. All rights reserved.<BR>
-SPDX-License-Identifier: BSD-2-Clause-Patent
-
-**/
-
-#include <Uefi.h>
-#include <Library/DebugLib.h>
-#include <Library/UefiDriverEntryPoint.h>
-#include <Library/UefiBootServicesTableLib.h>
-#include <Library/TimerLib.h>
-#include <Library/BaseMemoryLib.h>
-#include <Protocol/Timestamp.h>
-
-//
-// The StartValue in TimerLib
-//
-UINT64 mTimerLibStartValue = 0;
-
-//
-// The EndValue in TimerLib
-//
-UINT64 mTimerLibEndValue = 0;
-
-//
-// The properties of timestamp
-//
-EFI_TIMESTAMP_PROPERTIES mTimestampProperties = {
- 0,
- 0
-};
-
-/**
- Retrieves the current value of a 64-bit free running timestamp counter.
-
- The counter shall count up in proportion to the amount of time that has passed. The counter value
- will always roll over to zero. The properties of the counter can be retrieved from GetProperties().
- The caller should be prepared for the function to return the same value twice across successive calls.
- The counter value will not go backwards other than when wrapping, as defined by EndValue in GetProperties().
- The frequency of the returned timestamp counter value must remain constant. Power management operations that
- affect clocking must not change the returned counter frequency. The quantization of counter value updates may
- vary as long as the value reflecting time passed remains consistent.
-
- @retval The current value of the free running timestamp counter.
-
-**/
-UINT64
-EFIAPI
-TimestampDriverGetTimestamp (
- VOID
- )
-{
- //
- // The timestamp of Timestamp Protocol
- //
- UINT64 TimestampValue;
-
- TimestampValue = 0;
-
- //
- // Get the timestamp
- //
- if (mTimerLibStartValue > mTimerLibEndValue) {
- TimestampValue = mTimerLibStartValue - GetPerformanceCounter ();
- } else {
- TimestampValue = GetPerformanceCounter () - mTimerLibStartValue;
- }
-
- return TimestampValue;
-}
-
-/**
- Obtains timestamp counter properties including frequency and value limits.
-
- @param[out] Properties The properties of the timestamp counter.
-
- @retval EFI_SUCCESS The properties were successfully retrieved.
- @retval EFI_DEVICE_ERROR An error occurred trying to retrieve the properties of the timestamp
- counter subsystem. Properties is not pedated.
- @retval EFI_INVALID_PARAMETER Properties is NULL.
-
-**/
-EFI_STATUS
-EFIAPI
-TimestampDriverGetProperties (
- OUT EFI_TIMESTAMP_PROPERTIES *Properties
- )
-{
- if (Properties == NULL) {
- return EFI_INVALID_PARAMETER;
- }
-
- //
- // Get timestamp properties
- //
- CopyMem ((VOID *)Properties, (VOID *)&mTimestampProperties, sizeof (mTimestampProperties));
-
- return EFI_SUCCESS;
-}
-
-//
-// The Timestamp Protocol instance produced by this driver
-//
-EFI_TIMESTAMP_PROTOCOL mTimestamp = {
- TimestampDriverGetTimestamp,
- TimestampDriverGetProperties
-};
-
-/**
- Entry point of the Timestamp Protocol driver.
-
- @param ImageHandle The image handle of this driver.
- @param SystemTable The pointer of EFI_SYSTEM_TABLE.
-
- @retval EFI_SUCCESS Watchdog Timer Architectural Protocol successfully installed.
-
-**/
-EFI_STATUS
-EFIAPI
-TimestampDriverInitialize (
- IN EFI_HANDLE ImageHandle,
- IN EFI_SYSTEM_TABLE *SystemTable
- )
-{
- EFI_STATUS Status;
-
- EFI_HANDLE TimestampHandle;
-
- TimestampHandle = NULL;
-
- //
- // Get the start value, end value and frequency in Timerlib
- //
- mTimestampProperties.Frequency = GetPerformanceCounterProperties (&mTimerLibStartValue, &mTimerLibEndValue);
-
- //
- // Set the EndValue
- //
- if (mTimerLibEndValue > mTimerLibStartValue) {
- mTimestampProperties.EndValue = mTimerLibEndValue - mTimerLibStartValue;
- } else {
- mTimestampProperties.EndValue = mTimerLibStartValue - mTimerLibEndValue;
- }
-
- DEBUG ((DEBUG_INFO, "TimerFrequency:0x%lx, TimerLibStartTime:0x%lx, TimerLibEndtime:0x%lx\n", mTimestampProperties.Frequency, mTimerLibStartValue, mTimerLibEndValue));
-
- //
- // Install the Timestamp Protocol onto a new handle
- //
- Status = gBS->InstallMultipleProtocolInterfaces (
- &TimestampHandle,
- &gEfiTimestampProtocolGuid,
- &mTimestamp,
- NULL
- );
-
- ASSERT_EFI_ERROR (Status);
-
- return EFI_SUCCESS;
-}
+/** @file + Implementation of Timestamp Protocol using UEFI APIs. + +Copyright (c) 2013 - 2018, Intel Corporation. All rights reserved.<BR> +SPDX-License-Identifier: BSD-2-Clause-Patent + +**/ + +#include <Uefi.h> +#include <Library/DebugLib.h> +#include <Library/UefiDriverEntryPoint.h> +#include <Library/UefiBootServicesTableLib.h> +#include <Library/TimerLib.h> +#include <Library/BaseMemoryLib.h> +#include <Protocol/Timestamp.h> + +// +// The StartValue in TimerLib +// +UINT64 mTimerLibStartValue = 0; + +// +// The EndValue in TimerLib +// +UINT64 mTimerLibEndValue = 0; + +// +// The properties of timestamp +// +EFI_TIMESTAMP_PROPERTIES mTimestampProperties = { + 0, + 0 +}; + +/** + Retrieves the current value of a 64-bit free running timestamp counter. + + The counter shall count up in proportion to the amount of time that has passed. The counter value + will always roll over to zero. The properties of the counter can be retrieved from GetProperties(). + The caller should be prepared for the function to return the same value twice across successive calls. + The counter value will not go backwards other than when wrapping, as defined by EndValue in GetProperties(). + The frequency of the returned timestamp counter value must remain constant. Power management operations that + affect clocking must not change the returned counter frequency. The quantization of counter value updates may + vary as long as the value reflecting time passed remains consistent. + + @retval The current value of the free running timestamp counter. + +**/ +UINT64 +EFIAPI +TimestampDriverGetTimestamp ( + VOID + ) +{ + // + // The timestamp of Timestamp Protocol + // + UINT64 TimestampValue; + + TimestampValue = 0; + + // + // Get the timestamp + // + if (mTimerLibStartValue > mTimerLibEndValue) { + TimestampValue = mTimerLibStartValue - GetPerformanceCounter (); + } else { + TimestampValue = GetPerformanceCounter () - mTimerLibStartValue; + } + + return TimestampValue; +} + +/** + Obtains timestamp counter properties including frequency and value limits. + + @param[out] Properties The properties of the timestamp counter. + + @retval EFI_SUCCESS The properties were successfully retrieved. + @retval EFI_DEVICE_ERROR An error occurred trying to retrieve the properties of the timestamp + counter subsystem. Properties is not pedated. + @retval EFI_INVALID_PARAMETER Properties is NULL. + +**/ +EFI_STATUS +EFIAPI +TimestampDriverGetProperties ( + OUT EFI_TIMESTAMP_PROPERTIES *Properties + ) +{ + if (Properties == NULL) { + return EFI_INVALID_PARAMETER; + } + + // + // Get timestamp properties + // + CopyMem ((VOID *)Properties, (VOID *)&mTimestampProperties, sizeof (mTimestampProperties)); + + return EFI_SUCCESS; +} + +// +// The Timestamp Protocol instance produced by this driver +// +EFI_TIMESTAMP_PROTOCOL mTimestamp = { + TimestampDriverGetTimestamp, + TimestampDriverGetProperties +}; + +/** + Entry point of the Timestamp Protocol driver. + + @param ImageHandle The image handle of this driver. + @param SystemTable The pointer of EFI_SYSTEM_TABLE. + + @retval EFI_SUCCESS Watchdog Timer Architectural Protocol successfully installed. + +**/ +EFI_STATUS +EFIAPI +TimestampDriverInitialize ( + IN EFI_HANDLE ImageHandle, + IN EFI_SYSTEM_TABLE *SystemTable + ) +{ + EFI_STATUS Status; + + EFI_HANDLE TimestampHandle; + + TimestampHandle = NULL; + + // + // Get the start value, end value and frequency in Timerlib + // + mTimestampProperties.Frequency = GetPerformanceCounterProperties (&mTimerLibStartValue, &mTimerLibEndValue); + + // + // Set the EndValue + // + if (mTimerLibEndValue > mTimerLibStartValue) { + mTimestampProperties.EndValue = mTimerLibEndValue - mTimerLibStartValue; + } else { + mTimestampProperties.EndValue = mTimerLibStartValue - mTimerLibEndValue; + } + + DEBUG ((DEBUG_INFO, "TimerFrequency:0x%lx, TimerLibStartTime:0x%lx, TimerLibEndtime:0x%lx\n", mTimestampProperties.Frequency, mTimerLibStartValue, mTimerLibEndValue)); + + // + // Install the Timestamp Protocol onto a new handle + // + Status = gBS->InstallMultipleProtocolInterfaces ( + &TimestampHandle, + &gEfiTimestampProtocolGuid, + &mTimestamp, + NULL + ); + + ASSERT_EFI_ERROR (Status); + + return EFI_SUCCESS; +} |
