Book a Demo!
CoCalc Logo Icon
StoreFeaturesDocsShareSupportNewsAboutPoliciesSign UpSign In
PojavLauncherTeam
GitHub Repository: PojavLauncherTeam/openj9
Path: blob/master/runtime/j9vm31/jnifield.cpp
5985 views
1
/*******************************************************************************
2
* Copyright (c) 2021, 2021 IBM Corp. and others
3
*
4
* This program and the accompanying materials are made available under
5
* the terms of the Eclipse Public License 2.0 which accompanies this
6
* distribution and is available at https://www.eclipse.org/legal/epl-2.0/
7
* or the Apache License, Version 2.0 which accompanies this distribution and
8
* is available at https://www.apache.org/licenses/LICENSE-2.0.
9
*
10
* This Source Code may also be made available under the following
11
* Secondary Licenses when the conditions for such availability set
12
* forth in the Eclipse Public License, v. 2.0 are satisfied: GNU
13
* General Public License, version 2 with the GNU Classpath
14
* Exception [1] and GNU General Public License, version 2 with the
15
* OpenJDK Assembly Exception [2].
16
*
17
* [1] https://www.gnu.org/software/classpath/license.html
18
* [2] http://openjdk.java.net/legal/assembly-exception.html
19
*
20
* SPDX-License-Identifier: EPL-2.0 OR Apache-2.0 OR GPL-2.0 WITH Classpath-exception-2.0 OR LicenseRef-GPL-2.0 WITH Assembly-exception
21
*******************************************************************************/
22
23
#include "j9vm31.h"
24
25
jobject JNICALL
26
GetObjectField(JNIEnv *env, jobject obj, jfieldID fieldID)
27
{
28
const jint NUM_ARGS = 3;
29
J9_CEL4RO64_ArgType argTypes[NUM_ARGS] = { CEL4RO64_type_JNIEnv64, CEL4RO64_type_jobject, CEL4RO64_type_jfieldID };
30
uint64_t argValues[NUM_ARGS] = { JNIENV64_FROM_JNIENV31(env), obj, fieldID };
31
jobject returnValue;
32
FUNCTION_DESCRIPTOR_FROM_JNIENV31(env, GetObjectField);
33
j9_cel4ro64_call_function(functionDescriptor, argTypes, argValues, NUM_ARGS, CEL4RO64_type_jobject, &returnValue);
34
return returnValue;
35
}
36
37
jboolean JNICALL
38
GetBooleanField(JNIEnv *env, jobject obj, jfieldID fieldID)
39
{
40
const jint NUM_ARGS = 3;
41
J9_CEL4RO64_ArgType argTypes[NUM_ARGS] = { CEL4RO64_type_JNIEnv64, CEL4RO64_type_jobject, CEL4RO64_type_jfieldID };
42
uint64_t argValues[NUM_ARGS] = { JNIENV64_FROM_JNIENV31(env), obj, fieldID };
43
jboolean returnValue;
44
FUNCTION_DESCRIPTOR_FROM_JNIENV31(env, GetBooleanField);
45
j9_cel4ro64_call_function(functionDescriptor, argTypes, argValues, NUM_ARGS, CEL4RO64_type_jboolean, &returnValue);
46
return returnValue;
47
}
48
49
jbyte JNICALL
50
GetByteField(JNIEnv *env, jobject obj, jfieldID fieldID)
51
{
52
const jint NUM_ARGS = 3;
53
J9_CEL4RO64_ArgType argTypes[NUM_ARGS] = { CEL4RO64_type_JNIEnv64, CEL4RO64_type_jobject, CEL4RO64_type_jfieldID };
54
uint64_t argValues[NUM_ARGS] = { JNIENV64_FROM_JNIENV31(env), obj, fieldID };
55
jbyte returnValue;
56
FUNCTION_DESCRIPTOR_FROM_JNIENV31(env, GetByteField);
57
j9_cel4ro64_call_function(functionDescriptor, argTypes, argValues, NUM_ARGS, CEL4RO64_type_jbyte, &returnValue);
58
return returnValue;
59
}
60
61
jchar JNICALL
62
GetCharField(JNIEnv *env, jobject obj, jfieldID fieldID)
63
{
64
const jint NUM_ARGS = 3;
65
J9_CEL4RO64_ArgType argTypes[NUM_ARGS] = { CEL4RO64_type_JNIEnv64, CEL4RO64_type_jobject, CEL4RO64_type_jfieldID };
66
uint64_t argValues[NUM_ARGS] = { JNIENV64_FROM_JNIENV31(env), obj, fieldID };
67
jchar returnValue;
68
FUNCTION_DESCRIPTOR_FROM_JNIENV31(env, GetCharField);
69
j9_cel4ro64_call_function(functionDescriptor, argTypes, argValues, NUM_ARGS, CEL4RO64_type_jchar, &returnValue);
70
return returnValue;
71
}
72
73
jshort JNICALL
74
GetShortField(JNIEnv *env, jobject obj, jfieldID fieldID)
75
{
76
const jint NUM_ARGS = 3;
77
J9_CEL4RO64_ArgType argTypes[NUM_ARGS] = { CEL4RO64_type_JNIEnv64, CEL4RO64_type_jobject, CEL4RO64_type_jfieldID };
78
uint64_t argValues[NUM_ARGS] = { JNIENV64_FROM_JNIENV31(env), obj, fieldID };
79
jshort returnValue;
80
FUNCTION_DESCRIPTOR_FROM_JNIENV31(env, GetShortField);
81
j9_cel4ro64_call_function(functionDescriptor, argTypes, argValues, NUM_ARGS, CEL4RO64_type_jshort, &returnValue);
82
return returnValue;
83
}
84
85
jint JNICALL
86
GetIntField(JNIEnv *env, jobject obj, jfieldID fieldID)
87
{
88
const jint NUM_ARGS = 3;
89
J9_CEL4RO64_ArgType argTypes[NUM_ARGS] = { CEL4RO64_type_JNIEnv64, CEL4RO64_type_jobject, CEL4RO64_type_jfieldID };
90
uint64_t argValues[NUM_ARGS] = { JNIENV64_FROM_JNIENV31(env), obj, fieldID };
91
jint returnValue;
92
FUNCTION_DESCRIPTOR_FROM_JNIENV31(env, GetIntField);
93
j9_cel4ro64_call_function(functionDescriptor, argTypes, argValues, NUM_ARGS, CEL4RO64_type_jint, &returnValue);
94
return returnValue;
95
}
96
97
jlong JNICALL
98
GetLongField(JNIEnv *env, jobject obj, jfieldID fieldID)
99
{
100
const jint NUM_ARGS = 3;
101
J9_CEL4RO64_ArgType argTypes[NUM_ARGS] = { CEL4RO64_type_JNIEnv64, CEL4RO64_type_jobject, CEL4RO64_type_jfieldID };
102
uint64_t argValues[NUM_ARGS] = { JNIENV64_FROM_JNIENV31(env), obj, fieldID };
103
jlong returnValue;
104
FUNCTION_DESCRIPTOR_FROM_JNIENV31(env, GetLongField);
105
j9_cel4ro64_call_function(functionDescriptor, argTypes, argValues, NUM_ARGS, CEL4RO64_type_jlong, &returnValue);
106
return returnValue;
107
}
108
109
jfloat JNICALL
110
GetFloatField(JNIEnv *env, jobject obj, jfieldID fieldID)
111
{
112
const jint NUM_ARGS = 3;
113
J9_CEL4RO64_ArgType argTypes[NUM_ARGS] = { CEL4RO64_type_JNIEnv64, CEL4RO64_type_jobject, CEL4RO64_type_jfieldID };
114
uint64_t argValues[NUM_ARGS] = { JNIENV64_FROM_JNIENV31(env), obj, fieldID };
115
jfloat returnValue;
116
FUNCTION_DESCRIPTOR_FROM_JNIENV31(env, GetFloatField);
117
j9_cel4ro64_call_function(functionDescriptor, argTypes, argValues, NUM_ARGS, CEL4RO64_type_jfloat, &returnValue);
118
return returnValue;
119
}
120
121
jdouble JNICALL
122
GetDoubleField(JNIEnv *env, jobject obj, jfieldID fieldID)
123
{
124
const jint NUM_ARGS = 3;
125
J9_CEL4RO64_ArgType argTypes[NUM_ARGS] = { CEL4RO64_type_JNIEnv64, CEL4RO64_type_jobject, CEL4RO64_type_jfieldID };
126
uint64_t argValues[NUM_ARGS] = { JNIENV64_FROM_JNIENV31(env), obj, fieldID };
127
jdouble returnValue;
128
FUNCTION_DESCRIPTOR_FROM_JNIENV31(env, GetDoubleField);
129
j9_cel4ro64_call_function(functionDescriptor, argTypes, argValues, NUM_ARGS, CEL4RO64_type_jdouble, &returnValue);
130
return returnValue;
131
}
132
133
void JNICALL
134
SetObjectField(JNIEnv *env, jobject obj, jfieldID fieldID, jobject value)
135
{
136
const jint NUM_ARGS = 4;
137
J9_CEL4RO64_ArgType argTypes[NUM_ARGS] = { CEL4RO64_type_JNIEnv64, CEL4RO64_type_jobject, CEL4RO64_type_jfieldID, CEL4RO64_type_jobject};
138
uint64_t argValues[NUM_ARGS] = { JNIENV64_FROM_JNIENV31(env), obj, fieldID, value };
139
FUNCTION_DESCRIPTOR_FROM_JNIENV31(env, SetObjectField);
140
j9_cel4ro64_call_function(functionDescriptor, argTypes, argValues, NUM_ARGS, CEL4RO64_type_void, NULL);
141
return;
142
}
143
144
void JNICALL
145
SetBooleanField(JNIEnv *env, jobject obj, jfieldID fieldID, jboolean value)
146
{
147
const jint NUM_ARGS = 4;
148
J9_CEL4RO64_ArgType argTypes[NUM_ARGS] = { CEL4RO64_type_JNIEnv64, CEL4RO64_type_jobject, CEL4RO64_type_jfieldID, CEL4RO64_type_jboolean};
149
uint64_t argValues[NUM_ARGS] = { JNIENV64_FROM_JNIENV31(env), obj, fieldID, value };
150
FUNCTION_DESCRIPTOR_FROM_JNIENV31(env, SetBooleanField);
151
j9_cel4ro64_call_function(functionDescriptor, argTypes, argValues, NUM_ARGS, CEL4RO64_type_void, NULL);
152
return;
153
}
154
155
void JNICALL
156
SetByteField(JNIEnv *env, jobject obj, jfieldID fieldID, jbyte value)
157
{
158
const jint NUM_ARGS = 4;
159
J9_CEL4RO64_ArgType argTypes[NUM_ARGS] = { CEL4RO64_type_JNIEnv64, CEL4RO64_type_jobject, CEL4RO64_type_jfieldID, CEL4RO64_type_jbyte};
160
uint64_t argValues[NUM_ARGS] = { JNIENV64_FROM_JNIENV31(env), obj, fieldID, value };
161
FUNCTION_DESCRIPTOR_FROM_JNIENV31(env, SetByteField);
162
j9_cel4ro64_call_function(functionDescriptor, argTypes, argValues, NUM_ARGS, CEL4RO64_type_void, NULL);
163
return;
164
}
165
166
void JNICALL
167
SetCharField(JNIEnv *env, jobject obj, jfieldID fieldID, jchar value)
168
{
169
const jint NUM_ARGS = 4;
170
J9_CEL4RO64_ArgType argTypes[NUM_ARGS] = { CEL4RO64_type_JNIEnv64, CEL4RO64_type_jobject, CEL4RO64_type_jfieldID, CEL4RO64_type_jchar};
171
uint64_t argValues[NUM_ARGS] = { JNIENV64_FROM_JNIENV31(env), obj, fieldID, value };
172
FUNCTION_DESCRIPTOR_FROM_JNIENV31(env, SetCharField);
173
j9_cel4ro64_call_function(functionDescriptor, argTypes, argValues, NUM_ARGS, CEL4RO64_type_void, NULL);
174
return;
175
}
176
177
void JNICALL
178
SetShortField(JNIEnv *env, jobject obj, jfieldID fieldID, jshort value)
179
{
180
const jint NUM_ARGS = 4;
181
J9_CEL4RO64_ArgType argTypes[NUM_ARGS] = { CEL4RO64_type_JNIEnv64, CEL4RO64_type_jobject, CEL4RO64_type_jfieldID, CEL4RO64_type_jshort};
182
uint64_t argValues[NUM_ARGS] = { JNIENV64_FROM_JNIENV31(env), obj, fieldID, value };
183
FUNCTION_DESCRIPTOR_FROM_JNIENV31(env, SetShortField);
184
j9_cel4ro64_call_function(functionDescriptor, argTypes, argValues, NUM_ARGS, CEL4RO64_type_void, NULL);
185
return;
186
}
187
188
void JNICALL
189
SetIntField(JNIEnv *env, jobject obj, jfieldID fieldID, jint value)
190
{
191
const jint NUM_ARGS = 4;
192
J9_CEL4RO64_ArgType argTypes[NUM_ARGS] = { CEL4RO64_type_JNIEnv64, CEL4RO64_type_jobject, CEL4RO64_type_jfieldID, CEL4RO64_type_jint};
193
uint64_t argValues[NUM_ARGS] = { JNIENV64_FROM_JNIENV31(env), obj, fieldID, value };
194
FUNCTION_DESCRIPTOR_FROM_JNIENV31(env, SetIntField);
195
j9_cel4ro64_call_function(functionDescriptor, argTypes, argValues, NUM_ARGS, CEL4RO64_type_void, NULL);
196
return;
197
}
198
199
void JNICALL
200
SetLongField(JNIEnv *env, jobject obj, jfieldID fieldID, jlong value)
201
{
202
const jint NUM_ARGS = 4;
203
J9_CEL4RO64_ArgType argTypes[NUM_ARGS] = { CEL4RO64_type_JNIEnv64, CEL4RO64_type_jobject, CEL4RO64_type_jfieldID, CEL4RO64_type_jlong};
204
uint64_t argValues[NUM_ARGS] = { JNIENV64_FROM_JNIENV31(env), obj, fieldID, value };
205
FUNCTION_DESCRIPTOR_FROM_JNIENV31(env, SetLongField);
206
j9_cel4ro64_call_function(functionDescriptor, argTypes, argValues, NUM_ARGS, CEL4RO64_type_void, NULL);
207
return;
208
}
209
210
void JNICALL
211
SetFloatField(JNIEnv *env, jobject obj, jfieldID fieldID, jfloat value)
212
{
213
const jint NUM_ARGS = 4;
214
J9_CEL4RO64_ArgType argTypes[NUM_ARGS] = { CEL4RO64_type_JNIEnv64, CEL4RO64_type_jobject, CEL4RO64_type_jfieldID, CEL4RO64_type_jfloat};
215
uint64_t argValues[NUM_ARGS] = { JNIENV64_FROM_JNIENV31(env), obj, fieldID, 0 };
216
217
/* Floating point parameters requires special handling */
218
jfloat *floatArgPtr = (jfloat *)(&(argValues[3]));
219
*floatArgPtr = value;
220
221
FUNCTION_DESCRIPTOR_FROM_JNIENV31(env, SetFloatField);
222
j9_cel4ro64_call_function(functionDescriptor, argTypes, argValues, NUM_ARGS, CEL4RO64_type_void, NULL);
223
return;
224
}
225
226
void JNICALL
227
SetDoubleField(JNIEnv *env, jobject obj, jfieldID fieldID, jdouble value)
228
{
229
const jint NUM_ARGS = 4;
230
J9_CEL4RO64_ArgType argTypes[NUM_ARGS] = { CEL4RO64_type_JNIEnv64, CEL4RO64_type_jobject, CEL4RO64_type_jfieldID, CEL4RO64_type_jdouble};
231
uint64_t argValues[NUM_ARGS] = { JNIENV64_FROM_JNIENV31(env), obj, fieldID, 0 };
232
233
/* Floating point parameters requires special handling */
234
jdouble *doubleArgPtr = (jdouble *)(&(argValues[3]));
235
*doubleArgPtr = value;
236
237
FUNCTION_DESCRIPTOR_FROM_JNIENV31(env, SetDoubleField);
238
j9_cel4ro64_call_function(functionDescriptor, argTypes, argValues, NUM_ARGS, CEL4RO64_type_void, NULL);
239
return;
240
}
241
242
jobject JNICALL
243
GetStaticObjectField(JNIEnv *env, jclass clazz, jfieldID fieldID)
244
{
245
const jint NUM_ARGS = 3;
246
J9_CEL4RO64_ArgType argTypes[NUM_ARGS] = { CEL4RO64_type_JNIEnv64, CEL4RO64_type_jobject, CEL4RO64_type_jfieldID };
247
uint64_t argValues[NUM_ARGS] = { JNIENV64_FROM_JNIENV31(env), clazz, fieldID };
248
jobject returnValue;
249
FUNCTION_DESCRIPTOR_FROM_JNIENV31(env, GetStaticObjectField);
250
j9_cel4ro64_call_function(functionDescriptor, argTypes, argValues, NUM_ARGS, CEL4RO64_type_jobject, &returnValue);
251
return returnValue;
252
}
253
254
jboolean JNICALL
255
GetStaticBooleanField(JNIEnv *env, jclass clazz, jfieldID fieldID)
256
{
257
const jint NUM_ARGS = 3;
258
J9_CEL4RO64_ArgType argTypes[NUM_ARGS] = { CEL4RO64_type_JNIEnv64, CEL4RO64_type_jobject, CEL4RO64_type_jfieldID };
259
uint64_t argValues[NUM_ARGS] = { JNIENV64_FROM_JNIENV31(env), clazz, fieldID };
260
jboolean returnValue;
261
FUNCTION_DESCRIPTOR_FROM_JNIENV31(env, GetStaticBooleanField);
262
j9_cel4ro64_call_function(functionDescriptor, argTypes, argValues, NUM_ARGS, CEL4RO64_type_jboolean, &returnValue);
263
return returnValue;
264
}
265
266
jbyte JNICALL
267
GetStaticByteField(JNIEnv *env, jclass clazz, jfieldID fieldID)
268
{
269
const jint NUM_ARGS = 3;
270
J9_CEL4RO64_ArgType argTypes[NUM_ARGS] = { CEL4RO64_type_JNIEnv64, CEL4RO64_type_jobject, CEL4RO64_type_jfieldID };
271
uint64_t argValues[NUM_ARGS] = { JNIENV64_FROM_JNIENV31(env), clazz, fieldID };
272
jbyte returnValue;
273
FUNCTION_DESCRIPTOR_FROM_JNIENV31(env, GetStaticByteField);
274
j9_cel4ro64_call_function(functionDescriptor, argTypes, argValues, NUM_ARGS, CEL4RO64_type_jbyte, &returnValue);
275
return returnValue;
276
}
277
278
jchar JNICALL
279
GetStaticCharField(JNIEnv *env, jclass clazz, jfieldID fieldID)
280
{
281
const jint NUM_ARGS = 3;
282
J9_CEL4RO64_ArgType argTypes[NUM_ARGS] = { CEL4RO64_type_JNIEnv64, CEL4RO64_type_jobject, CEL4RO64_type_jfieldID };
283
uint64_t argValues[NUM_ARGS] = { JNIENV64_FROM_JNIENV31(env), clazz, fieldID };
284
jchar returnValue;
285
FUNCTION_DESCRIPTOR_FROM_JNIENV31(env, GetStaticCharField);
286
j9_cel4ro64_call_function(functionDescriptor, argTypes, argValues, NUM_ARGS, CEL4RO64_type_jchar, &returnValue);
287
return returnValue;
288
}
289
290
jshort JNICALL
291
GetStaticShortField(JNIEnv *env, jclass clazz, jfieldID fieldID)
292
{
293
const jint NUM_ARGS = 3;
294
J9_CEL4RO64_ArgType argTypes[NUM_ARGS] = { CEL4RO64_type_JNIEnv64, CEL4RO64_type_jobject, CEL4RO64_type_jfieldID };
295
uint64_t argValues[NUM_ARGS] = { JNIENV64_FROM_JNIENV31(env), clazz, fieldID };
296
jshort returnValue;
297
FUNCTION_DESCRIPTOR_FROM_JNIENV31(env, GetStaticShortField);
298
j9_cel4ro64_call_function(functionDescriptor, argTypes, argValues, NUM_ARGS, CEL4RO64_type_jshort, &returnValue);
299
return returnValue;
300
}
301
302
jint JNICALL
303
GetStaticIntField(JNIEnv *env, jclass clazz, jfieldID fieldID)
304
{
305
const jint NUM_ARGS = 3;
306
J9_CEL4RO64_ArgType argTypes[NUM_ARGS] = { CEL4RO64_type_JNIEnv64, CEL4RO64_type_jobject, CEL4RO64_type_jfieldID };
307
uint64_t argValues[NUM_ARGS] = { JNIENV64_FROM_JNIENV31(env), clazz, fieldID };
308
jint returnValue;
309
FUNCTION_DESCRIPTOR_FROM_JNIENV31(env, GetStaticIntField);
310
j9_cel4ro64_call_function(functionDescriptor, argTypes, argValues, NUM_ARGS, CEL4RO64_type_jint, &returnValue);
311
return returnValue;
312
}
313
314
jlong JNICALL
315
GetStaticLongField(JNIEnv *env, jclass clazz, jfieldID fieldID)
316
{
317
const jint NUM_ARGS = 3;
318
J9_CEL4RO64_ArgType argTypes[NUM_ARGS] = { CEL4RO64_type_JNIEnv64, CEL4RO64_type_jobject, CEL4RO64_type_jfieldID };
319
uint64_t argValues[NUM_ARGS] = { JNIENV64_FROM_JNIENV31(env), clazz, fieldID };
320
jlong returnValue;
321
FUNCTION_DESCRIPTOR_FROM_JNIENV31(env, GetStaticLongField);
322
j9_cel4ro64_call_function(functionDescriptor, argTypes, argValues, NUM_ARGS, CEL4RO64_type_jlong, &returnValue);
323
return returnValue;
324
}
325
326
jfloat JNICALL
327
GetStaticFloatField(JNIEnv *env, jclass clazz, jfieldID fieldID)
328
{
329
const jint NUM_ARGS = 3;
330
J9_CEL4RO64_ArgType argTypes[NUM_ARGS] = { CEL4RO64_type_JNIEnv64, CEL4RO64_type_jobject, CEL4RO64_type_jfieldID };
331
uint64_t argValues[NUM_ARGS] = { JNIENV64_FROM_JNIENV31(env), clazz, fieldID };
332
jfloat returnValue;
333
FUNCTION_DESCRIPTOR_FROM_JNIENV31(env, GetStaticFloatField);
334
j9_cel4ro64_call_function(functionDescriptor, argTypes, argValues, NUM_ARGS, CEL4RO64_type_jfloat, &returnValue);
335
return returnValue;
336
}
337
338
jdouble JNICALL
339
GetStaticDoubleField(JNIEnv *env, jclass clazz, jfieldID fieldID)
340
{
341
const jint NUM_ARGS = 3;
342
J9_CEL4RO64_ArgType argTypes[NUM_ARGS] = { CEL4RO64_type_JNIEnv64, CEL4RO64_type_jobject, CEL4RO64_type_jfieldID };
343
uint64_t argValues[NUM_ARGS] = { JNIENV64_FROM_JNIENV31(env), clazz, fieldID };
344
jdouble returnValue;
345
FUNCTION_DESCRIPTOR_FROM_JNIENV31(env, GetStaticDoubleField);
346
j9_cel4ro64_call_function(functionDescriptor, argTypes, argValues, NUM_ARGS, CEL4RO64_type_jdouble, &returnValue);
347
return returnValue;
348
}
349
350
void JNICALL
351
SetStaticObjectField(JNIEnv *env, jclass clazz, jfieldID fieldID, jobject value)
352
{
353
const jint NUM_ARGS = 4;
354
J9_CEL4RO64_ArgType argTypes[NUM_ARGS] = { CEL4RO64_type_JNIEnv64, CEL4RO64_type_jobject, CEL4RO64_type_jfieldID, CEL4RO64_type_jobject};
355
uint64_t argValues[NUM_ARGS] = { JNIENV64_FROM_JNIENV31(env), clazz, fieldID, value };
356
FUNCTION_DESCRIPTOR_FROM_JNIENV31(env, SetStaticObjectField);
357
j9_cel4ro64_call_function(functionDescriptor, argTypes, argValues, NUM_ARGS, CEL4RO64_type_void, NULL);
358
return;
359
}
360
361
void JNICALL
362
SetStaticBooleanField(JNIEnv *env, jclass clazz, jfieldID fieldID, jboolean value)
363
{
364
const jint NUM_ARGS = 4;
365
J9_CEL4RO64_ArgType argTypes[NUM_ARGS] = { CEL4RO64_type_JNIEnv64, CEL4RO64_type_jobject, CEL4RO64_type_jfieldID, CEL4RO64_type_jboolean};
366
uint64_t argValues[NUM_ARGS] = { JNIENV64_FROM_JNIENV31(env), clazz, fieldID, value };
367
FUNCTION_DESCRIPTOR_FROM_JNIENV31(env, SetStaticBooleanField);
368
j9_cel4ro64_call_function(functionDescriptor, argTypes, argValues, NUM_ARGS, CEL4RO64_type_void, NULL);
369
return;
370
}
371
372
void JNICALL
373
SetStaticByteField(JNIEnv *env, jclass clazz, jfieldID fieldID, jbyte value)
374
{
375
const jint NUM_ARGS = 4;
376
J9_CEL4RO64_ArgType argTypes[NUM_ARGS] = { CEL4RO64_type_JNIEnv64, CEL4RO64_type_jobject, CEL4RO64_type_jfieldID, CEL4RO64_type_jbyte};
377
uint64_t argValues[NUM_ARGS] = { JNIENV64_FROM_JNIENV31(env), clazz, fieldID, value };
378
FUNCTION_DESCRIPTOR_FROM_JNIENV31(env, SetStaticByteField);
379
j9_cel4ro64_call_function(functionDescriptor, argTypes, argValues, NUM_ARGS, CEL4RO64_type_void, NULL);
380
return;
381
}
382
383
void JNICALL
384
SetStaticCharField(JNIEnv *env, jclass clazz, jfieldID fieldID, jchar value)
385
{
386
const jint NUM_ARGS = 4;
387
J9_CEL4RO64_ArgType argTypes[NUM_ARGS] = { CEL4RO64_type_JNIEnv64, CEL4RO64_type_jobject, CEL4RO64_type_jfieldID, CEL4RO64_type_jchar};
388
uint64_t argValues[NUM_ARGS] = { JNIENV64_FROM_JNIENV31(env), clazz, fieldID, value };
389
FUNCTION_DESCRIPTOR_FROM_JNIENV31(env, SetStaticCharField);
390
j9_cel4ro64_call_function(functionDescriptor, argTypes, argValues, NUM_ARGS, CEL4RO64_type_void, NULL);
391
return;
392
}
393
394
void JNICALL
395
SetStaticShortField(JNIEnv *env, jclass clazz, jfieldID fieldID, jshort value)
396
{
397
const jint NUM_ARGS = 4;
398
J9_CEL4RO64_ArgType argTypes[NUM_ARGS] = { CEL4RO64_type_JNIEnv64, CEL4RO64_type_jobject, CEL4RO64_type_jfieldID, CEL4RO64_type_jshort};
399
uint64_t argValues[NUM_ARGS] = { JNIENV64_FROM_JNIENV31(env), clazz, fieldID, value };
400
FUNCTION_DESCRIPTOR_FROM_JNIENV31(env, SetStaticShortField);
401
j9_cel4ro64_call_function(functionDescriptor, argTypes, argValues, NUM_ARGS, CEL4RO64_type_void, NULL);
402
return;
403
}
404
405
void JNICALL
406
SetStaticIntField(JNIEnv *env, jclass clazz, jfieldID fieldID, jint value)
407
{
408
const jint NUM_ARGS = 4;
409
J9_CEL4RO64_ArgType argTypes[NUM_ARGS] = { CEL4RO64_type_JNIEnv64, CEL4RO64_type_jobject, CEL4RO64_type_jfieldID, CEL4RO64_type_jint};
410
uint64_t argValues[NUM_ARGS] = { JNIENV64_FROM_JNIENV31(env), clazz, fieldID, value };
411
FUNCTION_DESCRIPTOR_FROM_JNIENV31(env, SetStaticIntField);
412
j9_cel4ro64_call_function(functionDescriptor, argTypes, argValues, NUM_ARGS, CEL4RO64_type_void, NULL);
413
return;
414
}
415
416
void JNICALL
417
SetStaticLongField(JNIEnv *env, jclass clazz, jfieldID fieldID, jlong value)
418
{
419
const jint NUM_ARGS = 4;
420
J9_CEL4RO64_ArgType argTypes[NUM_ARGS] = { CEL4RO64_type_JNIEnv64, CEL4RO64_type_jobject, CEL4RO64_type_jfieldID, CEL4RO64_type_jlong};
421
uint64_t argValues[NUM_ARGS] = { JNIENV64_FROM_JNIENV31(env), clazz, fieldID, value };
422
FUNCTION_DESCRIPTOR_FROM_JNIENV31(env, SetStaticLongField);
423
j9_cel4ro64_call_function(functionDescriptor, argTypes, argValues, NUM_ARGS, CEL4RO64_type_void, NULL);
424
return;
425
}
426
427
void JNICALL
428
SetStaticFloatField(JNIEnv *env, jclass clazz, jfieldID fieldID, jfloat value)
429
{
430
const jint NUM_ARGS = 4;
431
J9_CEL4RO64_ArgType argTypes[NUM_ARGS] = { CEL4RO64_type_JNIEnv64, CEL4RO64_type_jobject, CEL4RO64_type_jfieldID, CEL4RO64_type_jfloat};
432
uint64_t argValues[NUM_ARGS] = { JNIENV64_FROM_JNIENV31(env), clazz, fieldID, 0 };
433
/* Floating point parameters requires special handling */
434
jfloat *floatArgPtr = (jfloat *)(&(argValues[3]));
435
*floatArgPtr = value;
436
FUNCTION_DESCRIPTOR_FROM_JNIENV31(env, SetStaticFloatField);
437
j9_cel4ro64_call_function(functionDescriptor, argTypes, argValues, NUM_ARGS, CEL4RO64_type_void, NULL);
438
return;
439
}
440
441
void JNICALL
442
SetStaticDoubleField(JNIEnv *env, jclass clazz, jfieldID fieldID, jdouble value)
443
{
444
const jint NUM_ARGS = 4;
445
J9_CEL4RO64_ArgType argTypes[NUM_ARGS] = { CEL4RO64_type_JNIEnv64, CEL4RO64_type_jobject, CEL4RO64_type_jfieldID, CEL4RO64_type_jdouble};
446
uint64_t argValues[NUM_ARGS] = { JNIENV64_FROM_JNIENV31(env), clazz, fieldID, 0 };
447
448
/* Floating point parameters requires special handling */
449
jdouble *doubleArgPtr = (jdouble *)(&(argValues[3]));
450
*doubleArgPtr = value;
451
452
FUNCTION_DESCRIPTOR_FROM_JNIENV31(env, SetStaticDoubleField);
453
j9_cel4ro64_call_function(functionDescriptor, argTypes, argValues, NUM_ARGS, CEL4RO64_type_void, NULL);
454
return;
455
}
456
457
jobject JNICALL
458
GetObjectArrayElement(JNIEnv *env, jobjectArray array, jsize index)
459
{
460
const jint NUM_ARGS = 3;
461
J9_CEL4RO64_ArgType argTypes[NUM_ARGS] = { CEL4RO64_type_JNIEnv64, CEL4RO64_type_jarray, CEL4RO64_type_jsize };
462
uint64_t argValues[NUM_ARGS] = { JNIENV64_FROM_JNIENV31(env), array, index };
463
jobject returnValue;
464
FUNCTION_DESCRIPTOR_FROM_JNIENV31(env, GetObjectArrayElement);
465
j9_cel4ro64_call_function(functionDescriptor, argTypes, argValues, NUM_ARGS, CEL4RO64_type_jobject, &returnValue);
466
return returnValue;
467
}
468
469
void JNICALL
470
SetObjectArrayElement(JNIEnv *env, jobjectArray array, jsize index, jobject value)
471
{
472
const jint NUM_ARGS = 4;
473
J9_CEL4RO64_ArgType argTypes[NUM_ARGS] = { CEL4RO64_type_JNIEnv64, CEL4RO64_type_jarray, CEL4RO64_type_jsize, CEL4RO64_type_jobject };
474
uint64_t argValues[NUM_ARGS] = { JNIENV64_FROM_JNIENV31(env), array, index , value };
475
FUNCTION_DESCRIPTOR_FROM_JNIENV31(env, SetObjectArrayElement);
476
j9_cel4ro64_call_function(functionDescriptor, argTypes, argValues, NUM_ARGS, CEL4RO64_type_void, NULL);
477
return;
478
}
479
480