B.2.2 CADIRegInfo_t

This struct defines information about a register.

struct CADIRegInfo_t 
{ 
public: // methods 
    CADIRegInfo_t(const char *name_par = "",
                  const char *description_par = "", 
                  uint32_t regNumber = 0,
                  uint32_t bitsWide = 0, 
                  int32_t hasSideEffects = 0, 
                  CADIRegDetails_t details = CADIRegDetails_t(), 
                  CADIRegDisplay_t display = CADI_REGTYPE_HEX, 
                  CADIRegSymbols_t symbols = CADIRegSymbols_t(), 
                  CADIRegFloatFormat_t fpFormat = CADIRegFloatFormat_t(), 
                  uint32_t lsbOffset = 0, uint32_t dwarfIndex = ~0U, 
                  bool isProfiled = false, bool isPipeStageField = false, 
                  uint32_t threadID = 0, 
                  CADIRegAccessAttribute_t attribute = CADI_REG_READ_WRITE, 
                  uint32_t canonicalRegisterNumber_ = 0): 
            regNumber(regNumber),
            bitsWide(bitsWide), 
            hasSideEffects(hasSideEffects),
            details(details),
            display(display), 
            symbols(symbols),
            fpFormat(fpFormat),
            lsbOffset(lsbOffset), 
            dwarfIndex(dwarfIndex),
            isProfiled(isProfiled), 
            isPipeStageField(isPipeStageField),
            threadID(threadID), 
            attribute(attribute),
            canonicalRegisterNumber(canonicalRegisterNumber_) 
        { 
            AssignString(name, name_par, CADI_NAME_SIZE); 
            AssignString(description, description_par, CADI_DESCRIPTION_SIZE); 
        } 
public: // data 
        char              name[CADI_NAME_SIZE]; 
        char              description[CADI_DESCRIPTION_SIZE]; 
        uint32_t          regNumber;
        uint32_t          bitsWide; 
        int32_t           hasSideEffects; 
        CADIRegDetails_t  details; 
        CADIRegDisplay_t  display; 
        CADIRegSymbols_t  symbols;  
        CADIRegFloatFormat_t  fpFormat; 
        uint32_t          lsbOffset;  
        enum { CADI_REGINFO_NO_DWARF_INDEX = 0xffffffff }; 
        uint32_t          dwarfIndex; 
        bool              isPipeStageField; 
        uint32_t          threadID;  
        CADIRegAccessAttribute_t attribute; 
        uint32_t          canonicalRegisterNumber;
};
name
are the names in the info array.
description
are the descriptions in the array.
regNumber
is the register ID. Used by read/write functions to identify the register.
bitsWide
is the bitwidth of non-string register. Ignored for string registers (targets must specify 0 for string registers).
hasSideEffects
is reserved. Targets must set this parameter to 0 for all registers.
details

is of type CADIRegDetails_t, and used to form the Register/SubRegister/SubSubRegister hierarchy. It has two fields:

  • Simple (contains no subregisters).
  • Compound (contains subregisters).

The two register types work with CADIRegGetCompound().

display
is the display format. The default is "HEX".
symbols
used for type "symbolic" only.
fpFormat
used for type "float" only.
lsbOffset
is the offset of the least significant bit relative to bit 0 in the parent register (or 0 if there is no parent).
dwarfIndex
is the DWARF register index or, if the register has no DWARF register index CADI_REGINFO_NO_DWARF_INDEX.
isProfiled
indicates that profiling info is available.
isPipeStageField
is pipe stage field, also true for pc and contentInfoRegisterId in CADIPipeStage_t.
threadID
is the hardware thread ID, always set to 0.
attribute
are the register access attributes.
canonicalRegisterNumber
is the canonical register number as defined by the scheme that is specified in CADITargetFeatures_t::canonicalRegisterDescription. If the scheme is the empty string, then no meaning can be ascribed to this field.
Non-ConfidentialPDF file icon PDF versionARM 100963_0200_00_en
Copyright © 2014–2017 ARM Limited or its affiliates. All rights reserved.