/* Initialize the memory management pool for the host controller. */
USBHC_MEM_POOL* UsbHcInitMemPool(VOID)
/* Initialize the memory management pool for the host controller. */
USBHC_MEM_POOL* UsbHcInitMemPool(VOID)
{
  USBHC_MEM_POOL        *Pool;
  UINTN                 PageNumber;
  EFI_STATUS            Status;
  EFI_PHYSICAL_ADDRESS  TempPtr;
  PageNumber = EFI_SIZE_TO_PAGES (sizeof (USBHC_MEM_POOL));
  Status     = PeiServicesAllocatePages (
                 EfiBootServicesData,
                 PageNumber,
                 &TempPtr
                 );
  if (EFI_ERROR (Status)) {
    return NULL;
  }
  ZeroMem ((VOID *)(UINTN)TempPtr, EFI_PAGES_TO_SIZE (PageNumber));
  Pool       = (USBHC_MEM_POOL *)((UINTN)TempPtr);
  Pool->Head = UsbHcAllocMemBlock (USBHC_MEM_DEFAULT_PAGES);
  if (Pool->Head == NULL) {
    Pool = NULL;
  }
  return Pool;
}