]> git.proxmox.com Git - mirror_edk2.git/blobdiff - MdeModulePkg/Bus/Pci/EhciDxe/UsbHcMem.h
UefiCpuPkg: Move AsmRelocateApLoopStart from Mpfuncs.nasm to AmdSev.nasm
[mirror_edk2.git] / MdeModulePkg / Bus / Pci / EhciDxe / UsbHcMem.h
index d5213284ce10076888fb11781537d4124b301ed0..999e795386feca378536c3af1c3cb4b1c2465f33 100644 (file)
@@ -2,24 +2,15 @@
 \r
   This file contains the definination for host controller memory management routines.\r
 \r
-Copyright (c) 2007 - 2009, Intel Corporation\r
-All rights reserved. This program and the accompanying materials\r
-are licensed and made available under the terms and conditions of the BSD License\r
-which accompanies this distribution.  The full text of the license may be found at\r
-http://opensource.org/licenses/bsd-license.php\r
-\r
-THE PROGRAM IS DISTRIBUTED UNDER THE BSD LICENSE ON AN "AS IS" BASIS,\r
-WITHOUT WARRANTIES OR REPRESENTATIONS OF ANY KIND, EITHER EXPRESS OR IMPLIED.\r
+Copyright (c) 2007 - 2010, Intel Corporation. All rights reserved.<BR>\r
+SPDX-License-Identifier: BSD-2-Clause-Patent\r
 \r
 **/\r
 \r
 #ifndef _EFI_EHCI_MEM_H_\r
 #define _EFI_EHCI_MEM_H_\r
 \r
-\r
-#include <IndustryStandard/Pci22.h>\r
-\r
-#define USB_HC_BIT(a)                  ((UINTN)(1 << (a)))\r
+#define USB_HC_BIT(a)  ((UINTN)(1 << (a)))\r
 \r
 #define USB_HC_BIT_IS_SET(Data, Bit)   \\r
           ((BOOLEAN)(((Data) & USB_HC_BIT(Bit)) == USB_HC_BIT(Bit)))\r
@@ -27,15 +18,16 @@ WITHOUT WARRANTIES OR REPRESENTATIONS OF ANY KIND, EITHER EXPRESS OR IMPLIED.
 #define USB_HC_HIGH_32BIT(Addr64)    \\r
           ((UINT32)(RShiftU64((UINTN)(Addr64), 32) & 0XFFFFFFFF))\r
 \r
-typedef struct _USBHC_MEM_BLOCK {\r
-  UINT8                   *Bits;    // Bit array to record which unit is allocated\r
-  UINTN                   BitsLen;\r
-  UINT8                   *Buf;\r
-  UINT8                   *BufHost;\r
-  UINTN                   BufLen;   // Memory size in bytes\r
-  VOID                    *Mapping;\r
-  struct _USBHC_MEM_BLOCK *Next;\r
-} USBHC_MEM_BLOCK;\r
+typedef struct _USBHC_MEM_BLOCK USBHC_MEM_BLOCK;\r
+struct _USBHC_MEM_BLOCK {\r
+  UINT8              *Bits;         // Bit array to record which unit is allocated\r
+  UINTN              BitsLen;\r
+  UINT8              *Buf;\r
+  UINT8              *BufHost;\r
+  UINTN              BufLen;        // Memory size in bytes\r
+  VOID               *Mapping;\r
+  USBHC_MEM_BLOCK    *Next;\r
+};\r
 \r
 //\r
 // USBHC_MEM_POOL is used to manage the memory used by USB\r
@@ -43,18 +35,19 @@ typedef struct _USBHC_MEM_BLOCK {
 // data to be on the same 4G memory.\r
 //\r
 typedef struct _USBHC_MEM_POOL {\r
-  EFI_PCI_IO_PROTOCOL     *PciIo;\r
-  BOOLEAN                 Check4G;\r
-  UINT32                  Which4G;\r
-  USBHC_MEM_BLOCK         *Head;\r
+  EFI_PCI_IO_PROTOCOL    *PciIo;\r
+  BOOLEAN                Check4G;\r
+  UINT32                 Which4G;\r
+  USBHC_MEM_BLOCK        *Head;\r
 } USBHC_MEM_POOL;\r
 \r
-typedef enum {\r
-  USBHC_MEM_UNIT           = 64,     // Memory allocation unit, must be 2^n, n>4\r
+//\r
+// Memory allocation unit, must be 2^n, n>4\r
+//\r
+#define USBHC_MEM_UNIT  64\r
 \r
-  USBHC_MEM_UNIT_MASK      = USBHC_MEM_UNIT - 1,\r
-  USBHC_MEM_DEFAULT_PAGES  = 16\r
-} USBHC_MEM_UNIT_DATA;\r
+#define USBHC_MEM_UNIT_MASK      (USBHC_MEM_UNIT - 1)\r
+#define USBHC_MEM_DEFAULT_PAGES  16\r
 \r
 #define USBHC_MEM_ROUND(Len)  (((Len) + USBHC_MEM_UNIT_MASK) & (~USBHC_MEM_UNIT_MASK))\r
 \r
@@ -70,8 +63,6 @@ typedef enum {
             }                 \\r
           } while (0)\r
 \r
-\r
-\r
 /**\r
   Initialize the memory management pool for the host controller.\r
 \r
@@ -91,7 +82,6 @@ UsbHcInitMemPool (
   IN UINT32               Which4G\r
   );\r
 \r
-\r
 /**\r
   Release the memory management pool.\r
 \r
@@ -103,10 +93,9 @@ UsbHcInitMemPool (
 **/\r
 EFI_STATUS\r
 UsbHcFreeMemPool (\r
-  IN USBHC_MEM_POOL       *Pool\r
+  IN USBHC_MEM_POOL  *Pool\r
   );\r
 \r
-\r
 /**\r
   Allocate some memory from the host controller's memory pool\r
   which can be used to communicate with host controller.\r
@@ -119,11 +108,10 @@ UsbHcFreeMemPool (
 **/\r
 VOID *\r
 UsbHcAllocateMem (\r
-  IN  USBHC_MEM_POOL      *Pool,\r
-  IN  UINTN               Size\r
+  IN  USBHC_MEM_POOL  *Pool,\r
+  IN  UINTN           Size\r
   );\r
 \r
-\r
 /**\r
   Free the allocated memory back to the memory pool.\r
 \r
@@ -134,8 +122,25 @@ UsbHcAllocateMem (
 **/\r
 VOID\r
 UsbHcFreeMem (\r
-  IN USBHC_MEM_POOL       *Pool,\r
-  IN VOID                 *Mem,\r
-  IN UINTN                Size\r
+  IN USBHC_MEM_POOL  *Pool,\r
+  IN VOID            *Mem,\r
+  IN UINTN           Size\r
+  );\r
+\r
+/**\r
+  Calculate the corresponding pci bus address according to the Mem parameter.\r
+\r
+  @param  Pool           The memory pool of the host controller.\r
+  @param  Mem            The pointer to host memory.\r
+  @param  Size           The size of the memory region.\r
+\r
+  @return the pci memory address\r
+**/\r
+EFI_PHYSICAL_ADDRESS\r
+UsbHcGetPciAddressForHostMem (\r
+  IN USBHC_MEM_POOL  *Pool,\r
+  IN VOID            *Mem,\r
+  IN UINTN           Size\r
   );\r
+\r
 #endif\r