AARCHMRS Schema 2.5.3

↚ Home

Features object

The Features schema describes how to define dependencies in the architecture. To understand how a Features schema is used please see the Features userguide.

object

Properties Type Description
_meta Meta
See Meta for more information.
_type
Enum
Features
constraints Traits.HasConstraints

Globally defined constraints.

See definitions.constraints in Traits.HasConstraints for more information.
Examples
[
    {
        "_type": "AST.BinaryOp", 
        "left": {
            "_type": "AST.Identifier", 
            "value": "FEAT_A"
        }, 
        "op": "-->", 
        "right": {
            "_type": "AST.Identifier", 
            "value": "v8Ap2"
        }
    }, 
    {
        "_type": "AST.BinaryOp", 
        "left": {
            "_type": "AST.Identifier", 
            "value": "FEAT_A"
        }, 
        "op": "<->", 
        "right": {
            "_type": "AST.BinaryOp", 
            "left": {
                "_type": "Types.Field", 
                "value": {
                    "state": "AArch64", 
                    "name": "IDREG", 
                    "field": "A"
                }
            }, 
            "op": "==", 
            "right": {
                "_type": "Values.Value", 
                "value": "'0001'"
            }
        }
    }
]
parameters Parameterset

List of parameters used to facilitate Architecture configurability.

See Parameterset for more information.
Examples
[
    {
        "_type": "Parameters.Boolean", 
        "name": "v8Ap1"
    }, 
    {
        "_type": "Parameters.Boolean", 
        "name": "v8Ap2"
    }, 
    {
        "_type": "Parameters.Boolean", 
        "name": "FEAT_A", 
        "constraints": [
            {
                "_type": "AST.BinaryOp", 
                "left": {
                    "_type": "AST.Identifier", 
                    "value": "FEAT_A"
                }, 
                "op": "-->", 
                "right": {
                    "_type": "AST.Identifier", 
                    "value": "v8Ap2"
                }
            }, 
            {
                "_type": "AST.BinaryOp", 
                "left": {
                    "_type": "AST.Identifier", 
                    "value": "FEAT_A"
                }, 
                "op": "<->", 
                "right": {
                    "_type": "AST.BinaryOp", 
                    "left": {
                        "_type": "Types.Field", 
                        "value": {
                            "state": "AArch64", 
                            "name": "IDREG", 
                            "field": "A"
                        }
                    }, 
                    "op": "==", 
                    "right": {
                        "_type": "Values.Value", 
                        "value": "'0001'"
                    }
                }
            }
        ]
    }
]
Additional Properties
Not Allowed
◊ Required
Properties marked with ◊ are required properties.

Schema http://json-schema.org/draft-04/schema#

{
  "$schema": "http://json-schema.org/draft-04/schema#",
  "info": [
    [
      "The $(Features) schema describes how to define dependencies in the architecture.",
      "To understand how a $(Features) schema is used please see [the Features userguide](./userguide/features.html)."
    ]
  ],
  "properties": {
    "_meta": {
      "$ref": "Meta.json"
    },
    "_type": {
      "enum": [
        "Features"
      ]
    },
    "parameters": {
      "info": [
        "List of parameters used to facilitate Architecture configurability."
      ],
      "$ref": "Parameterset.json",
      "examples": [
        [
          {
            "_type": "Parameters.Boolean",
            "name": "v8Ap1"
          },
          {
            "_type": "Parameters.Boolean",
            "name": "v8Ap2"
          },
          {
            "_type": "Parameters.Boolean",
            "name": "FEAT_A",
            "constraints": [
              {
                "_type": "AST.BinaryOp",
                "left": {
                  "_type": "AST.Identifier",
                  "value": "FEAT_A"
                },
                "op": "-->",
                "right": {
                  "_type": "AST.Identifier",
                  "value": "v8Ap2"
                }
              },
              {
                "_type": "AST.BinaryOp",
                "left": {
                  "_type": "AST.Identifier",
                  "value": "FEAT_A"
                },
                "op": "<->",
                "right": {
                  "_type": "AST.BinaryOp",
                  "left": {
                    "_type": "Types.Field",
                    "value": {
                      "state": "AArch64",
                      "name": "IDREG",
                      "field": "A"
                    }
                  },
                  "op": "==",
                  "right": {
                    "_type": "Values.Value",
                    "value": "'0001'"
                  }
                }
              }
            ]
          }
        ]
      ]
    },
    "constraints": {
      "$ref": "Traits/HasConstraints.json#/definitions/constraints",
      "info": [
        "Globally defined constraints."
      ],
      "examples": [
        [
          {
            "_type": "AST.BinaryOp",
            "left": {
              "_type": "AST.Identifier",
              "value": "FEAT_A"
            },
            "op": "-->",
            "right": {
              "_type": "AST.Identifier",
              "value": "v8Ap2"
            }
          },
          {
            "_type": "AST.BinaryOp",
            "left": {
              "_type": "AST.Identifier",
              "value": "FEAT_A"
            },
            "op": "<->",
            "right": {
              "_type": "AST.BinaryOp",
              "left": {
                "_type": "Types.Field",
                "value": {
                  "state": "AArch64",
                  "name": "IDREG",
                  "field": "A"
                }
              },
              "op": "==",
              "right": {
                "_type": "Values.Value",
                "value": "'0001'"
              }
            }
          }
        ]
      ]
    }
  },
  "title": "Features",
  "type": "object",
  "additionalProperties": false
}