]> git.proxmox.com Git - mirror_edk2.git/blame - StandaloneMmPkg/Core/StandaloneMmCorePrivateData.h
StandaloneMmPkg: Replace BSD License with BSD+Patent License
[mirror_edk2.git] / StandaloneMmPkg / Core / StandaloneMmCorePrivateData.h
CommitLineData
6b46d772
SV
1/** @file\r
2 The internal header file that declared a data structure that is shared\r
3 between the MM IPL and the MM Core.\r
4\r
5 Copyright (c) 2009 - 2014, Intel Corporation. All rights reserved.<BR>\r
6 Copyright (c) 2016 - 2018, ARM Limited. All rights reserved.<BR>\r
86094561 7 SPDX-License-Identifier: BSD-2-Clause-Patent\r
6b46d772
SV
8\r
9**/\r
10\r
11#ifndef _STANDALONE_MM_CORE_PRIVATE_DATA_H_\r
12#define _STANDALONE_MM_CORE_PRIVATE_DATA_H_\r
13\r
14#include <Guid/MmCoreData.h>\r
15\r
16//\r
17// Page management\r
18//\r
19\r
20typedef struct {\r
21 LIST_ENTRY Link;\r
22 UINTN NumberOfPages;\r
23} FREE_PAGE_LIST;\r
24\r
25extern LIST_ENTRY mMmMemoryMap;\r
26\r
27//\r
28// Pool management\r
29//\r
30\r
31//\r
32// MIN_POOL_SHIFT must not be less than 5\r
33//\r
34#define MIN_POOL_SHIFT 6\r
35#define MIN_POOL_SIZE (1 << MIN_POOL_SHIFT)\r
36\r
37//\r
38// MAX_POOL_SHIFT must not be less than EFI_PAGE_SHIFT - 1\r
39//\r
40#define MAX_POOL_SHIFT (EFI_PAGE_SHIFT - 1)\r
41#define MAX_POOL_SIZE (1 << MAX_POOL_SHIFT)\r
42\r
43//\r
44// MAX_POOL_INDEX are calculated by maximum and minimum pool sizes\r
45//\r
46#define MAX_POOL_INDEX (MAX_POOL_SHIFT - MIN_POOL_SHIFT + 1)\r
47\r
48typedef struct {\r
49 UINTN Size;\r
50 BOOLEAN Available;\r
51} POOL_HEADER;\r
52\r
53typedef struct {\r
54 POOL_HEADER Header;\r
55 LIST_ENTRY Link;\r
56} FREE_POOL_HEADER;\r
57\r
58extern LIST_ENTRY mMmPoolLists[MAX_POOL_INDEX];\r
59\r
60#endif\r