/* Get current time and monotonic count first. Then initialize a random seed based on some basic mathematics operation on the hour, day, minute, second, nanosecond and year of the current time and the monotonic count value. */
UINT32 EFIAPI NetRandomInitSeed(VOID)
/* Get current time and monotonic count first. Then initialize a random seed based on some basic mathematics operation on the hour, day, minute, second, nanosecond and year of the current time and the monotonic count value. */
UINT32 EFIAPI NetRandomInitSeed(VOID)
{
  EFI_TIME  Time;
  UINT32    Seed;
  UINT64    MonotonicCount;
  gRT->GetTime (&Time, NULL);
  Seed  = (Time.Hour << 24 | Time.Day << 16 | Time.Minute << 8 | Time.Second);
  Seed ^= Time.Nanosecond;
  Seed ^= Time.Year << 7;
  gBS->GetNextMonotonicCount (&MonotonicCount);
  Seed += (UINT32)MonotonicCount;
  return Seed;
}