AARCHMRS Schema 2.7.4

↚ Home

Fields.Vector object

Field vector is a rolled up representation of an array of fields with a variable size.

Unused space is denoted by the reserved_type property.

object

Properties Type Description
_meta Meta
See Meta for more information.
_type
Enum
Fields.Vector
access Traits.HasFieldAccess
See definitions.access in Traits.HasFieldAccess for more information.
Default
null
description Traits.HasDescription
See properties.description in Field for more information.
display
  • string
  • null
See properties.display in Field for more information.
Default
null
index_variable Traits.HasIndexes
See definitions.index_variable in Traits.HasIndexes for more information.
indexes Traits.HasIndexes
See definitions.indexes in Traits.HasIndexes for more information.
name Array
See properties.name in Array for more information.
rangeset Rangeset
See properties.rangeset in Field for more information.
reserved_type
oneOf [
null
]

This is used to represent the access behavior of the space not utilised by the vector.

oneOf null
resets FieldResets
See properties.resets in Field for more information.
size
array [
]

This holds the size of the vector, which can be conditional. And the size itself can be an expression.

values Valuesets.ValuesetAbstract

A set of Value objects. Each object indicates one of the valid values that may be present in an element of this field, along with a textual description of its meaning.

See definitions.children in Valuesets.ValuesetAbstract for more information.
volatile
  • boolean
See properties.volatile in Field for more information.
Additional Properties
Not Allowed
◊ Required
Properties marked with ◊ are required properties.
Examples
{
    "_type": "Fields.Vector", 
    "name": "C<x>", 
    "rangeset": [
        {
            "_type": "Range", 
            "start": 0, 
            "width": 32
        }
    ], 
    "indexes": [
        {
            "_type": "Range", 
            "start": 0, 
            "width": 4
        }
    ], 
    "index_variable": "x", 
    "size": [
        {
            "condition": {
                "_type": "AST.Function", 
                "arguments": [
                    {
                        "_type": "AST.Identifier", 
                        "value": "EL2"
                    }
                ], 
                "name": "HaveEL"
            }, 
            "value": {
                "_type": "Types.Field", 
                "value": {
                    "field": "BAR", 
                    "instance": null, 
                    "name": "FOO", 
                    "slices": null, 
                    "state": "AArch64"
                }
            }
        }, 
        {
            "condition": {
                "_type": "AST.Bool", 
                "value": true
            }, 
            "value": {
                "_type": "AST.Integer", 
                "value": 4
            }
        }
    ]
}
{
    "_type": "Fields.Vector", 
    "access": null, 
    "display": null, 
    "index_variable": "x", 
    "indexes": [
        {
            "_type": "Range", 
            "start": 0, 
            "width": 2
        }
    ], 
    "name": "Pasta<m>", 
    "rangeset": [
        {
            "_type": "Range", 
            "start": 10, 
            "width": 4
        }
    ], 
    "reserved_type": "RES0", 
    "resets": {
        "_type": "FieldResets", 
        "domains": {}, 
        "text": null
    }, 
    "size": [
        {
            "condition": {
                "_type": "AST.Function", 
                "arguments": [
                    {
                        "_type": "AST.Identifier", 
                        "value": "EL2"
                    }
                ], 
                "name": "HaveEL"
            }, 
            "value": {
                "_type": "Types.Field", 
                "value": {
                    "field": "BAR", 
                    "instance": null, 
                    "name": "FOO", 
                    "slices": null, 
                    "state": "AArch64"
                }
            }
        }, 
        {
            "condition": {
                "_type": "AST.Bool", 
                "value": true
            }, 
            "value": {
                "_type": "AST.Integer", 
                "value": 4
            }
        }
    ], 
    "values": {
        "_type": "Valuesets.Values", 
        "values": []
    }, 
    "volatile": false
}

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

{
  "info": [
    "Field vector is a rolled up representation of an array of fields with a variable size.",
    "Unused space is denoted by the `reserved_type` property."
  ],
  "examples": [
    {
      "_type": "Fields.Vector",
      "name": "C",
      "rangeset": [
        {
          "_type": "Range",
          "start": 0,
          "width": 32
        }
      ],
      "indexes": [
        {
          "_type": "Range",
          "start": 0,
          "width": 4
        }
      ],
      "index_variable": "x",
      "size": [
        {
          "condition": {
            "_type": "AST.Function",
            "arguments": [
              {
                "_type": "AST.Identifier",
                "value": "EL2"
              }
            ],
            "name": "HaveEL"
          },
          "value": {
            "_type": "Types.Field",
            "value": {
              "field": "BAR",
              "instance": null,
              "name": "FOO",
              "slices": null,
              "state": "AArch64"
            }
          }
        },
        {
          "condition": {
            "_type": "AST.Bool",
            "value": true
          },
          "value": {
            "_type": "AST.Integer",
            "value": 4
          }
        }
      ]
    },
    {
      "_type": "Fields.Vector",
      "access": null,
      "display": null,
      "index_variable": "x",
      "indexes": [
        {
          "_type": "Range",
          "start": 0,
          "width": 2
        }
      ],
      "name": "Pasta",
      "rangeset": [
        {
          "_type": "Range",
          "start": 10,
          "width": 4
        }
      ],
      "reserved_type": "RES0",
      "resets": {
        "_type": "FieldResets",
        "domains": {},
        "text": null
      },
      "size": [
        {
          "condition": {
            "_type": "AST.Function",
            "arguments": [
              {
                "_type": "AST.Identifier",
                "value": "EL2"
              }
            ],
            "name": "HaveEL"
          },
          "value": {
            "_type": "Types.Field",
            "value": {
              "field": "BAR",
              "instance": null,
              "name": "FOO",
              "slices": null,
              "state": "AArch64"
            }
          }
        },
        {
          "condition": {
            "_type": "AST.Bool",
            "value": true
          },
          "value": {
            "_type": "AST.Integer",
            "value": 4
          }
        }
      ],
      "values": {
        "_type": "Valuesets.Values",
        "values": []
      },
      "volatile": false
    }
  ],
  "properties": {
    "_meta": {
      "$ref": "../Meta.json"
    },
    "_type": {
      "enum": [
        "Fields.Vector"
      ]
    },
    "access": {
      "default": null,
      "$ref": "../Traits/HasFieldAccess.json#/definitions/access"
    },
    "description": {
      "$ref": "../Traits/HasDescription.json#/definitions/description",
      "see": "Field.json"
    },
    "display": {
      "see": "Field.json",
      "type": [
        "string",
        "null"
      ],
      "default": null
    },
    "volatile": {
      "see": "Field.json",
      "type": "boolean"
    },
    "name": {
      "see": "Array.json",
      "$ref": "Array.json#/properties/name"
    },
    "rangeset": {
      "$ref": "../Rangeset.json",
      "see": "Field.json"
    },
    "reserved_type": {
      "info": [
        "This is used to represent the access behavior of the space not utilised by the vector."
      ],
      "oneOf": [
        {
          "$ref": "../Enums/ReservedTypes.json"
        },
        {
          "type": "null"
        }
      ]
    },
    "resets": {
      "$ref": "../FieldResets.json",
      "see": "Field.json"
    },
    "size": {
      "additionalItems": false,
      "info": [
        "This holds the size of the vector, which can be conditional. And the size itself can be an expression."
      ],
      "items": {
        "properties": {
          "condition": {
            "$ref": "../Traits/HasCondition.json#/definitions/condition"
          },
          "value": {
            "$ref": "../AST/BinaryOp.json#/definitions/expression"
          }
        },
        "required": [
          "value"
        ],
        "type": "object"
      },
      "minItems": 1,
      "type": "array"
    },
    "indexes": {
      "$ref": "../Traits/HasIndexes.json#/definitions/indexes"
    },
    "index_variable": {
      "$ref": "../Traits/HasIndexes.json#/definitions/index_variable"
    },
    "values": {
      "$ref": "../Valuesets/ValuesetAbstract.json#/definitions/children",
      "info": [
        "A set of __Value__ objects.  Each object indicates one of the valid values that may be present in an element of this field, along with a textual description of its meaning."
      ]
    }
  },
  "required": [
    "name",
    "rangeset",
    "indexes",
    "size",
    "index_variable"
  ],
  "title": "Vector",
  "type": "object",
  "$schema": "http://json-schema.org/draft-04/schema#",
  "additionalProperties": false
}