ROOT
master
Reference Guide
Loading...
Searching...
No Matches
callcontext.h
Go to the documentation of this file.
1
#ifndef CPPJIT_INTEROP_CALLCONTEXT_H
2
#define CPPJIT_INTEROP_CALLCONTEXT_H
3
4
// Standard
5
#include <cstddef>
6
#include <cstdint>
7
8
// convention to pass flag for direct calls (similar to Python's vector calls)
9
#define DIRECT_CALL ((size_t)1 << (8 * sizeof(size_t) - 1))
10
11
namespace
cppjit::cpyrt
{
12
13
// small number that allows use of stack for argument passing
14
const
int
SMALL_ARGS_N
= 8;
15
16
// The shipped cpyrt/API.h carries an identical Parameter for JIT-side
17
// code, which cannot see this in-tree header; the shared CPYRT_PARAMETER
18
// guard keeps one definition per TU. Keep both copies identical.
19
#ifndef CPYRT_PARAMETER
20
#define CPYRT_PARAMETER
21
// general place holder for function parameters
22
struct
Parameter
{
23
union
Value {
24
bool
fBool
;
25
int8_t
fInt8
;
26
int16_t
fInt16
;
27
int32_t
fInt32
;
28
uint8_t
fUInt8
;
29
uint16_t
fUInt16
;
30
uint32_t
fUInt32
;
31
short
fShort
;
32
unsigned
short
fUShort
;
33
int
fInt
;
34
unsigned
int
fUInt
;
35
long
fLong
;
36
intptr_t
fIntPtr
;
37
unsigned
long
fULong
;
38
long
long
fLLong
;
39
unsigned
long
long
fULLong
;
40
int64_t
fInt64
;
41
uint64_t
fUInt64
;
42
float
fFloat
;
43
double
fDouble
;
44
long
double
fLDouble
;
45
void
*
fVoidp
;
46
}
fValue
;
47
void
*
fRef
;
48
char
fTypeCode
;
49
};
50
#endif
// CPYRT_PARAMETER
51
52
}
// namespace cppjit::cpyrt
53
54
#endif
// !CPPJIT_INTEROP_CALLCONTEXT_H
cppjit::cpyrt
Definition
API.cxx:34
cppjit::cpyrt::SMALL_ARGS_N
const int SMALL_ARGS_N
Definition
callcontext.h:14
cppjit::cpyrt::Parameter
Definition
API.h:64
cppjit::cpyrt::Parameter::fTypeCode
char fTypeCode
Definition
API.h:90
cppjit::cpyrt::Parameter::fRef
void * fRef
Definition
API.h:89
cppjit::cpyrt::Parameter::fValue
union cppjit::cpyrt::Parameter::Value fValue
cppjit::cpyrt::Parameter::Value::fDouble
double fDouble
Definition
API.h:85
cppjit::cpyrt::Parameter::Value::fUInt
unsigned int fUInt
Definition
API.h:76
cppjit::cpyrt::Parameter::Value::fULong
unsigned long fULong
Definition
API.h:79
cppjit::cpyrt::Parameter::Value::fUShort
unsigned short fUShort
Definition
API.h:74
cppjit::cpyrt::Parameter::Value::fLong
long fLong
Definition
API.h:77
cppjit::cpyrt::Parameter::Value::fUInt32
uint32_t fUInt32
Definition
API.h:72
cppjit::cpyrt::Parameter::Value::fLLong
long long fLLong
Definition
API.h:80
cppjit::cpyrt::Parameter::Value::fUInt64
uint64_t fUInt64
Definition
API.h:83
cppjit::cpyrt::Parameter::Value::fInt32
int32_t fInt32
Definition
API.h:69
cppjit::cpyrt::Parameter::Value::fUInt16
uint16_t fUInt16
Definition
API.h:71
cppjit::cpyrt::Parameter::Value::fInt16
int16_t fInt16
Definition
API.h:68
cppjit::cpyrt::Parameter::Value::fUInt8
uint8_t fUInt8
Definition
API.h:70
cppjit::cpyrt::Parameter::Value::fLDouble
long double fLDouble
Definition
API.h:86
cppjit::cpyrt::Parameter::Value::fInt64
int64_t fInt64
Definition
API.h:82
cppjit::cpyrt::Parameter::Value::fShort
short fShort
Definition
API.h:73
cppjit::cpyrt::Parameter::Value::fBool
bool fBool
Definition
API.h:66
cppjit::cpyrt::Parameter::Value::fInt8
int8_t fInt8
Definition
API.h:67
cppjit::cpyrt::Parameter::Value::fFloat
float fFloat
Definition
API.h:84
cppjit::cpyrt::Parameter::Value::fVoidp
void * fVoidp
Definition
API.h:87
cppjit::cpyrt::Parameter::Value::fULLong
unsigned long long fULLong
Definition
API.h:81
cppjit::cpyrt::Parameter::Value::fIntPtr
intptr_t fIntPtr
Definition
API.h:78
cppjit::cpyrt::Parameter::Value::fInt
int fInt
Definition
API.h:75
bindings
pyroot
cppjit
src
interop
callcontext.h
ROOTmaster - Reference Guide Generated on Tue Oct 20 2026 15:12:45 (GVA Time) using Doxygen 1.10.0