TianoCore EDK2 master
Loading...
Searching...
No Matches
UsbHcMem.h File Reference
#include <Uefi.h>

Go to the source code of this file.

Data Structures

struct  _USBHC_MEM_BLOCK
 
struct  _USBHC_MEM_POOL
 

Macros

#define USBHC_MEM_DEFAULT_PAGES   16
 
#define USBHC_MEM_UNIT   64
 
#define USBHC_MEM_UNIT_MASK   (USBHC_MEM_UNIT - 1)
 
#define USBHC_MEM_ROUND(Len)   (((Len) + USBHC_MEM_UNIT_MASK) & (~USBHC_MEM_UNIT_MASK))
 
#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 NEXT_BIT(Byte, Bit)
 

Typedefs

typedef struct _USBHC_MEM_BLOCK USBHC_MEM_BLOCK
 
typedef struct _USBHC_MEM_POOL USBHC_MEM_POOL
 

Functions

EFI_PHYSICAL_ADDRESS UsbHcGetPciAddrForHostAddr (IN USBHC_MEM_POOL *Pool, IN VOID *Mem, IN UINTN Size, IN BOOLEAN Alignment)
 
EFI_PHYSICAL_ADDRESS UsbHcGetHostAddrForPciAddr (IN USBHC_MEM_POOL *Pool, IN VOID *Mem, IN UINTN Size, IN BOOLEAN Alignment)
 
EFI_STATUS UsbHcAllocateAlignedPages (IN UINTN Pages, IN UINTN Alignment, OUT VOID **HostAddress, OUT EFI_PHYSICAL_ADDRESS *DeviceAddress, OUT VOID **Mapping)
 
VOID UsbHcFreeAlignedPages (IN VOID *HostAddress, IN UINTN Pages, IN VOID *Mapping)
 

Detailed Description

Private Header file for Usb Host Controller PEIM

Copyright (c) 2014, 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 45 of file UsbHcMem.h.

◆ USB_HC_BIT

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

Definition at line 37 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 39 of file UsbHcMem.h.

◆ USBHC_MEM_DEFAULT_PAGES

#define USBHC_MEM_DEFAULT_PAGES   16

Definition at line 15 of file UsbHcMem.h.

◆ USBHC_MEM_ROUND

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

Definition at line 35 of file UsbHcMem.h.

◆ USBHC_MEM_UNIT

#define USBHC_MEM_UNIT   64

Definition at line 32 of file UsbHcMem.h.

◆ USBHC_MEM_UNIT_MASK

#define USBHC_MEM_UNIT_MASK   (USBHC_MEM_UNIT - 1)

Definition at line 34 of file UsbHcMem.h.

Typedef Documentation

◆ USBHC_MEM_BLOCK

Definition at line 17 of file UsbHcMem.h.

Function Documentation

◆ UsbHcAllocateAlignedPages()

EFI_STATUS UsbHcAllocateAlignedPages ( IN UINTN  Pages,
IN UINTN  Alignment,
OUT VOID **  HostAddress,
OUT EFI_PHYSICAL_ADDRESS DeviceAddress,
OUT VOID **  Mapping 
)

Allocates pages at a specified alignment.

If Alignment is not a power of two and Alignment is not zero, then ASSERT().

Parameters
PagesThe number of pages to allocate.
AlignmentThe requested alignment of the allocation. Must be a power of two.
HostAddressThe system memory address to map to the PCI controller.
DeviceAddressThe resulting map address for the bus master PCI controller to use to access the hosts HostAddress.
MappingA resulting value to pass to Unmap().
Return values
EFI_SUCCESSSuccess to allocate aligned pages.
EFI_INVALID_PARAMETERPages or Alignment is not valid.
EFI_OUT_OF_RESOURCESDo not have enough resources to allocate memory.

Definition at line 597 of file UsbHcMem.c.

◆ UsbHcFreeAlignedPages()

VOID UsbHcFreeAlignedPages ( IN VOID *  HostAddress,
IN UINTN  Pages,
IN VOID *  Mapping 
)

Frees memory that was allocated with UsbHcAllocateAlignedPages().

Parameters
HostAddressThe system memory address to map to the PCI controller.
PagesThe number of pages to free.
MappingThe mapping value returned from Map().

Definition at line 663 of file UsbHcMem.c.

◆ UsbHcGetHostAddrForPciAddr()

EFI_PHYSICAL_ADDRESS UsbHcGetHostAddrForPciAddr ( IN USBHC_MEM_POOL Pool,
IN VOID *  Mem,
IN UINTN  Size,
IN BOOLEAN  Alignment 
)

Calculate the corresponding host address according to the pci address.

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

Definition at line 290 of file UsbHcMem.c.

◆ UsbHcGetPciAddrForHostAddr()

EFI_PHYSICAL_ADDRESS UsbHcGetPciAddrForHostAddr ( IN USBHC_MEM_POOL Pool,
IN VOID *  Mem,
IN UINTN  Size,
IN BOOLEAN  Alignment 
)

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.
AlignmentAlignment the size to USBHC_MEM_UNIT bytes.
Returns
The pci memory address

Definition at line 235 of file UsbHcMem.c.