From mboxrd@z Thu Jan 1 00:00:00 1970 Received: from EUR01-HE1-obe.outbound.protection.outlook.com (EUR01-HE1-obe.outbound.protection.outlook.com [40.107.13.80]) by mx.groups.io with SMTP id smtpd.web12.16960.1597245781876937863 for ; Wed, 12 Aug 2020 08:23:02 -0700 Authentication-Results: mx.groups.io; dkim=pass header.i=@armh.onmicrosoft.com header.s=selector2-armh-onmicrosoft-com header.b=tCyhk/KG; spf=pass (domain: arm.com, ip: 40.107.13.80, mailfrom: sami.mujawar@arm.com) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=armh.onmicrosoft.com; s=selector2-armh-onmicrosoft-com; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck; bh=eXwElLQbNmONyNKVHduRqkrXGG12ab5/G8o9s8yhYZg=; b=tCyhk/KGaI/pUAY90W8wO8S3+DGAHpXJaINwWwk715NzG1CC+8Y53C+tnb11rEDlzWklSe39/GvnPio4iFXum8W6WQkqby9gDkdSEadiEAymk522ZtIAGayFPzX9c1x6CnUXbfax7OUSdkM7AfrWNWa2wNnoFh5AJmCCL0Mt2pw= Received: from AM5PR04CA0006.eurprd04.prod.outlook.com (2603:10a6:206:1::19) by DBBPR08MB4361.eurprd08.prod.outlook.com (2603:10a6:10:c8::21) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.3283.15; Wed, 12 Aug 2020 15:22:59 +0000 Received: from AM5EUR03FT022.eop-EUR03.prod.protection.outlook.com (2603:10a6:206:1:cafe::65) by AM5PR04CA0006.outlook.office365.com (2603:10a6:206:1::19) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.3283.16 via Frontend Transport; Wed, 12 Aug 2020 15:22:59 +0000 X-MS-Exchange-Authentication-Results: spf=pass (sender IP is 63.35.35.123) smtp.mailfrom=arm.com; edk2.groups.io; dkim=pass (signature was verified) header.d=armh.onmicrosoft.com;edk2.groups.io; dmarc=bestguesspass action=none header.from=arm.com; Received-SPF: Pass (protection.outlook.com: domain of arm.com designates 63.35.35.123 as permitted sender) receiver=protection.outlook.com; client-ip=63.35.35.123; helo=64aa7808-outbound-1.mta.getcheckrecipient.com; Received: from 64aa7808-outbound-1.mta.getcheckrecipient.com (63.35.35.123) by AM5EUR03FT022.mail.protection.outlook.com (10.152.16.79) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.3283.16 via Frontend Transport; Wed, 12 Aug 2020 15:22:59 +0000 Received: ("Tessian outbound 7161e0c2a082:v64"); Wed, 12 Aug 2020 15:22:58 +0000 X-CheckRecipientChecked: true X-CR-MTA-CID: 301679b47698f026 X-CR-MTA-TID: 64aa7808 Received: from 683ef5d74b3f.1 by 64aa7808-outbound-1.mta.getcheckrecipient.com id 035022A6-05DC-4B3E-8D09-5D3E9E21F108.1; Wed, 12 Aug 2020 15:22:53 +0000 Received: from EUR02-AM5-obe.outbound.protection.outlook.com by 64aa7808-outbound-1.mta.getcheckrecipient.com with ESMTPS id 683ef5d74b3f.1 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-GCM-SHA384); Wed, 12 Aug 2020 15:22:53 +0000 ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=NBSyaHP4H9resy8gflC9ya4y/YbnV4QNOJNgdP93pReWS7aDURHgTfF0i/EPDxlr7JdnVBpiMoxqNPqiNhXU/MkQsl3BnZicMcqaaEZtuWIPKTjOVhf4o8MDDVlNc61UnUXBcz8kJ2UBqtQ57fLXHHf2P4Wlu41mt0GFZEiRo9EKNm9Q9byvBhjAdqDreyxoMVYrlQO0mR0e7j0FFDQk52FlxgAmDl3lSP2QN5L3+BHlHEYNkaefeZelo3qEY7jgcPSB2wsrKrKiPwVSW9+qbouNGhU648WoHbGn3yFw6xvKBxH293R+cRvjIM6viPwLwYGnwo0z3E/52UdvvS3tzg== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com; s=arcselector9901; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck; bh=eXwElLQbNmONyNKVHduRqkrXGG12ab5/G8o9s8yhYZg=; b=TRXfx2uyNXHE541or6t4Kg+b538Z1kjaf7qtnJ61utd00GEluGznRmupGY07oDCEQMq6ffnMZa12hUlXTX5b1TXHDPxGHYwA004+peJfDFVDXZ68EjJn/EC17hBxB1punGjjyOGdOonGnPtB+pxeWZt/j6e3M4qlrzJ0n9B0S2eI5/AwKNIsiAaB01A+wRBop304UWYc0+PDRurbQqwy3wkC7Y3IhLqu2axhYJTsR9W8xRvcn2M2primFTILQlgpdaR6aBYBV9OEzW7j621tBeysdq74b2R9OvdHz0Towm/AhCogGHdgaZLvl6fhir6IEBjm+NYUkJ//DYobhe5T7w== ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass (sender ip is 40.67.248.234) smtp.rcpttodomain=edk2.groups.io smtp.mailfrom=arm.com; dmarc=bestguesspass action=none header.from=arm.com; dkim=none (message not signed); arc=none DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=armh.onmicrosoft.com; s=selector2-armh-onmicrosoft-com; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck; bh=eXwElLQbNmONyNKVHduRqkrXGG12ab5/G8o9s8yhYZg=; b=tCyhk/KGaI/pUAY90W8wO8S3+DGAHpXJaINwWwk715NzG1CC+8Y53C+tnb11rEDlzWklSe39/GvnPio4iFXum8W6WQkqby9gDkdSEadiEAymk522ZtIAGayFPzX9c1x6CnUXbfax7OUSdkM7AfrWNWa2wNnoFh5AJmCCL0Mt2pw= Received: from DB8PR06CA0014.eurprd06.prod.outlook.com (2603:10a6:10:100::27) by DB7PR08MB3817.eurprd08.prod.outlook.com (2603:10a6:10:77::31) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.3261.17; Wed, 12 Aug 2020 15:22:52 +0000 Received: from DB5EUR03FT005.eop-EUR03.prod.protection.outlook.com (2603:10a6:10:100:cafe::56) by DB8PR06CA0014.outlook.office365.com (2603:10a6:10:100::27) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.3283.15 via Frontend Transport; Wed, 12 Aug 2020 15:22:51 +0000 X-MS-Exchange-Authentication-Results: spf=pass (sender IP is 40.67.248.234) smtp.mailfrom=arm.com; edk2.groups.io; dkim=none (message not signed) header.d=none;edk2.groups.io; dmarc=bestguesspass action=none header.from=arm.com; Received-SPF: Pass (protection.outlook.com: domain of arm.com designates 40.67.248.234 as permitted sender) receiver=protection.outlook.com; client-ip=40.67.248.234; helo=nebula.arm.com; Received: from nebula.arm.com (40.67.248.234) by DB5EUR03FT005.mail.protection.outlook.com (10.152.20.122) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256) id 15.20.3283.16 via Frontend Transport; Wed, 12 Aug 2020 15:22:51 +0000 Received: from AZ-NEU-EX01.Emea.Arm.com (10.251.26.4) by AZ-NEU-EX04.Arm.com (10.251.24.32) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_128_CBC_SHA256) id 15.1.2044.4; Wed, 12 Aug 2020 15:22:43 +0000 Received: from AZ-NEU-EX04.Arm.com (10.251.24.32) by AZ-NEU-EX01.Emea.Arm.com (10.251.26.4) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_128_CBC_SHA256_P256) id 15.1.1779.2; Wed, 12 Aug 2020 15:22:41 +0000 Received: from E107187.Arm.com (10.57.41.222) by mail.arm.com (10.251.24.32) with Microsoft SMTP Server id 15.1.2044.4 via Frontend Transport; Wed, 12 Aug 2020 15:22:41 +0000 From: "Sami Mujawar" To: CC: Sami Mujawar , , , , , , Subject: [PATCH v1 02/30] DynamicTablesPkg: AmlLib definitions Date: Wed, 12 Aug 2020 16:22:08 +0100 Message-ID: <20200812152236.31164-3-sami.mujawar@arm.com> X-Mailer: git-send-email 2.11.0.windows.3 In-Reply-To: <20200812152236.31164-1-sami.mujawar@arm.com> References: <20200812152236.31164-1-sami.mujawar@arm.com> MIME-Version: 1.0 X-EOPAttributedMessage: 1 X-MS-Office365-Filtering-HT: Tenant X-MS-PublicTrafficType: Email X-MS-Office365-Filtering-Correlation-Id: eaf5e734-46d6-4efc-a1c8-08d83ed39886 X-MS-TrafficTypeDiagnostic: DB7PR08MB3817:|DBBPR08MB4361: X-Microsoft-Antispam-PRVS: x-checkrecipientrouted: true NoDisclaimer: true X-MS-Oob-TLC-OOBClassifiers: OLM:9508;OLM:9508; X-MS-Exchange-SenderADCheck: 1 X-Microsoft-Antispam-Untrusted: BCL:0; X-Microsoft-Antispam-Message-Info-Original: PfHjn3FAWpsGhFnl6P1EztbkgaS5NMDRSeWsHHQ/doQeDJEKa0t0MVsvWK8cwlrIllE7sSbKRZqIDd2Q5vomhBZJm6qSxpPnGjW5lUqlJFNBL61edLcUct8Wgz9ijDBE7LighmW5dJ2vC4D8hOjOfNaucyLXR51pci879+4AbvhD9eHohUjg6MjQPr43apRqwdniO78rkUd+LivtthvUvu3d0UT03/YfSCqb+r4wuP9wjlZYV1amPe3MJrLUjAboSJTa1m4ir81WqXw8wyIQvOeggdI+lx0SXhQMD3bbXEzaQKGzgbXhF0yvZkOA1o4YFWzgUB7Sm9mdx4tCslmMbs52hzC+wMxkM+5cBtpZp4+WegQcHMdn5yYTQVSY5Dr7SPGOnAsfbYKb6TCoenmumw== X-Forefront-Antispam-Report-Untrusted: CIP:40.67.248.234;CTRY:IE;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:nebula.arm.com;PTR:InfoDomainNonexistent;CAT:NONE;SFTY:;SFS:(4636009)(376002)(39860400002)(346002)(396003)(136003)(46966005)(2616005)(2906002)(82740400003)(70206006)(26005)(36756003)(83380400001)(6666004)(356005)(186003)(4326008)(70586007)(81166007)(316002)(426003)(1076003)(86362001)(54906003)(8676002)(7696005)(5660300002)(478600001)(82310400002)(47076004)(8936002)(336012)(6916009)(44832011)(19627235002);DIR:OUT;SFP:1101; X-MS-Exchange-Transport-CrossTenantHeadersStamped: DB7PR08MB3817 Return-Path: Sami.Mujawar@arm.com X-MS-Exchange-Transport-CrossTenantHeadersStripped: AM5EUR03FT022.eop-EUR03.prod.protection.outlook.com X-MS-Office365-Filtering-Correlation-Id-Prvs: 4ee07bb0-cda5-4b60-340a-08d83ed393f0 X-Microsoft-Antispam: BCL:0; X-Microsoft-Antispam-Message-Info: cmwnGhgwkm5qRojyaE2Y0Dj+WOar+6Jb/UVfSkh5doiZZK2j/2Q1RciJtlv+tj4MMHubesJN/oLgogQCEa4r2LHD68d3QljZ2+sdsE17C7823ieGaxPjlAUBv/X9/qlIudT9pKaeeKMAw1PBASMN8OWdNIrI45yUtzym5KqEcLee2/lU9dk/XApD2AW+kTnkdqK5Jfs0s+puBRNh/gQ9Lo85mHdgjeSXzld+Iy69Rn6QVlmNZ4KgmTnm/+JCTkdL32OzRHnpQ8AOIkvM3ABawGfO2VffwXiRvwxKd0MEGWVMPwPBBwaAgZijVjI6yKs86ttbUE6Xr9lB/bVgnoNHtYUQG0G49nVHahVejI6OIM/xsgY+8RATh948AbqR+i1u2A8nXjK7nYVZLTaMxgpDwA== X-Forefront-Antispam-Report: CIP:63.35.35.123;CTRY:IE;LANG:en;SCL:1;SRV:;IPV:CAL;SFV:NSPM;H:64aa7808-outbound-1.mta.getcheckrecipient.com;PTR:ec2-63-35-35-123.eu-west-1.compute.amazonaws.com;CAT:NONE;SFS:(4636009)(346002)(376002)(136003)(396003)(39860400002)(46966005)(8676002)(8936002)(5660300002)(19627235002)(26005)(83380400001)(316002)(36906005)(70206006)(2906002)(54906003)(6666004)(70586007)(478600001)(6916009)(426003)(336012)(47076004)(82740400003)(82310400002)(81166007)(2616005)(1076003)(36756003)(44832011)(7696005)(186003)(86362001)(4326008);DIR:OUT;SFP:1101; X-OriginatorOrg: arm.com X-MS-Exchange-CrossTenant-OriginalArrivalTime: 12 Aug 2020 15:22:59.0127 (UTC) X-MS-Exchange-CrossTenant-Network-Message-Id: eaf5e734-46d6-4efc-a1c8-08d83ed39886 X-MS-Exchange-CrossTenant-Id: f34e5979-57d9-4aaa-ad4d-b122a662184d X-MS-Exchange-CrossTenant-OriginalAttributedTenantConnectingIp: TenantId=f34e5979-57d9-4aaa-ad4d-b122a662184d;Ip=[63.35.35.123];Helo=[64aa7808-outbound-1.mta.getcheckrecipient.com] X-MS-Exchange-CrossTenant-AuthSource: AM5EUR03FT022.eop-EUR03.prod.protection.outlook.com X-MS-Exchange-CrossTenant-AuthAs: Anonymous X-MS-Exchange-CrossTenant-FromEntityHeader: HybridOnPrem X-MS-Exchange-Transport-CrossTenantHeadersStamped: DBBPR08MB4361 Content-Type: text/plain From: Pierre Gondois Dynamic AML is a solution to generate Definition Block tables at runtime. Dynamic AML provides the following techniques for generating AML tables. - AML Fixup - AML Codegen - AML Fixup + Codegen AML fixup involves patching small sections of a template AML code at runtime, while AML Codegen provides APIs to generate small sections of AML code at runtime. A combination of Fixup and Codegen can also be used. AML has a complex grammar. To simplify the generation of AML tables, Dynamic AML introduces AmlLib that provides a rich set of APIs for parsing, traversing, fixup, codegen and serialisation of AML byte code. This patch introduces the definitions used by AmlLib. Signed-off-by: Pierre Gondois Signed-off-by: Sami Mujawar --- DynamicTablesPkg/Library/Common/AmlLib/AmlDefines.h | 188 ++++++++++++++++++++ DynamicTablesPkg/Library/Common/AmlLib/AmlInclude.h | 18 ++ 2 files changed, 206 insertions(+) diff --git a/DynamicTablesPkg/Library/Common/AmlLib/AmlDefines.h b/DynamicTablesPkg/Library/Common/AmlLib/AmlDefines.h new file mode 100644 index 0000000000000000000000000000000000000000..cbae14d78802005c9b7610e8085a484610e8b18f --- /dev/null +++ b/DynamicTablesPkg/Library/Common/AmlLib/AmlDefines.h @@ -0,0 +1,188 @@ +/** @file + AML Defines. + + Copyright (c) 2020, Arm Limited. All rights reserved.
+ + SPDX-License-Identifier: BSD-2-Clause-Patent +**/ + +#ifndef AML_DEFINES_H_ +#define AML_DEFINES_H_ + +/** + @defgroup TreeStructures Tree structures + @ingroup AMLLib + @{ + The AML tree created by the AMLLib relies on enum/define values and + structures defined here. + @} +*/ + +/** AML tree node types. + + Data nodes are tagged with the data type they contain. + Some data types cannot be used for data nodes (None, Object). + EAmlUIntX types are converted to the EAML_NODE_DATA_TYPE enum type. + These types are accessible externally. + + @ingroup TreeStructures +*/ +typedef enum EAmlNodeDataType { + EAmlNodeDataTypeNone = 0, ///< EAmlNone, not accessible. + EAmlNodeDataTypeReserved1, ///< EAmlUInt8, converted to the UInt type. + EAmlNodeDataTypeReserved2, ///< EAmlUInt16, converted to the UInt type. + EAmlNodeDataTypeReserved3, ///< EAmlUInt32, converted to the UInt type. + EAmlNodeDataTypeReserved4, ///< EAmlUInt64, converted to the UInt type. + EAmlNodeDataTypeReserved5, ///< EAmlObject, not accessible. + EAmlNodeDataTypeNameString, ///< EAmlName, name corresponding to the + /// NameString keyword in the ACPI + /// specification. E.g.: "\_SB_.DEV0" + EAmlNodeDataTypeString, ///< EAmlString, NULL terminated string. + EAmlNodeDataTypeUInt, ///< Integer data of any length, EAmlUIntX + /// are converted to this type. + EAmlNodeDataTypeRaw, ///< Raw bytes contained in a buffer. + EAmlNodeDataTypeResourceData, ///< Resource data element. + EAmlNodeDataTypeFieldPkgLen, ///< FieldPkgLen data element. + /// PkgLen are usually stored as + /// part of object node structures. + /// However, they can be found + /// standalone in a FieldList. + EAmlNodeDataTypeMax ///< Max enum. +} EAML_NODE_DATA_TYPE; + +/** Indexes of fixed arguments. + + AML objects defined the ACPI 6.3 specification, + s20.3 "AML Byte Stream Byte Values" can have at most 6 fixed arguments. + + Method and functions can have at most 7 arguments, cf + s19.6.83 "Method (Declare Control Method)". The enum goes to 8 to store the + name of the method invocation. + + @ingroup TreeStructures +*/ +typedef enum EAmlParseIndex { + EAmlParseIndexTerm0 = 0, ///< First fixed argument index. + EAmlParseIndexTerm1, ///< Second fixed argument index. + EAmlParseIndexTerm2, ///< Third fixed argument index. + EAmlParseIndexTerm3, ///< Fourth fixed argument index. + EAmlParseIndexTerm4, ///< Fifth fixed argument index. + EAmlParseIndexTerm5, ///< Sixth fixed argument index. + EAmlParseIndexMax ///< Maximum fixed argument index (=6). +} EAML_PARSE_INDEX; + +/** Maximum size of an AML NameString. + + An AML NameString can be at most (255 * 4) + 255 + 2 = 1277 bytes long. + Indeed, according to ACPI 6.3 specification, s20.2.2, + an AML NameString can be resolved as a MultiNamePath. + + The encoding of this MultiNamePath can be made of at most: + - 255 carets ('^'), one for each level in the namespace; + - 255 NameSeg of 4 bytes; + - 2 bytes for the MultiNamePrefix and SegCount. + + @ingroup TreeStructures +*/ +#define MAX_AML_NAMESTRING_SIZE 1277U + +/** Maximum size of an ASL NameString. + + An ASL NameString can be at most (255 * 4) + 255 + 254 = 1529 bytes long. + Cf the ASL grammar available in ACPI 6.3 specification, 19.2.2. + + The encoding of an ASL NameString can be made of at most: + - 255 carets ('^'), one for each level in the namespace; + - 255 NameSeg of 4 bytes; + - 254 NameSeg separators ('.'). + + @ingroup TreeStructures +*/ +#define MAX_ASL_NAMESTRING_SIZE 1529U + +/** Pseudo OpCode for method invocations. + + The AML grammar does not attribute an OpCode/SubOpCode couple for + method invocations. This library is representing method invocations + as if they had one. + + The AML encoding for method invocations in the ACPI specification 6.3 is: + MethodInvocation := NameString TermArgList + In this library, it is: + MethodInvocation := MethodInvocationOp NameString ArgumentCount TermArgList + ArgumentCount := ByteData + + When computing the size of a tree or serializing it, the additional data is + not taken into account (i.e. the MethodInvocationOp and the ArgumentCount). + + @ingroup TreeStructures +*/ +#define AML_METHOD_INVOC_OP 0xD0 + +/** Pseudo OpCode for NamedField field elements. + + The AML grammar does not attribute an OpCode/SubOpCode couple for + the NamedField field element. This library is representing NamedField field + elements as if they had one. + + The AML encoding for NamedField field elements in the ACPI specification 6.3 + is: + NamedField := NameSeg PkgLength + In this library, it is: + NamedField := NamedFieldOp NameSeg PkgLength + + When computing the size of a tree or serializing it, the additional data is + not taken into account (i.e. the NamedFieldOp). + + @ingroup TreeStructures +*/ +#define AML_FIELD_NAMED_OP 0x04 + +/** Size of a NameSeg. + Cf. ACPI 6.3 specification, s20.2. + + @ingroup TreeStructures +*/ + #define AML_NAME_SEG_SIZE 4U + +/** AML object types. + + The ACPI specification defines several object types. They are listed + with the definition of ObjectTypeKeyword. + + @ingroup TreeStructures +*/ +typedef enum EAmlObjType { + EAmlObjTypeUnknown = 0x0, + EAmlObjTypeInt, + EAmlObjTypeStrObj, + EAmlObjTypeBuffObj, + EAmlObjTypePkgObj, + EAmlObjTypeFieldUnitObj, + EAmlObjTypeDeviceObj, + EAmlObjTypeEventObj, + EAmlObjTypeMethodObj, + EAmlObjTypeMutexObj, + EAmlObjTypeOpRegionObj, + EAmlObjTypePowerResObj, + EAmlObjTypeProcessorObj, + EAmlObjTypeThermalZoneObj, + EAmlObjTypeBuffFieldObj, + EAmlObjTypeDDBHandleObj, +} EAML_OBJ_TYPE; + +/** Node types. + + @ingroup TreeStructures +*/ +typedef enum EAmlNodeType { + EAmlNodeUnknown, ///< Unknown/Invalid AML Node Type. + EAmlNodeRoot, ///< AML Root Node, typically represents a DefinitionBlock. + EAmlNodeObject, ///< AML Object Node, typically represents an ASL statement + /// or its arguments. + EAmlNodeData, ///< AML Data Node, typically represents arguments for an + /// ASL statement. + EAmlNodeMax ///< Max enum. +} EAML_NODE_TYPE; + +#endif // AML_DEFINES_H_ diff --git a/DynamicTablesPkg/Library/Common/AmlLib/AmlInclude.h b/DynamicTablesPkg/Library/Common/AmlLib/AmlInclude.h new file mode 100644 index 0000000000000000000000000000000000000000..274482f0d1244cdabc5436c5542a2b829083ae93 --- /dev/null +++ b/DynamicTablesPkg/Library/Common/AmlLib/AmlInclude.h @@ -0,0 +1,18 @@ +/** @file + AML Include file + + Copyright (c) 2019 - 2020, Arm Limited. All rights reserved.
+ + SPDX-License-Identifier: BSD-2-Clause-Patent +**/ + +#ifndef AML_INCLUDE_H_ +#define AML_INCLUDE_H_ + +#include +#include +#include +#include +#include + +#endif // AML_INCLUDE_H_ -- 'Guid(CE165669-3EF3-493F-B85D-6190EE5B9759)'