T-EMU  2
The Terma Emulator
 All Data Structures Files Functions Variables Typedefs Enumerations Enumerator Macros
Sparc.h
Go to the documentation of this file.
1 #ifndef TEMU_SPARC_H
2 #define TEMU_SPARC_H
3 
4 #include "temu-c/Memory/Memory.h"
5 #include <stdint.h>
6 
7 #ifdef __cplusplus
8 extern "C" {
9 #endif
10 
11 typedef void (*temu_SparcAsrHandler)(void *Cpu, uint32_t Instr);
12 typedef void (*temu_SparcAsiHandler)(void *Cpu, temu_MemTransaction *MT);
13 
14 /*
15  \brief Interface for SPARC specific functionality
16  */
17 typedef struct temu_SparcV8Iface {
18  unsigned (*getWindowCount)(const void *Cpu);
19  uint32_t (*getWindowedReg)(const void *Cpu, int Window, unsigned Reg);
20  void (*setWindowedReg)(void *Cpu, int Window, unsigned Reg, uint32_t Value);
21  void (*setAsiHandler)(void *Cpu, unsigned Asi, int IsWriteAsi,
22  temu_SparcAsiHandler AsiHandler);
23 
24  // Should normally exist as property as well
25  uint32_t (*getAsr)(const void *Cpu, unsigned Asr);
26  void (*setAsr)(void *Cpu, unsigned Asr, uint32_t Value);
27  void (*setAsrReadHandler)(void *Cpu, unsigned Asr, temu_SparcAsrHandler AsrHandler);
28  void (*setAsrWriteHandler)(void *Cpu, unsigned Asr, temu_SparcAsrHandler AsrHandler);
29 
30  // Should go through property instead
31  uint32_t (*getPsr)(const void *Cpu);
32  void (*setPsr)(void *Cpu, uint32_t Value);
33  uint32_t (*getTbr)(const void *Cpu);
34  void (*setTbr)(void *Cpu, uint32_t Value);
35  uint32_t (*getWim)(const void *Cpu);
36  void (*setWim)(void *Cpu, uint32_t Value);
37 
38  uint32_t (*getNPc)(const void *Cpu);
39  void (*setNPc)(void *Cpu, uint32_t Value);
41 
42 #ifdef __cplusplus
43 }
44 #endif
45 
46 #endif /* ! TEMU_SPARC_H */
uint32_t(* getNPc)(const void *Cpu)
Definition: Sparc.h:38
uint32_t(* getTbr)(const void *Cpu)
Definition: Sparc.h:33
void(* setAsr)(void *Cpu, unsigned Asr, uint32_t Value)
Definition: Sparc.h:26
void(* setPsr)(void *Cpu, uint32_t Value)
Definition: Sparc.h:32
void(* temu_SparcAsrHandler)(void *Cpu, uint32_t Instr)
Definition: Cpu.h:148
struct temu_SparcV8Iface temu_SparcV8Iface
unsigned(* getWindowCount)(const void *Cpu)
Definition: Sparc.h:18
void(* setTbr)(void *Cpu, uint32_t Value)
Definition: Sparc.h:34
void(* setWim)(void *Cpu, uint32_t Value)
Definition: Sparc.h:36
void(* setAsiHandler)(void *Cpu, unsigned Asi, int IsWriteAsi, temu_SparcAsiHandler AsiHandler)
Definition: Sparc.h:21
void(* setWindowedReg)(void *Cpu, int Window, unsigned Reg, uint32_t Value)
Definition: Sparc.h:20
void(* temu_SparcAsiHandler)(void *Cpu, temu_MemTransaction *MT)
Definition: Sparc.h:12
void(* setAsrWriteHandler)(void *Cpu, unsigned Asr, temu_SparcAsrHandler AsrHandler)
Definition: Sparc.h:28
uint32_t(* getPsr)(const void *Cpu)
Definition: Sparc.h:31
void(* setNPc)(void *Cpu, uint32_t Value)
Definition: Sparc.h:39
uint32_t(* getAsr)(const void *Cpu, unsigned Asr)
Definition: Sparc.h:25
uint32_t(* getWindowedReg)(const void *Cpu, int Window, unsigned Reg)
Definition: Sparc.h:19
void(* setAsrReadHandler)(void *Cpu, unsigned Asr, temu_SparcAsrHandler AsrHandler)
Definition: Sparc.h:27
uint32_t(* getWim)(const void *Cpu)
Definition: Sparc.h:35