1 #ifndef TEMU_REGISTER_H 2 #define TEMU_REGISTER_H 28 #define TEMU_FIELD_WR (1 << 0) // Writeable field 29 #define TEMU_FIELD_WARM_RESET (1 << 1) // Field is subject to warm reset 41 #define TEMU_FIELD_INFO_NULL ((temu_FieldInfo){NULL, NULL, 0, 0}) 128 uint32_t DeviceOffset, uint32_t Stride);
136 uint32_t DeviceOffset, uint32_t Stride,
156 uint64_t Reset, uint64_t Flags,
228 const char *FieldName);
240 unsigned RegIdx,
const char *FieldName);
254 const char *FieldName, uint64_t Value);
268 const char *FieldName, uint64_t Value);
uint64_t WarmResetMask
Definition: Register.h:52
size_t NumFields
Definition: Register.h:58
TEMU_API uint64_t temu_getRegisterWarmResetValue(temu_Register *Reg)
void(* temu_PropWriter)(void *Obj, temu_Propval Pv, int Idx)
Definition: Objsys.h:687
TEMU_API const temu_RegisterBankInfo * temu_getRegisterBankInfo(temu_Class *C, const char *RegBankName)
TEMU_API uint64_t temu_getRegisterColdResetValue(temu_Register *Reg)
unsigned DeviceOffset
Definition: Register.h:48
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)
const char * Desc
Definition: Register.h:64
Definition: Register.h:31
TEMU_API uint64_t temu_getRegisterWriteMask(temu_Register *Reg)
uint64_t Mask
Definition: Register.h:34
TEMU_API const temu_RegisterInfo * temu_getRegisterInfo(temu_Class *C, const char *RegName)
const char * Desc
Definition: Register.h:33
const char ** RegNames
Definition: Register.h:66
TEMU_API const temu_ModelRegInfo * temu_getModelRegisterBankInfo(temu_Class *C)
uint64_t ColdResetValue
Definition: Register.h:50
unsigned ClearOnSet
Definition: Register.h:38
TEMU_API const char * temu_getRegisterDocs(temu_Register *R)
size_t NumRegs
Definition: Register.h:46
TEMU_API const char * temu_getRegisterName(temu_Register *R)
TEMU_API int temu_setFieldValue(temu_Object *Obj, const char *RegName, unsigned RegIdx, const char *FieldName, uint64_t Value)
size_t NumRegisters
Definition: Register.h:65
TEMU_API uint64_t temu_getFieldValue(temu_Object *Obj, const char *RegName, unsigned RegIdx, const char *FieldName)
temu_Propval(* temu_PropReader)(void *Obj, int Idx)
Definition: Objsys.h:695
const char * Desc
Definition: Register.h:45
temu_Type
Definition: Objsys.h:282
TEMU_API temu_RegisterBank * temu_addRegisterBank(temu_Class *C, const char *Name, temu_MemAccessIface *MemAccessIface)
#define TEMU_API
Definition: Attributes.h:53
unsigned Resettable
Definition: Register.h:37
TEMU_API temu_Register * temu_addRegisterWithFields(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_FieldInfo Fields[])
Definition: Register.h:69
uint64_t ResetValue
Definition: Register.h:35
const char ** BankNames
Definition: Register.h:71
struct temu_Field temu_Field
Definition: Register.h:77
struct temu_RegisterBank temu_RegisterBank
Definition: Register.h:75
TEMU_API uint64_t temu_getRegisterReadMask(temu_Register *Reg)
uint64_t WriteMask
Definition: Register.h:56
unsigned Writable
Definition: Register.h:36
const char * Name
Definition: Register.h:44
temu_FieldInfo * Field
Definition: Register.h:59
TEMU_API uint64_t temu_readFieldValue(temu_Object *Obj, const char *RegName, unsigned RegIdx, const char *FieldName)
struct temu_Register temu_Register
Definition: Register.h:76
uint64_t ReadMask
Definition: Register.h:55
const char * Name
Definition: Register.h:63
Definition: Register.h:62
TEMU_API int temu_writeFieldValue(temu_Object *Obj, const char *RegName, unsigned RegIdx, const char *FieldName, uint64_t Value)
unsigned Stride
Definition: Register.h:49
Definition: Register.h:43
const char * Name
Definition: Register.h:32
TEMU_API temu_Register * temu_getRegister(temu_RegisterBank *Bank, const char *Name)
TEMU_API void temu_addField(temu_Register *R, const char *Name, uint64_t Mask, uint64_t Reset, uint64_t Flags, const char *Doc)
size_t NumRegisterBanks
Definition: Register.h:70
TEMU_API temu_RegisterBank * temu_getRegisterBank(temu_Class *C, const char *Name)
TEMU_API const char * temu_getRegisterBankName(temu_RegisterBank *Bank)
uint64_t WarmResetValue
Definition: Register.h:53