1 /** @file
2 
3  Copyright (c) 2006 - 2014, Intel Corporation. All rights reserved.<BR>
4 
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 #ifndef __LOCK_BOX_LIB_IMPL_H__
16 #define __LOCK_BOX_LIB_IMPL_H__
17 
18 #pragma pack(1)
19 
20 typedef struct {
21   UINT32               Signature;
22   UINT32               SubPageBuffer;
23   UINT32               SubPageRemaining;
24 } LOCK_BOX_GLOBAL;
25 
26 #define LOCK_BOX_GLOBAL_SIGNATURE SIGNATURE_32('L', 'B', 'G', 'S')
27 
28 extern LOCK_BOX_GLOBAL *mLockBoxGlobal;
29 
30 #pragma pack()
31 
32 /**
33   Allocates a buffer of type EfiACPIMemoryNVS.
34 
35   Allocates the number bytes specified by AllocationSize of type
36   EfiACPIMemoryNVS and returns a pointer to the allocated buffer.
37   If AllocationSize is 0, then a valid buffer of 0 size is
38   returned.  If there is not enough memory remaining to satisfy
39   the request, then NULL is returned.
40 
41   @param  AllocationSize        The number of bytes to allocate.
42 
43   @return A pointer to the allocated buffer or NULL if allocation fails.
44 
45 **/
46 VOID *
47 EFIAPI
48 AllocateAcpiNvsPool (
49   IN UINTN  AllocationSize
50   );
51 
52 
53 RETURN_STATUS
54 EFIAPI
55 LockBoxLibInitialize (
56   VOID
57   );
58 
59 
60 #endif
61