DynamicTablesPkg[all]  1.0
 All Data Structures Files Functions Variables Typedefs Enumerations Enumerator Macros Groups Pages
ConfigurationManagerObject.h File Reference

Data Structures

struct  CmObjDescriptor
 

Macros

#define OBJECT_ID_MASK   0xFF
 
#define NAMESPACE_ID_MASK   0xF
 
#define NAMESPACE_ID_BIT_SHIFT   28
 
#define GET_CM_NAMESPACE_ID(CmObjectId)
 
#define GET_CM_OBJECT_ID(CmObjectId)   ((CmObjectId) & OBJECT_ID_MASK)
 
#define CREATE_CM_OBJECT_ID(NameSpaceId, ObjectId)
 
#define CREATE_CM_STD_OBJECT_ID(ObjectId)   (CREATE_CM_OBJECT_ID (EObjNameSpaceStandard, ObjectId))
 
#define CREATE_CM_ARM_OBJECT_ID(ObjectId)   (CREATE_CM_OBJECT_ID (EObjNameSpaceArm, ObjectId))
 
#define CREATE_CM_OEM_OBJECT_ID(ObjectId)   (CREATE_CM_OBJECT_ID (EObjNameSpaceOem, ObjectId))
 

Typedefs

typedef UINT32 CM_OBJECT_ID
 
typedef enum ObjectNameSpaceID EOBJECT_NAMESPACE_ID
 
typedef struct CmObjDescriptor CM_OBJ_DESCRIPTOR
 

Enumerations

enum  ObjectNameSpaceID { EObjNameSpaceStandard, EObjNameSpaceArm, EObjNameSpaceOem = 0x8, EObjNameSpaceMax }
 

Detailed Description

Copyright (c) 2017 - 2019, ARM Limited. All rights reserved.

SPDX-License-Identifier: BSD-2-Clause-Patent

Glossary:
  • Cm or CM - Configuration Manager
  • Obj or OBJ - Object

Macro Definition Documentation

#define CREATE_CM_ARM_OBJECT_ID (   ObjectId)    (CREATE_CM_OBJECT_ID (EObjNameSpaceArm, ObjectId))

This macro returns a Configuration Manager Object ID in the ARM Object Namespace.

Parameters
[in]ObjectIdThe Object ID.
Return values
Returnsan ARM Configuration Manager Object ID.
#define CREATE_CM_OBJECT_ID (   NameSpaceId,
  ObjectId 
)
Value:
((((NameSpaceId) & NAMESPACE_ID_MASK) << NAMESPACE_ID_BIT_SHIFT) | \
((ObjectId) & OBJECT_ID_MASK))
#define NAMESPACE_ID_BIT_SHIFT
Definition: ConfigurationManagerObject.h:97
#define NAMESPACE_ID_MASK
Definition: ConfigurationManagerObject.h:93
#define OBJECT_ID_MASK
Definition: ConfigurationManagerObject.h:89

This macro returns a Configuration Manager Object ID from the NameSpace ID and the ObjectID.

Parameters
[in]NameSpaceIdThe namespace ID for the Object.
[in]ObjectIdThe Object ID.
Return values
Returnsthe Configuration Manager Object ID.
#define CREATE_CM_OEM_OBJECT_ID (   ObjectId)    (CREATE_CM_OBJECT_ID (EObjNameSpaceOem, ObjectId))

This macro returns a Configuration Manager Object ID in the OEM Object Namespace.

Parameters
[in]ObjectIdThe Object ID.
Return values
Returnsan OEM Configuration Manager Object ID.
#define CREATE_CM_STD_OBJECT_ID (   ObjectId)    (CREATE_CM_OBJECT_ID (EObjNameSpaceStandard, ObjectId))

This macro returns a Configuration Manager Object ID in the Standard Object Namespace.

Parameters
[in]ObjectIdThe Object ID.
Return values
Returnsa Standard Configuration Manager Object ID.
#define GET_CM_NAMESPACE_ID (   CmObjectId)
Value:
IN CONST CM_OBJECT_ID CmObjectId
Definition: ConfigurationManagerProtocol.h:60
#define NAMESPACE_ID_BIT_SHIFT
Definition: ConfigurationManagerObject.h:97
#define NAMESPACE_ID_MASK
Definition: ConfigurationManagerObject.h:93

This macro returns the namespace ID from the CmObjectID.

Parameters
[in]CmObjectIdThe Configuration Manager Object ID.
Return values
Returnsthe Namespace ID corresponding to the CmObjectID.
#define GET_CM_OBJECT_ID (   CmObjectId)    ((CmObjectId) & OBJECT_ID_MASK)

This macro returns the Object ID from the CmObjectID.

Parameters
[in]CmObjectIdThe Configuration Manager Object ID.
Return values
Returnsthe Object ID corresponding to the CmObjectID.
#define NAMESPACE_ID_BIT_SHIFT   28

Starting bit position for Namespace ID

#define NAMESPACE_ID_MASK   0xF

A mask for Namespace ID

#define OBJECT_ID_MASK   0xFF

A mask for Object ID

Typedef Documentation

A descriptor for Configuration Manager Objects.

The Configuration Manager Protocol interface uses this descriptor to return the Configuration Manager Objects.

typedef UINT32 CM_OBJECT_ID

The CM_OBJECT_ID type is used to identify the Configuration Manager objects.

Description of Configuration Manager Object ID


|31 |30 |29 |28 || 27 | 26 | 25 | 24 || 23 | 22 | 21 | 20 || 19 | 18 | 17 | 16|

| Name Space ID || 0 | 0 | 0 | 0 || 0 | 0 | 0 | 0 || 0 | 0 | 0 | 0|


Bits: [31:28] - Name Space ID 0000 - Standard 0001 - ARM 1000 - Custom/OEM All other values are reserved.

Bits: [27:16] - Reserved.


|15 |14 |13 |12 || 11 | 10 | 9 | 8 || 7 | 6 | 5 | 4 || 3 | 2 | 1 | 0|

| 0 | 0 | 0 | 0 || 0 | 0 | 0 | 0 || Object ID |


Bits: [15:8] - Are reserved and must be zero.

Bits: [7:0] - Object ID

Object ID's in the Standard Namespace: 0 - Configuration Manager Revision 1 - ACPI Table List 2 - SMBIOS Table List

Object ID's in the ARM Namespace: 0 - Reserved 1 - Boot Architecture Info 2 - CPU Info 3 - Power Management Profile Info 4 - GICC Info 5 - GICD Info 6 - GIC MSI Frame Info 7 - GIC Redistributor Info 8 - GIC ITS Info 9 - Serial Console Port Info 10 - Serial Debug Port Info 11 - Generic Timer Info 12 - Platform GT Block Info 13 - Generic Timer Block Frame Info 14 - Platform Generic Watchdog 15 - PCI Configuration Space Info 16 - Hypervisor Vendor Id 17 - Fixed feature flags for FADT 18 - ITS Group 19 - Named Component 20 - Root Complex 21 - SMMUv1 or SMMUv2 22 - SMMUv3 23 - PMCG 24 - GIC ITS Identifier Array 25 - ID Mapping Array 26 - SMMU Interrupt Array 27 - Processor Hierarchy Info 28 - Cache Info 29 - Processor Hierarchy Node ID Info 30 - CM Object Reference

The EOBJECT_NAMESPACE_ID enum describes the defined namespaces for the Configuration Manager Objects.

Enumeration Type Documentation

The EOBJECT_NAMESPACE_ID enum describes the defined namespaces for the Configuration Manager Objects.

Enumerator
EObjNameSpaceStandard 

Standard Objects Namespace.

EObjNameSpaceArm 

ARM Objects Namespace.

EObjNameSpaceOem 

OEM Objects Namespace.

EObjNameSpaceMax