On 2019-09-18 01:13:54, Liming Gao wrote: > From: mjohn4 <michael.john...@intel.com>
It looks like the author is not set properly. If you run "git log -1", then it'll probably show mjohn4 rather than Michael Johnson. Michael should run: $ git config --global user.name "Michael Johnson" After that when git commit it will get the correct author name in the patch. Michael, Liming: You can adjust it locally with: git commit --amend --author="Michael Johnson <michael.john...@intel.com>" > > Add GetTimeInNanoSecond, already declared in the TimerLib API, > to EmulatorPkg implementations of TimerLib. > > Cc: Jordan Justen <jordan.l.jus...@intel.com> > Cc: Andrew Fish <af...@apple.com> > Cc: Ray Ni <ray...@intel.com> > Signed-off-by: Johnson, Michael <michael.john...@intel.com> To be a valid email address, I think this should either be: Signed-off-by: "Johnson, Michael" <michael.john...@intel.com> or Signed-off-by: Michael Johnson <michael.john...@intel.com> The second form is more common. If user.name was set as above then "git commit -s" would add it to the patch automatically, and correctly. Aside from all that, it seems like the code matches other implementations in edk2, so: Reviewed-by: Jordan Justen <jordan.l.jus...@intel.com> > --- > .../Library/DxeCoreTimerLib/DxeCoreTimerLib.c | 45 ++++++++++++++++++++- > EmulatorPkg/Library/DxeTimerLib/DxeTimerLib.c | 45 ++++++++++++++++++++- > EmulatorPkg/Library/PeiTimerLib/PeiTimerLib.c | 47 > +++++++++++++++++++++- > 3 files changed, 134 insertions(+), 3 deletions(-) > > diff --git a/EmulatorPkg/Library/DxeCoreTimerLib/DxeCoreTimerLib.c > b/EmulatorPkg/Library/DxeCoreTimerLib/DxeCoreTimerLib.c > index c331cbba9c..ab0de143c4 100644 > --- a/EmulatorPkg/Library/DxeCoreTimerLib/DxeCoreTimerLib.c > +++ b/EmulatorPkg/Library/DxeCoreTimerLib/DxeCoreTimerLib.c > @@ -1,12 +1,13 @@ > /** @file > A non-functional instance of the Timer Library. > > - Copyright (c) 2007 - 2010, Intel Corporation. All rights reserved.<BR> > + Copyright (c) 2007 - 2019, Intel Corporation. All rights reserved.<BR> > SPDX-License-Identifier: BSD-2-Clause-Patent > > **/ > > #include <PiPei.h> > +#include <Library/BaseLib.h> > #include <Library/TimerLib.h> > #include <Library/DebugLib.h> > #include <Library/EmuThunkLib.h> > @@ -119,4 +120,46 @@ GetPerformanceCounterProperties ( > return gEmuThunk->QueryPerformanceFrequency (); > } > > +/** > + Converts elapsed ticks of performance counter to time in nanoseconds. > + > + This function converts the elapsed ticks of running performance counter to > + time value in unit of nanoseconds. > + > + @param Ticks The number of elapsed ticks of running performance > counter. > + > + @return The elapsed time in nanoseconds. > + > +**/ > +UINT64 > +EFIAPI > +GetTimeInNanoSecond ( > + IN UINT64 Ticks > + ) > +{ > + UINT64 Frequency; > + UINT64 NanoSeconds; > + UINT64 Remainder; > + INTN Shift; > + > + Frequency = GetPerformanceCounterProperties (NULL, NULL); > + > + // > + // Ticks > + // Time = --------- x 1,000,000,000 > + // Frequency > + // > + NanoSeconds = MultU64x32 (DivU64x64Remainder (Ticks, Frequency, > &Remainder), 1000000000u); > + > + // > + // Ensure (Remainder * 1,000,000,000) will not overflow 64-bit. > + // Since 2^29 < 1,000,000,000 = 0x3B9ACA00 < 2^30, Remainder should < > 2^(64-30) = 2^34, > + // i.e. highest bit set in Remainder should <= 33. > + // > + Shift = MAX (0, HighBitSet64 (Remainder) - 33); > + Remainder = RShiftU64 (Remainder, (UINTN) Shift); > + Frequency = RShiftU64 (Frequency, (UINTN) Shift); > + NanoSeconds += DivU64x64Remainder (MultU64x32 (Remainder, 1000000000u), > Frequency, NULL); > > + return NanoSeconds; > +} > diff --git a/EmulatorPkg/Library/DxeTimerLib/DxeTimerLib.c > b/EmulatorPkg/Library/DxeTimerLib/DxeTimerLib.c > index 14cae4214c..1bbc9e0162 100644 > --- a/EmulatorPkg/Library/DxeTimerLib/DxeTimerLib.c > +++ b/EmulatorPkg/Library/DxeTimerLib/DxeTimerLib.c > @@ -1,7 +1,7 @@ > /** @file > A non-functional instance of the Timer Library. > > - Copyright (c) 2007 - 2010, Intel Corporation. All rights reserved.<BR> > + Copyright (c) 2007 - 2019, Intel Corporation. All rights reserved.<BR> > SPDX-License-Identifier: BSD-2-Clause-Patent > > **/ > @@ -198,3 +198,46 @@ DxeTimerLibConstructor ( > return EFI_SUCCESS; > } > > +/** > + Converts elapsed ticks of performance counter to time in nanoseconds. > + > + This function converts the elapsed ticks of running performance counter to > + time value in unit of nanoseconds. > + > + @param Ticks The number of elapsed ticks of running performance > counter. > + > + @return The elapsed time in nanoseconds. > + > +**/ > +UINT64 > +EFIAPI > +GetTimeInNanoSecond ( > + IN UINT64 Ticks > + ) > +{ > + UINT64 Frequency; > + UINT64 NanoSeconds; > + UINT64 Remainder; > + INTN Shift; > + > + Frequency = GetPerformanceCounterProperties (NULL, NULL); > + > + // > + // Ticks > + // Time = --------- x 1,000,000,000 > + // Frequency > + // > + NanoSeconds = MultU64x32 (DivU64x64Remainder (Ticks, Frequency, > &Remainder), 1000000000u); > + > + // > + // Ensure (Remainder * 1,000,000,000) will not overflow 64-bit. > + // Since 2^29 < 1,000,000,000 = 0x3B9ACA00 < 2^30, Remainder should < > 2^(64-30) = 2^34, > + // i.e. highest bit set in Remainder should <= 33. > + // > + Shift = MAX (0, HighBitSet64 (Remainder) - 33); > + Remainder = RShiftU64 (Remainder, (UINTN) Shift); > + Frequency = RShiftU64 (Frequency, (UINTN) Shift); > + NanoSeconds += DivU64x64Remainder (MultU64x32 (Remainder, 1000000000u), > Frequency, NULL); > + > + return NanoSeconds; > +} > diff --git a/EmulatorPkg/Library/PeiTimerLib/PeiTimerLib.c > b/EmulatorPkg/Library/PeiTimerLib/PeiTimerLib.c > index cce46fb366..132abb2c04 100644 > --- a/EmulatorPkg/Library/PeiTimerLib/PeiTimerLib.c > +++ b/EmulatorPkg/Library/PeiTimerLib/PeiTimerLib.c > @@ -1,12 +1,13 @@ > /** @file > A non-functional instance of the Timer Library. > > - Copyright (c) 2007 - 2010, Intel Corporation. All rights reserved.<BR> > + Copyright (c) 2007 - 2019, Intel Corporation. All rights reserved.<BR> > SPDX-License-Identifier: BSD-2-Clause-Patent > > **/ > > #include <PiPei.h> > +#include <Library/BaseLib.h> > #include <Library/TimerLib.h> > #include <Library/DebugLib.h> > #include <Library/PeiServicesLib.h> > @@ -166,3 +167,47 @@ GetPerformanceCounterProperties ( > > return 0; > } > + > +/** > + Converts elapsed ticks of performance counter to time in nanoseconds. > + > + This function converts the elapsed ticks of running performance counter to > + time value in unit of nanoseconds. > + > + @param Ticks The number of elapsed ticks of running performance > counter. > + > + @return The elapsed time in nanoseconds. > + > +**/ > +UINT64 > +EFIAPI > +GetTimeInNanoSecond ( > + IN UINT64 Ticks > + ) > +{ > + UINT64 Frequency; > + UINT64 NanoSeconds; > + UINT64 Remainder; > + INTN Shift; > + > + Frequency = GetPerformanceCounterProperties (NULL, NULL); > + > + // > + // Ticks > + // Time = --------- x 1,000,000,000 > + // Frequency > + // > + NanoSeconds = MultU64x32 (DivU64x64Remainder (Ticks, Frequency, > &Remainder), 1000000000u); > + > + // > + // Ensure (Remainder * 1,000,000,000) will not overflow 64-bit. > + // Since 2^29 < 1,000,000,000 = 0x3B9ACA00 < 2^30, Remainder should < > 2^(64-30) = 2^34, > + // i.e. highest bit set in Remainder should <= 33. > + // > + Shift = MAX (0, HighBitSet64 (Remainder) - 33); > + Remainder = RShiftU64 (Remainder, (UINTN) Shift); > + Frequency = RShiftU64 (Frequency, (UINTN) Shift); > + NanoSeconds += DivU64x64Remainder (MultU64x32 (Remainder, 1000000000u), > Frequency, NULL); > + > + return NanoSeconds; > +} > -- > 2.13.0.windows.1 > > > > -=-=-=-=-=-=-=-=-=-=-=- Groups.io Links: You receive all messages sent to this group. View/Reply Online (#47496): https://edk2.groups.io/g/devel/message/47496 Mute This Topic: https://groups.io/mt/34185670/21656 Group Owner: devel+ow...@edk2.groups.io Unsubscribe: https://edk2.groups.io/g/devel/unsub [arch...@mail-archive.com] -=-=-=-=-=-=-=-=-=-=-=-