00001 #ifndef TEMU_SPARC_H
00002 #define TEMU_SPARC_H
00003
00004 #include "temu-c/Memory/Memory.h"
00005 #include <stdint.h>
00006
00007 #ifdef __cplusplus
00008 extern "C" {
00009 #endif
00010
00011 typedef void (*temu_SparcAsrHandler)(void *Cpu, uint32_t Instr);
00012 typedef void (*temu_SparcAsiHandler)(void *Cpu, temu_MemTransaction *MT);
00013
00014
00015
00016
00017 typedef struct temu_SparcV8Iface {
00018 unsigned (*getWindowCount)(const void *Cpu);
00019 uint32_t (*getWindowedReg)(const void *Cpu, int Window, unsigned Reg);
00020 void (*setWindowedReg)(void *Cpu, int Window, unsigned Reg, uint32_t Value);
00021 void (*setAsiHandler)(void *Cpu, unsigned Asi, int IsWriteAsi,
00022 temu_SparcAsiHandler AsiHandler);
00023
00024
00025 uint32_t (*getAsr)(const void *Cpu, unsigned Asr);
00026 void (*setAsr)(void *Cpu, unsigned Asr, uint32_t Value);
00027 void (*setAsrReadHandler)(void *Cpu, unsigned Asr, temu_SparcAsrHandler AsrHandler);
00028 void (*setAsrWriteHandler)(void *Cpu, unsigned Asr, temu_SparcAsrHandler AsrHandler);
00029
00030
00031 uint32_t (*getPsr)(const void *Cpu);
00032 void (*setPsr)(void *Cpu, uint32_t Value);
00033 uint32_t (*getTbr)(const void *Cpu);
00034 void (*setTbr)(void *Cpu, uint32_t Value);
00035 uint32_t (*getWim)(const void *Cpu);
00036 void (*setWim)(void *Cpu, uint32_t Value);
00037
00038 uint32_t (*getNPc)(const void *Cpu);
00039 void (*setNPc)(void *Cpu, uint32_t Value);
00040 } temu_SparcV8Iface;
00041
00042 #ifdef __cplusplus
00043 }
00044 #endif
00045
00046 #endif