1 /** @file
2   Debug Port Library implementation based on usb3 debug port.
3 
4   Copyright (c) 2014, Intel Corporation. All rights reserved.<BR>
5   This program and the accompanying materials
6   are licensed and made available under the terms and conditions of the BSD License
7   which accompanies this distribution.  The full text of the license may be found at
8   http://opensource.org/licenses/bsd-license.php.
9 
10   THE PROGRAM IS DISTRIBUTED UNDER THE BSD LICENSE ON AN "AS IS" BASIS,
11   WITHOUT WARRANTIES OR REPRESENTATIONS OF ANY KIND, EITHER EXPRESS OR IMPLIED.
12 
13 **/
14 
15 #include <Base.h>
16 #include <PiDxe.h>
17 #include <Library/UefiBootServicesTableLib.h>
18 #include "DebugCommunicationLibUsb3Internal.h"
19 
20 /**
21   Allocate aligned memory for XHC's usage.
22 
23   @param  BufferSize      The size, in bytes, of the Buffer.
24 
25   @return A pointer to the allocated buffer or NULL if allocation fails.
26 
27 **/
28 VOID*
AllocateAlignBuffer(IN UINTN BufferSize)29 AllocateAlignBuffer (
30   IN UINTN                    BufferSize
31   )
32 {
33   VOID      *Buf;
34 
35   Buf = NULL;
36 
37   if (gBS != NULL) {
38     Buf = (VOID *)(UINTN)0xFFFFFFFF;
39     gBS->AllocatePages (
40            AllocateMaxAddress,
41            EfiACPIMemoryNVS,
42            EFI_SIZE_TO_PAGES (BufferSize),
43            (EFI_PHYSICAL_ADDRESS *) &Buf
44            );
45   }
46 
47   return Buf;
48 }
49