TianoCore EDK2 master
Loading...
Searching...
No Matches
UsbHcMem.c File Reference
#include "Uhci.h"

Go to the source code of this file.

Functions

USBHC_MEM_BLOCKUsbHcAllocMemBlock (IN USBHC_MEM_POOL *Pool, IN UINTN Pages)
 
VOID UsbHcFreeMemBlock (IN USBHC_MEM_POOL *Pool, IN USBHC_MEM_BLOCK *Block)
 
VOID * UsbHcAllocMemFromBlock (IN USBHC_MEM_BLOCK *Block, IN UINTN Units)
 
EFI_PHYSICAL_ADDRESS UsbHcGetPciAddressForHostMem (IN USBHC_MEM_POOL *Pool, IN VOID *Mem, IN UINTN Size)
 
VOID UsbHcInsertMemBlockToPool (IN USBHC_MEM_BLOCK *Head, IN USBHC_MEM_BLOCK *Block)
 
BOOLEAN UsbHcIsMemBlockEmpty (IN USBHC_MEM_BLOCK *Block)
 
VOID UsbHcUnlinkMemBlock (IN USBHC_MEM_BLOCK *Head, IN USBHC_MEM_BLOCK *BlockToUnlink)
 
USBHC_MEM_POOLUsbHcInitMemPool (IN EFI_PCI_IO_PROTOCOL *PciIo, IN BOOLEAN Check4G, IN UINT32 Which4G)
 
EFI_STATUS UsbHcFreeMemPool (IN USBHC_MEM_POOL *Pool)
 
VOID * UsbHcAllocateMem (IN USBHC_MEM_POOL *Pool, IN UINTN Size)
 
VOID UsbHcFreeMem (IN USBHC_MEM_POOL *Pool, IN VOID *Mem, IN UINTN Size)
 

Detailed Description

The routine procedure for uhci memory allocate/free.

Copyright (c) 2007 - 2016, Intel Corporation. All rights reserved.
SPDX-License-Identifier: BSD-2-Clause-Patent

Definition in file UsbHcMem.c.

Function Documentation

◆ UsbHcAllocateMem()

VOID * UsbHcAllocateMem ( IN USBHC_MEM_POOL Pool,
IN UINTN  Size 
)

Allocate some memory from the host controller's memory pool which can be used to communicate with host controller.

Parameters
PoolThe host controller's memory pool.
SizeSize of the memory to allocate.
Returns
The allocated memory or NULL.

Definition at line 419 of file UsbHcMem.c.

◆ UsbHcAllocMemBlock()

USBHC_MEM_BLOCK * UsbHcAllocMemBlock ( IN USBHC_MEM_POOL Pool,
IN UINTN  Pages 
)

Allocate a block of memory to be used by the buffer pool.

Parameters
PoolThe buffer pool to allocate memory for.
PagesHow many pages to allocate.
Returns
The allocated memory block or NULL if failed.

Definition at line 22 of file UsbHcMem.c.

◆ UsbHcAllocMemFromBlock()

VOID * UsbHcAllocMemFromBlock ( IN USBHC_MEM_BLOCK Block,
IN UINTN  Units 
)

Alloc some memory from the block.

Parameters
BlockThe memory block to allocate memory from.
UnitsNumber of memory units to allocate.
Returns
EFI_SUCCESS The needed memory is allocated.
EFI_NOT_FOUND Can't find the free memory.

Definition at line 152 of file UsbHcMem.c.

◆ UsbHcFreeMem()

VOID UsbHcFreeMem ( IN USBHC_MEM_POOL Pool,
IN VOID *  Mem,
IN UINTN  Size 
)

Free the allocated memory back to the memory pool.

Parameters
PoolThe memory pool of the host controller.
MemThe memory to free.
SizeThe size of the memory to free.

Definition at line 493 of file UsbHcMem.c.

◆ UsbHcFreeMemBlock()

VOID UsbHcFreeMemBlock ( IN USBHC_MEM_POOL Pool,
IN USBHC_MEM_BLOCK Block 
)

Free the memory block from the memory pool.

Parameters
PoolThe memory pool to free the block from.
BlockThe memory block to free.

Definition at line 120 of file UsbHcMem.c.

◆ UsbHcFreeMemPool()

EFI_STATUS UsbHcFreeMemPool ( IN USBHC_MEM_POOL Pool)

Release the memory management pool.

Parameters
PoolThe USB memory pool to free.
Returns
EFI_SUCCESS The memory pool is freed.
EFI_DEVICE_ERROR Failed to free the memory pool.

Definition at line 385 of file UsbHcMem.c.

◆ UsbHcGetPciAddressForHostMem()

EFI_PHYSICAL_ADDRESS UsbHcGetPciAddressForHostMem ( IN USBHC_MEM_POOL Pool,
IN VOID *  Mem,
IN UINTN  Size 
)

Calculate the corresponding pci bus address according to the Mem parameter.

Parameters
PoolThe memory pool of the host controller.
MemThe pointer to host memory.
SizeThe size of the memory region.
Returns
the pci memory address

Definition at line 223 of file UsbHcMem.c.

◆ UsbHcInitMemPool()

USBHC_MEM_POOL * UsbHcInitMemPool ( IN EFI_PCI_IO_PROTOCOL PciIo,
IN BOOLEAN  Check4G,
IN UINT32  Which4G 
)

Initialize the memory management pool for the host controller.

Parameters
PciIoThe PciIo that can be used to access the host controller.
Check4GWhether the host controller requires allocated memory from one 4G address space.
Which4GThe 4G memory area each memory allocated should be from.
Returns
EFI_SUCCESS The memory pool is initialized.
EFI_OUT_OF_RESOURCE Fail to init the memory pool.

Definition at line 348 of file UsbHcMem.c.

◆ UsbHcInsertMemBlockToPool()

VOID UsbHcInsertMemBlockToPool ( IN USBHC_MEM_BLOCK Head,
IN USBHC_MEM_BLOCK Block 
)

Insert the memory block to the pool's list of the blocks.

Parameters
HeadThe head of the memory pool's block list.
BlockThe memory block to insert.

Definition at line 274 of file UsbHcMem.c.

◆ UsbHcIsMemBlockEmpty()

BOOLEAN UsbHcIsMemBlockEmpty ( IN USBHC_MEM_BLOCK Block)

Is the memory block empty?

Parameters
BlockThe memory block to check.
Returns
TRUE The memory block is empty.
FALSE The memory block isn't empty.

Definition at line 294 of file UsbHcMem.c.

◆ UsbHcUnlinkMemBlock()

VOID UsbHcUnlinkMemBlock ( IN USBHC_MEM_BLOCK Head,
IN USBHC_MEM_BLOCK BlockToUnlink 
)

Unlink the memory block from the pool's list.

Parameters
HeadThe block list head of the memory's pool.
BlockToUnlinkThe memory block to unlink.

Definition at line 317 of file UsbHcMem.c.