AARCHMRS Schema 2.9.6

↚ 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
}