1 /*
 2  * Copyright (c) 2020, Oracle and/or its affiliates. All rights reserved.
 3  * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
 4  *
 5  * This code is free software; you can redistribute it and/or modify it
 6  * under the terms of the GNU General Public License version 2 only, as
 7  * published by the Free Software Foundation.
 8  *
 9  * This code is distributed in the hope that it will be useful, but WITHOUT
10  * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
11  * FITNESS FOR A PARTICULAR PURPOSE.  See the GNU General Public License
12  * version 2 for more details (a copy is included in the LICENSE file that
13  * accompanied this code).
14  *
15  * You should have received a copy of the GNU General Public License version
16  * 2 along with this work; if not, write to the Free Software Foundation,
17  * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.
18  *
19  * Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA
20  * or visit www.oracle.com if you need additional information or have any
21  * questions.
22  */
23 #include <jni.h>
24 #include <stdlib.h>
25 
26 #include "jlong.h"
27 #include "JNICB.h"
28 
29 JNIEXPORT void JNICALL Java_org_openjdk_bench_jdk_incubator_foreign_Upcalls_blank
30   (JNIEnv *env, jclass cls, jlong cb) {
31     JNICB jniCb = jlong_to_ptr(cb);
32     (*env)->CallStaticVoidMethod(env, jniCb->holder, jniCb->mid);
33 }
34 
35 JNIEXPORT jint JNICALL Java_org_openjdk_bench_jdk_incubator_foreign_Upcalls_identity
36   (JNIEnv *env, jclass cls, jint x, jlong cb) {
37     JNICB jniCb = jlong_to_ptr(cb);
38     return (*env)->CallStaticIntMethod(env, jniCb->holder, jniCb->mid, x);
39 }
40 
41 JNIEXPORT jint JNICALL Java_org_openjdk_bench_jdk_incubator_foreign_Upcalls_args5
42   (JNIEnv *env, jclass cls,
43       jlong a0, jdouble a1, jlong a2, jdouble a3, jlong a4,
44       jlong cb) {
45     JNICB jniCb = jlong_to_ptr(cb);
46     return (*env)->CallStaticIntMethod(env, jniCb->holder, jniCb->mid, a0, a1, a2, a3, a4);
47 }
48 
49 JNIEXPORT jint JNICALL Java_org_openjdk_bench_jdk_incubator_foreign_Upcalls_args10
50   (JNIEnv *env, jclass cls,
51       jlong a0, jdouble a1, jlong a2, jdouble a3, jlong a4,
52       jdouble a5, jlong a6, jdouble a7, jlong a8, jdouble a9,
53       jlong cb) {
54     JNICB jniCb = jlong_to_ptr(cb);
55     return (*env)->CallStaticIntMethod(env, jniCb->holder, jniCb->mid, a0, a1, a2, a3, a4, a5, a6, a7, a8, a9);
56 }