12 * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
13 * FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License
14 * version 2 for more details (a copy is included in the LICENSE file that
15 * accompanied this code).
16 *
17 * You should have received a copy of the GNU General Public License version
18 * 2 along with this work; if not, write to the Free Software Foundation,
19 * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.
20 *
21 * Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA
22 * or visit www.oracle.com if you need additional information or have any
23 * questions.
24 */
25
26 #include "jdk_internal_foreign_abi_fallback_LibFallback.h"
27
28 #include <ffi.h>
29
30 #include <errno.h>
31 #include <stdint.h>
32 #ifdef _WIN64
33 #include <Windows.h>
34 #include <Winsock2.h>
35 #endif
36
37 #include "jlong.h"
38
39 static JavaVM* VM;
40 static jclass LibFallback_class;
41 static jmethodID LibFallback_doUpcall_ID;
42 static const char* LibFallback_doUpcall_sig = "(JJLjava/lang/invoke/MethodHandle;)V";
43
44 JNIEXPORT void JNICALL
45 Java_jdk_internal_foreign_abi_fallback_LibFallback_init(JNIEnv* env, jclass cls) {
46 (*env)->GetJavaVM(env, &VM);
47 LibFallback_class = (*env)->FindClass(env, "jdk/internal/foreign/abi/fallback/LibFallback");
48 LibFallback_doUpcall_ID = (*env)->GetStaticMethodID(env,
49 LibFallback_class, "doUpcall", LibFallback_doUpcall_sig);
50 }
51
189 JNIEXPORT jlong JNICALL
190 Java_jdk_internal_foreign_abi_fallback_LibFallback_ffi_1type_1uint64(JNIEnv* env, jclass cls) {
191 return ptr_to_jlong(&ffi_type_uint64);
192 }
193 JNIEXPORT jlong JNICALL
194 Java_jdk_internal_foreign_abi_fallback_LibFallback_ffi_1type_1sint64(JNIEnv* env, jclass cls) {
195 return ptr_to_jlong(&ffi_type_sint64);
196 }
197 JNIEXPORT jlong JNICALL
198 Java_jdk_internal_foreign_abi_fallback_LibFallback_ffi_1type_1float(JNIEnv* env, jclass cls) {
199 return ptr_to_jlong(&ffi_type_float);
200 }
201 JNIEXPORT jlong JNICALL
202 Java_jdk_internal_foreign_abi_fallback_LibFallback_ffi_1type_1double(JNIEnv* env, jclass cls) {
203 return ptr_to_jlong(&ffi_type_double);
204 }
205 JNIEXPORT jlong JNICALL
206 Java_jdk_internal_foreign_abi_fallback_LibFallback_ffi_1type_1pointer(JNIEnv* env, jclass cls) {
207 return ptr_to_jlong(&ffi_type_pointer);
208 }
|
12 * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
13 * FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License
14 * version 2 for more details (a copy is included in the LICENSE file that
15 * accompanied this code).
16 *
17 * You should have received a copy of the GNU General Public License version
18 * 2 along with this work; if not, write to the Free Software Foundation,
19 * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.
20 *
21 * Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA
22 * or visit www.oracle.com if you need additional information or have any
23 * questions.
24 */
25
26 #include "jdk_internal_foreign_abi_fallback_LibFallback.h"
27
28 #include <ffi.h>
29
30 #include <errno.h>
31 #include <stdint.h>
32 #include <wchar.h>
33 #ifdef _WIN64
34 #include <Windows.h>
35 #include <Winsock2.h>
36 #endif
37
38 #include "jlong.h"
39
40 static JavaVM* VM;
41 static jclass LibFallback_class;
42 static jmethodID LibFallback_doUpcall_ID;
43 static const char* LibFallback_doUpcall_sig = "(JJLjava/lang/invoke/MethodHandle;)V";
44
45 JNIEXPORT void JNICALL
46 Java_jdk_internal_foreign_abi_fallback_LibFallback_init(JNIEnv* env, jclass cls) {
47 (*env)->GetJavaVM(env, &VM);
48 LibFallback_class = (*env)->FindClass(env, "jdk/internal/foreign/abi/fallback/LibFallback");
49 LibFallback_doUpcall_ID = (*env)->GetStaticMethodID(env,
50 LibFallback_class, "doUpcall", LibFallback_doUpcall_sig);
51 }
52
190 JNIEXPORT jlong JNICALL
191 Java_jdk_internal_foreign_abi_fallback_LibFallback_ffi_1type_1uint64(JNIEnv* env, jclass cls) {
192 return ptr_to_jlong(&ffi_type_uint64);
193 }
194 JNIEXPORT jlong JNICALL
195 Java_jdk_internal_foreign_abi_fallback_LibFallback_ffi_1type_1sint64(JNIEnv* env, jclass cls) {
196 return ptr_to_jlong(&ffi_type_sint64);
197 }
198 JNIEXPORT jlong JNICALL
199 Java_jdk_internal_foreign_abi_fallback_LibFallback_ffi_1type_1float(JNIEnv* env, jclass cls) {
200 return ptr_to_jlong(&ffi_type_float);
201 }
202 JNIEXPORT jlong JNICALL
203 Java_jdk_internal_foreign_abi_fallback_LibFallback_ffi_1type_1double(JNIEnv* env, jclass cls) {
204 return ptr_to_jlong(&ffi_type_double);
205 }
206 JNIEXPORT jlong JNICALL
207 Java_jdk_internal_foreign_abi_fallback_LibFallback_ffi_1type_1pointer(JNIEnv* env, jclass cls) {
208 return ptr_to_jlong(&ffi_type_pointer);
209 }
210
211 JNIEXPORT jint JNICALL
212 Java_jdk_internal_foreign_abi_fallback_LibFallback_ffi_1sizeof_1short(JNIEnv* env, jclass cls) {
213 return sizeof(short);
214 }
215
216 JNIEXPORT jint JNICALL
217 Java_jdk_internal_foreign_abi_fallback_LibFallback_ffi_1sizeof_1int(JNIEnv* env, jclass cls) {
218 return sizeof(int);
219 }
220
221 JNIEXPORT jint JNICALL
222 Java_jdk_internal_foreign_abi_fallback_LibFallback_ffi_1sizeof_1long(JNIEnv* env, jclass cls) {
223 return sizeof(long);
224 }
225
226 JNIEXPORT jint JNICALL
227 Java_jdk_internal_foreign_abi_fallback_LibFallback_ffi_1sizeof_1wchar(JNIEnv* env, jclass cls) {
228 return sizeof(wchar_t);
229 }
|