UINT32 Count;\r
UINTN PageCount;\r
VOID *Map;\r
- EFI_PHYSICAL_ADDRESS MemPage;\r
+ VOID *MemPage;\r
EFI_PHYSICAL_ADDRESS DeviceAddress;\r
\r
//\r
//\r
// Build PRD table\r
//\r
- MemPage = 0xFFFFFFFF;\r
PageCount = EFI_SIZE_TO_PAGES (2 * PrdTableNum * sizeof (IDE_DMA_PRD));\r
- Status = gBS->AllocatePages (\r
- AllocateMaxAddress,\r
- EfiBootServicesData,\r
- PageCount,\r
- &MemPage\r
- );\r
+ Status = IdeDev->PciIo->AllocateBuffer (\r
+ IdeDev->PciIo,\r
+ AllocateAnyPages,\r
+ EfiBootServicesData,\r
+ PageCount,\r
+ &MemPage,\r
+ 0\r
+ );\r
if (EFI_ERROR (Status)) {\r
return EFI_OUT_OF_RESOURCES;\r
}\r
&Map\r
);\r
if (EFI_ERROR (Status)) {\r
- gBS->FreePages (MemPage, PageCount);\r
+ IdeDev->PciIo->FreeBuffer (IdeDev->PciIo, PageCount, MemPage);\r
return EFI_OUT_OF_RESOURCES;\r
}\r
PrdBuffer = (VOID *) ((UINTN) DeviceAddress);\r
StartLba\r
);\r
if (EFI_ERROR (Status)) {\r
- gBS->FreePages (MemPage, PageCount);\r
+ IdeDev->PciIo->FreeBuffer (IdeDev->PciIo, PageCount, MemPage);\r
IdeDev->PciIo->Unmap (IdeDev->PciIo, Map);\r
return EFI_DEVICE_ERROR;\r
}\r
1,\r
&RegisterValue\r
);\r
- gBS->FreePages (MemPage, PageCount);\r
+ IdeDev->PciIo->FreeBuffer (IdeDev->PciIo, PageCount, MemPage);\r
IdeDev->PciIo->Unmap (IdeDev->PciIo, Map);\r
return EFI_DEVICE_ERROR;\r
}\r
Count --;\r
}\r
\r
- gBS->FreePages (MemPage, PageCount);\r
+ IdeDev->PciIo->FreeBuffer (IdeDev->PciIo, PageCount, MemPage);\r
IdeDev->PciIo->Unmap (IdeDev->PciIo, Map);\r
//\r
// Read Status Register of IDE device to clear interrupt\r
UINT32 Count;\r
UINTN PageCount;\r
VOID *Map;\r
- EFI_PHYSICAL_ADDRESS MemPage;\r
+ VOID *MemPage;\r
EFI_PHYSICAL_ADDRESS DeviceAddress;\r
\r
//\r
//\r
// Build PRD table\r
//\r
- MemPage = 0xFFFFFFFF;\r
PageCount = EFI_SIZE_TO_PAGES (2 * PrdTableNum * sizeof (IDE_DMA_PRD));\r
- Status = gBS->AllocatePages (\r
- AllocateMaxAddress,\r
- EfiBootServicesData,\r
- PageCount,\r
- &MemPage\r
- );\r
+ Status = IdeDev->PciIo->AllocateBuffer (\r
+ IdeDev->PciIo,\r
+ AllocateAnyPages,\r
+ EfiBootServicesData,\r
+ PageCount,\r
+ &MemPage,\r
+ 0\r
+ );\r
if (EFI_ERROR (Status)) {\r
return EFI_OUT_OF_RESOURCES;\r
}\r
&Map\r
);\r
if (EFI_ERROR (Status)) {\r
- gBS->FreePages (MemPage, PageCount);\r
+ IdeDev->PciIo->FreeBuffer (IdeDev->PciIo, PageCount, MemPage);\r
return EFI_OUT_OF_RESOURCES;\r
}\r
PrdBuffer = (UINT8 *) ((UINTN) DeviceAddress);\r
StartLba\r
);\r
if (EFI_ERROR (Status)) {\r
- gBS->FreePages (MemPage, PageCount);\r
+ IdeDev->PciIo->FreeBuffer (IdeDev->PciIo, PageCount, MemPage);\r
IdeDev->PciIo->Unmap (IdeDev->PciIo, Map);\r
return EFI_DEVICE_ERROR;\r
}\r
1,\r
&RegisterValue\r
);\r
- gBS->FreePages (MemPage, PageCount);\r
+ IdeDev->PciIo->FreeBuffer (IdeDev->PciIo, PageCount, MemPage);\r
IdeDev->PciIo->Unmap (IdeDev->PciIo, Map);\r
return EFI_DEVICE_ERROR;\r
}\r
Count --;\r
}\r
\r
- gBS->FreePages (MemPage, PageCount);\r
+ IdeDev->PciIo->FreeBuffer (IdeDev->PciIo, PageCount, MemPage);\r
IdeDev->PciIo->Unmap (IdeDev->PciIo, Map);\r
//\r
// Read Status Register of IDE device to clear interrupt\r
UINT32 Count;\r
UINTN PageCount;\r
VOID *Map;\r
- EFI_PHYSICAL_ADDRESS MemPage;\r
+ VOID *MemPage;\r
EFI_PHYSICAL_ADDRESS DeviceAddress;\r
\r
//\r
//\r
// Build PRD table\r
//\r
- MemPage = 0xFFFFFFFF;\r
PageCount = EFI_SIZE_TO_PAGES (2 * PrdTableNum * sizeof (IDE_DMA_PRD));\r
- Status = gBS->AllocatePages (\r
- AllocateMaxAddress,\r
- EfiBootServicesData,\r
- PageCount,\r
- &MemPage\r
- );\r
+ Status = IdeDev->PciIo->AllocateBuffer (\r
+ IdeDev->PciIo,\r
+ AllocateAnyPages,\r
+ EfiBootServicesData,\r
+ PageCount,\r
+ &MemPage,\r
+ 0\r
+ );\r
if (EFI_ERROR (Status)) {\r
return EFI_OUT_OF_RESOURCES;\r
}\r
&Map\r
);\r
if (EFI_ERROR (Status)) {\r
- gBS->FreePages (MemPage, PageCount);\r
+ IdeDev->PciIo->FreeBuffer (IdeDev->PciIo, PageCount, MemPage);\r
return EFI_OUT_OF_RESOURCES;\r
}\r
PrdBuffer = (UINT8 *) ((UINTN) DeviceAddress);\r
StartLba\r
);\r
if (EFI_ERROR (Status)) {\r
- gBS->FreePages (MemPage, PageCount);\r
+ IdeDev->PciIo->FreeBuffer (IdeDev->PciIo, PageCount, MemPage);\r
IdeDev->PciIo->Unmap (IdeDev->PciIo, Map);\r
return EFI_DEVICE_ERROR;\r
}\r
1,\r
&RegisterValue\r
);\r
- gBS->FreePages (MemPage, PageCount);\r
+ IdeDev->PciIo->FreeBuffer (IdeDev->PciIo, PageCount, MemPage);\r
IdeDev->PciIo->Unmap (IdeDev->PciIo, Map);\r
return EFI_DEVICE_ERROR;\r
}\r
Count --;\r
}\r
\r
- gBS->FreePages (MemPage, PageCount);\r
+ IdeDev->PciIo->FreeBuffer (IdeDev->PciIo, PageCount, MemPage);\r
IdeDev->PciIo->Unmap (IdeDev->PciIo, Map);\r
//\r
// Read Status Register of IDE device to clear interrupt\r
UINT32 Count;\r
UINTN PageCount;\r
VOID *Map;\r
- EFI_PHYSICAL_ADDRESS MemPage;\r
+ VOID *MemPage;\r
EFI_PHYSICAL_ADDRESS DeviceAddress;\r
\r
//\r
//\r
// Build PRD table\r
//\r
- MemPage = 0xFFFFFFFF;\r
PageCount = EFI_SIZE_TO_PAGES (2 * PrdTableNum * sizeof (IDE_DMA_PRD));\r
- Status = gBS->AllocatePages (\r
- AllocateMaxAddress,\r
- EfiBootServicesData,\r
- PageCount,\r
- &MemPage\r
- );\r
+ Status = IdeDev->PciIo->AllocateBuffer (\r
+ IdeDev->PciIo,\r
+ AllocateAnyPages,\r
+ EfiBootServicesData,\r
+ PageCount,\r
+ &MemPage,\r
+ 0\r
+ );\r
if (EFI_ERROR (Status)) {\r
return EFI_OUT_OF_RESOURCES;\r
}\r
&Map\r
);\r
if (EFI_ERROR (Status)) {\r
- gBS->FreePages (MemPage, PageCount);\r
+ IdeDev->PciIo->FreeBuffer (IdeDev->PciIo, PageCount, MemPage);\r
return EFI_OUT_OF_RESOURCES;\r
}\r
PrdBuffer = (UINT8 *) ((UINTN) DeviceAddress);\r
StartLba\r
);\r
if (EFI_ERROR (Status)) {\r
- gBS->FreePages (MemPage, PageCount);\r
+ IdeDev->PciIo->FreeBuffer (IdeDev->PciIo, PageCount, MemPage);\r
IdeDev->PciIo->Unmap (IdeDev->PciIo, Map);\r
return EFI_DEVICE_ERROR;\r
}\r
1,\r
&RegisterValue\r
);\r
- gBS->FreePages (MemPage, PageCount);\r
+ IdeDev->PciIo->FreeBuffer (IdeDev->PciIo, PageCount, MemPage);\r
IdeDev->PciIo->Unmap (IdeDev->PciIo, Map);\r
return EFI_DEVICE_ERROR;\r
}\r
Count --;\r
}\r
\r
- gBS->FreePages (MemPage, PageCount);\r
+ IdeDev->PciIo->FreeBuffer (IdeDev->PciIo, PageCount, MemPage);\r
IdeDev->PciIo->Unmap (IdeDev->PciIo, Map);\r
\r
//\r