< prev index next >

src/java.base/share/native/libfallbackLinker/fallbackLinker.c

Print this page

 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 }
< prev index next >