-STATIC\r
-VOID\r
-LookupAddresstoRootTable (\r
- IN UINT64 MaxAddress,\r
- OUT UINTN *T0SZ,\r
- OUT UINTN *TableEntryCount\r
- )\r
-{\r
- UINTN TopBit;\r
-\r
- // Check the parameters are not NULL\r
- ASSERT ((T0SZ != NULL) && (TableEntryCount != NULL));\r
-\r
- // Look for the highest bit set in MaxAddress\r
- for (TopBit = 63; TopBit != 0; TopBit--) {\r
- if ((1ULL << TopBit) & MaxAddress) {\r
- // MaxAddress top bit is found\r
- TopBit = TopBit + 1;\r
- break;\r
- }\r
- }\r
- ASSERT (TopBit != 0);\r
-\r
- // Calculate T0SZ from the top bit of the MaxAddress\r
- *T0SZ = 64 - TopBit;\r
-\r
- // Get the Table info from T0SZ\r
- GetRootTranslationTableInfo (*T0SZ, NULL, TableEntryCount);\r
-}\r
-\r