#include <Library/UefiBootServicesTableLib.h>\r
\r
\r
+UINT64\r
+ReadTimestamp (\r
+ VOID\r
+ )\r
+{\r
+#if defined (MDE_CPU_IA32) || defined (MDE_CPU_X64)\r
+ return AsmReadTsc ();\r
+#elif defined (MDE_CPU_IPF)\r
+ return AsmReadItc ();\r
+#else\r
+#error ReadTimestamp not supported for this architecture!\r
+#endif\r
+}\r
+\r
UINT32\r
Rand32 (\r
VOID\r
\r
R32 = 0;\r
Found = 0;\r
- Tsc1 = AsmReadTsc ();\r
- Tsc2 = AsmReadTsc ();\r
+ Tsc1 = ReadTimestamp ();\r
+ Tsc2 = ReadTimestamp ();\r
do {\r
- Tsc2 = AsmReadTsc ();\r
+ Tsc2 = ReadTimestamp ();\r
TscBits = Tsc2 ^ Tsc1;\r
Bits = HighBitSet64 (TscBits);\r
if (Bits > 0) {\r