 |
TEMU
4.4
The Terma Emulator
|
Go to the documentation of this file.
9 #ifndef TEMU_REGISTER_H
10 #define TEMU_REGISTER_H
13 #include "temu-c/Support/Attributes.h"
14 #include "temu-c/Support/Objsys.h"
15 #include "temu-c/Memory/Memory.h"
36 #define TEMU_FIELD_WR (1
<< 0
)
37 #define TEMU_FIELD_WARM_RESET (1
<< 1
)
49 #define TEMU_FIELD_INFO_NULL ((temu_FieldInfo){NULL, NULL, 0
, 0
})
75 } temu_RegisterBankInfo;
94 TEMU_API temu_RegisterBank *temu_addRegisterBank(temu_Class *C,
const char *Name,
95 temu_MemAccessIface *MemAccessIface);
130 TEMU_API temu_Register *
131 temu_addRegister(temu_RegisterBank *Bank,
const char *Name,
int Offset,
132 temu_Type Typ,
int Count, temu_PropWriter Wr,
133 temu_PropReader Rd,
const char *Doc,
136 uint32_t DeviceOffset, uint32_t Stride);
138 TEMU_API temu_Register *
139 temu_addRegisterWithFields(temu_RegisterBank *Bank,
const char *Name,
int Offset,
140 temu_Type Typ,
int Count, temu_PropWriter Wr,
141 temu_PropReader Rd,
const char *Doc,
144 uint32_t DeviceOffset, uint32_t Stride,
145 temu_FieldInfo Fields[]);
174 TEMU_API temu_RegisterBank *temu_getRegisterBank(temu_Class *C,
186 TEMU_API
const temu_ModelRegInfo * temu_getModelRegisterBankInfo(temu_Class *C);
198 TEMU_API
const temu_RegisterInfo * temu_getRegisterInfo(temu_Class *C,
const char *RegName);
200 TEMU_API
const temu_RegisterBankInfo *
201 temu_getRegisterBankInfo(temu_Class *C,
const char *RegBankName);
209 TEMU_API temu_Register *temu_getRegister(temu_RegisterBank *Bank,
235 TEMU_API uint64_t temu_getFieldValue(temu_Object *Obj,
const char *RegName,
unsigned RegIdx,
236 const char *FieldName);
247 TEMU_API uint64_t temu_readFieldValue(temu_Object *Obj,
const char *RegName,
248 unsigned RegIdx,
const char *FieldName);
286 TEMU_API uint64_t temu_getRegisterColdResetValue(temu_Register *Reg);
293 TEMU_API uint64_t temu_getRegisterWarmResetValue(temu_Register *Reg);
300 TEMU_API uint64_t temu_getRegisterWriteMask(temu_Register *Reg);
307 TEMU_API uint64_t temu_getRegisterReadMask(temu_Register *Reg);
const TEMU_API char * temu_getRegisterBankName(temu_RegisterBank *Bank)
const TEMU_API char * temu_getRegisterDocs(temu_Register *R)
uint64_t WarmResetValue
Definition: Register.h:61
uint64_t WriteMask
Definition: Register.h:64
const char ** RegNames
Definition: Register.h:74
size_t NumRegisters
Definition: Register.h:73
const char * Desc
Definition: Register.h:72
const char * Name
Definition: Register.h:52
temu_FieldInfo * Field
Definition: Register.h:67
TEMU_API int temu_writeFieldValue(temu_Object *Obj, const char *RegName, unsigned RegIdx, const char *FieldName, uint64_t Value)
const char * Name
Definition: Register.h:40
TEMU_API int temu_setFieldValue(temu_Object *Obj, const char *RegName, unsigned RegIdx, const char *FieldName, uint64_t Value)
uint64_t ResetValue
Definition: Register.h:43
unsigned Writable
Definition: Register.h:44
uint64_t Mask
Definition: Register.h:42
size_t NumFields
Definition: Register.h:66
uint64_t ReadMask
Definition: Register.h:63
struct temu_Field temu_Field
Definition: Register.h:85
const char ** BankNames
Definition: Register.h:79
const char * Desc
Definition: Register.h:41
unsigned Stride
Definition: Register.h:57
const char * Name
Definition: Register.h:71
struct temu_Register temu_Register
Definition: Register.h:84
size_t NumRegs
Definition: Register.h:54
const TEMU_API char * temu_getRegisterName(temu_Register *R)
TEMU_API void temu_addField(temu_Register *R, const char *Name, uint64_t Mask, uint64_t Reset, uint64_t Flags, const char *Doc)
unsigned DeviceOffset
Definition: Register.h:56
const char * Desc
Definition: Register.h:53
unsigned ClearOnSet
Definition: Register.h:46
unsigned Resettable
Definition: Register.h:45
struct temu_RegisterBank temu_RegisterBank
Definition: Register.h:83
uint64_t WarmResetMask
Definition: Register.h:60
uint64_t ColdResetValue
Definition: Register.h:58
size_t NumRegisterBanks
Definition: Register.h:78