TianoCore EDK2 master
Loading...
Searching...
No Matches
UsbHcMem.h File Reference

Go to the source code of this file.

Data Structures

struct  _USBHC_MEM_BLOCK
 
struct  _USBHC_MEM_POOL
 

Macros

#define USB_HC_BIT(a)   ((UINTN)(1 << (a)))
 
#define USB_HC_BIT_IS_SET(Data, Bit)    ((BOOLEAN)(((Data) & USB_HC_BIT(Bit)) == USB_HC_BIT(Bit)))
 
#define USB_HC_HIGH_32BIT(Addr64)    ((UINT32)(RShiftU64((UINTN)(Addr64), 32) & 0XFFFFFFFF))
 
#define USBHC_MEM_UNIT   64
 
#define USBHC_MEM_UNIT_MASK   (USBHC_MEM_UNIT - 1)
 
#define USBHC_MEM_DEFAULT_PAGES   16
 
#define USBHC_MEM_ROUND(Len)   (((Len) + USBHC_MEM_UNIT_MASK) & (~USBHC_MEM_UNIT_MASK))
 
#define NEXT_BIT(Byte, Bit)
 

Typedefs

typedef struct _USBHC_MEM_BLOCK USBHC_MEM_BLOCK
 
typedef struct _USBHC_MEM_POOL USBHC_MEM_POOL
 

Functions

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)
 
EFI_PHYSICAL_ADDRESS UsbHcGetPciAddressForHostMem (IN USBHC_MEM_POOL *Pool, IN VOID *Mem, IN UINTN Size)
 

Detailed Description

This file contains the definination for host controller memory management routines.

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

Definition in file UsbHcMem.h.

Macro Definition Documentation

◆ NEXT_BIT

#define NEXT_BIT (   Byte,
  Bit 
)
Value:
do { \
(Bit)++; \
if ((Bit) > 7) { \
(Byte)++; \
(Bit) = 0; \
} \
} while (0)

Definition at line 57 of file UsbHcMem.h.

◆ USB_HC_BIT

#define USB_HC_BIT (   a)    ((UINTN)(1 << (a)))

Definition at line 13 of file UsbHcMem.h.

◆ USB_HC_BIT_IS_SET

#define USB_HC_BIT_IS_SET (   Data,
  Bit 
)     ((BOOLEAN)(((Data) & USB_HC_BIT(Bit)) == USB_HC_BIT(Bit)))

Definition at line 15 of file UsbHcMem.h.

◆ USB_HC_HIGH_32BIT

#define USB_HC_HIGH_32BIT (   Addr64)     ((UINT32)(RShiftU64((UINTN)(Addr64), 32) & 0XFFFFFFFF))

Definition at line 18 of file UsbHcMem.h.

◆ USBHC_MEM_DEFAULT_PAGES

#define USBHC_MEM_DEFAULT_PAGES   16

Definition at line 50 of file UsbHcMem.h.

◆ USBHC_MEM_ROUND

#define USBHC_MEM_ROUND (   Len)    (((Len) + USBHC_MEM_UNIT_MASK) & (~USBHC_MEM_UNIT_MASK))

Definition at line 52 of file UsbHcMem.h.

◆ USBHC_MEM_UNIT

#define USBHC_MEM_UNIT   64

Definition at line 47 of file UsbHcMem.h.

◆ USBHC_MEM_UNIT_MASK

#define USBHC_MEM_UNIT_MASK   (USBHC_MEM_UNIT - 1)

Definition at line 49 of file UsbHcMem.h.

Typedef Documentation

◆ USBHC_MEM_BLOCK

Definition at line 21 of file UsbHcMem.h.

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.

◆ 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.

◆ UsbHcFreeMemPool()

EFI_STATUS UsbHcFreeMemPool ( IN USBHC_MEM_POOL Pool)

Release the memory management pool.

Parameters
PoolThe USB memory pool to free.
Return values
EFI_SUCCESSThe memory pool is freed.
EFI_DEVICE_ERRORFailed to free the memory 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.

Release the memory management pool.

Parameters
PoolThe USB memory pool to free.

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.
Return values
EFI_SUCCESSThe memory pool is initialized.
EFI_OUT_OF_RESOURCEFail to init the memory pool.

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.