1 #ifndef TEMU_REGISTER_H
2 #define TEMU_REGISTER_H
78 uint32_t DeviceOffset, uint32_t Stride);
80 #define TEMU_FIELD_WR (1 << 0)
81 #define TEMU_FIELD_WARM_RESET (1 << 1)
101 uint64_t ColdReset, uint64_t WarmReset,
102 uint64_t Flags,
const char *Doc);
206 const char *FieldName);
217 const char *FieldName, uint64_t Value);
226 const char *FieldName, uint64_t Value);
TEMU_API uint64_t temu_getFieldMask(temu_Field *Field)
temu_getFieldMask Get field mask
void(* temu_PropWriter)(void *Obj, temu_Propval Pv, int Idx)
TEMU_API int temu_getRegisterBanks(temu_Class *C, unsigned Idx, unsigned Length, temu_RegisterBank **Banks)
temu_getRegisterBanks Get all register banks of a class
TEMU_API uint64_t temu_getRegisterWriteMask(temu_Register *Reg)
temu_getRegisterWriteMask Get the current write mask of a register
TEMU_API int temu_getFields(temu_Register *R, unsigned Idx, unsigned Length, temu_Field **Fields)
temu_getFields Get all fields of a register
TEMU_API uint64_t temu_getFieldValue(void *Obj, const char *RegName, const char *FieldName)
temu_getFieldValue Retrieve the value of a field in a register
TEMU_API const char * temu_getFieldDocs(temu_Field *R)
temu_getFieldDocs Get the documentation of a field as a C-string
TEMU_API temu_Field * temu_getField(temu_Register *R, const char *Name)
temu_getField Get a field of a register
TEMU_API temu_Register * temu_getRegister(temu_RegisterBank *Bank, const char *Name)
temu_getRegister Get a register from a register bank by name
TEMU_API uint64_t temu_getRegisterWarmResetValue(temu_Register *Reg)
struct temu_Field temu_Field
TEMU_API temu_RegisterBank * temu_getRegisterBank(temu_Class *C, const char *Name)
temu_getRegisterBank Get a register bank from a class by name
TEMU_API uint64_t temu_getRegisterReadMask(temu_Register *Reg)
temu_getRegisterReadMask Get the current read mask of a register
TEMU_API int temu_getRegisters(temu_RegisterBank *Bank, unsigned Idx, unsigned Length, temu_Register **Regs)
temu_getRegisters Get all or chunk of registers from a bank
TEMU_API const char * temu_getRegisterDocs(temu_Register *R)
temu_getRegisterDocs Get the documentation of a register as a string
TEMU_API uint64_t temu_getRegisterColdResetValue(temu_Register *Reg)
struct temu_Register temu_Register
TEMU_API temu_Register * temu_addRegister(temu_RegisterBank *Bank, const char *Name, int Offset, temu_Type Typ, int Count, temu_PropWriter Wr, temu_PropReader Rd, const char *Doc, uint32_t DeviceOffset, uint32_t Stride)
temu_Propval(* temu_PropReader)(void *Obj, int Idx)
TEMU_API int temu_setFieldValue(void *Obj, const char *RegName, const char *FieldName, uint64_t Value)
temu_setFieldValue Set a field's value in a register
TEMU_API const char * temu_getRegisterName(temu_Register *R)
temu_getRegisterName Retrieve register name from pointer
TEMU_API temu_RegisterBank * temu_addRegisterBank(temu_Class *C, const char *Name, temu_MemAccessIface *MemAccessIface)
temu_addRegisterBank Adds a register bank to a T-EMU class
TEMU_API int temu_writeFieldValue(void *Obj, const char *RegName, const char *FieldName, uint64_t Value)
temu_writeFieldValue Set a field's value in a register with side-effects
TEMU_API void temu_addField(temu_Register *R, const char *Name, uint64_t Mask, uint64_t ColdReset, uint64_t WarmReset, uint64_t Flags, const char *Doc)
struct temu_RegisterBank temu_RegisterBank
TEMU_API const char * temu_getRegisterBankName(temu_RegisterBank *Bank)
temu_getRegisterBankName Retrieves the register bank name from its object
TEMU_API const char * temu_getFieldName(temu_Field *R)
temu_getFieldName Get the name of a field from a field object