ETISS 0.11.2
ExtendableTranslatingInstructionSetSimulator(version0.11.2)
Loading...
Searching...
No Matches
System.h
Go to the documentation of this file.
1// SPDX-License-Identifier: BSD-3-Clause
2//
3// This file is part of ETISS. It is licensed under the BSD 3-Clause License; you may not use this file except in
4// compliance with the License. You should have received a copy of the license along with this project. If not, see the
5// LICENSE file.
18#ifndef ETISS_INCLUDE_JIT_SYSTEM_H_
19#define ETISS_INCLUDE_JIT_SYSTEM_H_
20
21#include "etiss/jit/CPU.h"
22#include "etiss/jit/types.h"
23
24#ifdef __cplusplus
25extern "C"
26{
27#endif
28
29#pragma pack(push, 1) // NEVER ALLOW ALIGNMENT OF STRUCTURE MEMBERS
39 struct ETISS_System
40 {
41
46 etiss_int32 (*iread)(void *handle, ETISS_CPU *cpu, etiss_uint64 addr, etiss_uint32 length);
50 etiss_int32 (*iwrite)(void *handle, ETISS_CPU *cpu, etiss_uint64 addr, etiss_uint8 *buffer,
55 etiss_int32 (*dread)(void *handle, ETISS_CPU *cpu, etiss_uint64 addr, etiss_uint8 *buffer, etiss_uint32 length);
59 etiss_int32 (*dwrite)(void *handle, ETISS_CPU *cpu, etiss_uint64 addr, etiss_uint8 *buffer,
61
62 // debug access functions
66 etiss_int32 (*dbg_read)(void *handle, etiss_uint64 addr, etiss_uint8 *buffer, etiss_uint32 length);
70 etiss_int32 (*dbg_write)(void *handle, etiss_uint64 addr, etiss_uint8 *buffer, etiss_uint32 length);
71
72 // etiss_int32 (*dbg_print) (etiss_uint32 reg);
76 void (*syncTime)(void *handle, ETISS_CPU *cpu);
77
78 void *handle;
79 };
80#pragma pack(pop)
81
82 typedef struct ETISS_System ETISS_System;
83
84 extern int ETISS_System_isvalid(ETISS_System *sys);
85
86#ifdef __cplusplus
87}
88#endif
89
90#endif
int ETISS_System_isvalid(ETISS_System *sys)
Definition System.cpp:84
uint64_t etiss_uint64
Definition types.h:58
uint32_t etiss_uint32
Definition types.h:55
uint8_t etiss_uint8
Definition types.h:49
int32_t etiss_int32
Definition types.h:54
float __ovld __cnfn length(float p)
Return the length of vector p, i.e., sqrt(p.x2 + p.y 2 + ...)
basic cpu state structure needed for execution of any cpu architecture.
Definition CPU.h:51
memory access and time synchronization functions.
Definition System.h:40