TEMU  2
The Terma Emulator
 All Data Structures Files Functions Variables Typedefs Enumerations Enumerator Macros
PowerPC.h
Go to the documentation of this file.
1 //===-- temu-c/PowerPC.h - PowerPC Architecture Interfaces --------*- C++
2 //-*-===//
3 //
4 // TEMU: The Terma Emulator
5 // (c) Terma 2018
6 // Authors: Mattias Holm <maho (at) terma.com>
7 //
8 //===----------------------------------------------------------------------===//
9 
10 #ifndef TEMU_POWERPC_H
11 #define TEMU_POWERPC_H
12 
13 #include "temu-c/Memory/Memory.h"
14 #include "temu-c/Support/Objsys.h"
15 #include <stdint.h>
16 
17 #ifdef __cplusplus
18 extern "C" {
19 #endif
20 
21 /*
22  \brief Interface for PowerPC specific functionality
23  */
24 typedef struct temu_PowerPCIface {
25  // Should go through property instead
26  uint64_t (*getXER)(const void *Cpu);
27  void (*setXER)(void *Cpu, uint64_t Value);
28  uint32_t (*getCR)(const void *Cpu);
29  void (*setCR)(void *Cpu, uint32_t Value);
30  uint64_t (*getMSR)(const void *Cpu);
31  void (*setMSR)(void *Cpu, uint64_t Value);
32  uint64_t (*getReserveAddress)(const void *Obj);
33  void (*setReserveAddress)(const void *Obj, uint64_t address);
34  int (*isReservationBitSet)(const void *Obj);
35  void (*clearAddressReservation)(const void *Obj);
36  uint32_t (*getCTR)(const void *Cpu);
37  void (*setCTR)(void *Cpu, uint32_t Value);
38  uint64_t (*getLR)(const void *Cpu);
39  void (*setLR)(void *Cpu, uint64_t Value);
40  uint32_t (*getFPSCR)(const void *Cpu);
41  void (*setFPSCR)(void *Cpu, uint32_t Value);
42  void (*installEAResource)(void *Obj, unsigned RID,
43  temu_MemAccessIfaceRef Device);
45 
46 #define TEMU_POWERPC_IFACE_TYPE "PowerPCIface"
47 TEMU_IFACE_REFERENCE_TYPE(temu_PowerPC);
48 
49 #ifdef __cplusplus
50 }
51 #endif
52 
53 #endif /* ! TEMU_POWERPC_H */
uint64_t(* getLR)(const void *Cpu)
Definition: PowerPC.h:38
struct temu_PowerPCIface temu_PowerPCIface
uint32_t(* getCTR)(const void *Cpu)
Definition: PowerPC.h:36
void(* setCR)(void *Cpu, uint32_t Value)
Definition: PowerPC.h:29
void(* setReserveAddress)(const void *Obj, uint64_t address)
Definition: PowerPC.h:33
void(* clearAddressReservation)(const void *Obj)
Definition: PowerPC.h:35
uint64_t(* getMSR)(const void *Cpu)
Definition: PowerPC.h:30
void(* installEAResource)(void *Obj, unsigned RID, temu_MemAccessIfaceRef Device)
Definition: PowerPC.h:42
uint32_t(* getCR)(const void *Cpu)
Definition: PowerPC.h:28
int(* isReservationBitSet)(const void *Obj)
Definition: PowerPC.h:34
#define TEMU_IFACE_REFERENCE_TYPE(N)
Definition: Objsys.h:129
void(* setFPSCR)(void *Cpu, uint32_t Value)
Definition: PowerPC.h:41
void(* setCTR)(void *Cpu, uint32_t Value)
Definition: PowerPC.h:37
void(* setMSR)(void *Cpu, uint64_t Value)
Definition: PowerPC.h:31
void(* setXER)(void *Cpu, uint64_t Value)
Definition: PowerPC.h:27
uint64_t(* getXER)(const void *Cpu)
Definition: PowerPC.h:26
uint64_t(* getReserveAddress)(const void *Obj)
Definition: PowerPC.h:32
void(* setLR)(void *Cpu, uint64_t Value)
Definition: PowerPC.h:39
uint32_t(* getFPSCR)(const void *Cpu)
Definition: PowerPC.h:40