ETISS 0.11.2
ExtendableTranslatingInstructionSetSimulator(version0.11.2)
Loading...
Searching...
No Matches
include
jit
etiss
jit
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
25
extern
"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,
51
etiss_uint32
length
);
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,
60
etiss_uint32
length
);
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
ETISS_System_isvalid
int ETISS_System_isvalid(ETISS_System *sys)
Definition
System.cpp:84
etiss_uint64
uint64_t etiss_uint64
Definition
types.h:58
etiss_uint32
uint32_t etiss_uint32
Definition
types.h:55
etiss_uint8
uint8_t etiss_uint8
Definition
types.h:49
etiss_int32
int32_t etiss_int32
Definition
types.h:54
length
float __ovld __cnfn length(float p)
Return the length of vector p, i.e., sqrt(p.x2 + p.y 2 + ...)
ETISS_CPU
basic cpu state structure needed for execution of any cpu architecture.
Definition
CPU.h:51
ETISS_System
memory access and time synchronization functions.
Definition
System.h:40
ETISS_System::handle
void * handle
custom handle that will be passed to the functions of this structure
Definition
System.h:78
Generated on Sat Nov 15 2025 19:30:09 for ETISS 0.11.2 by
1.9.8