7
// native function declaration
8
#include "com_sun_electric_tool_simulation_test_Netscan4JNI.h"
10
// for netscan library to work
18
There is no equivalent Java primitive for unsigned variable such as unsigned int.
19
Care must be taken if signed Java variable and unsigned C variable are used simultaneously.
22
JNIEXPORT jint JNICALL Java_com_sun_electric_tool_simulation_test_Netscan4JNI_netUSB_1Connect
23
(JNIEnv *env, jclass cls, jstring jstr)
28
//variable preparation phase
29
str = (char *)((*env)->GetStringUTFChars(env, jstr, 0));
32
hsock = NetUSB_Connect(str);
35
(*env)->ReleaseStringUTFChars(env, jstr, str);
40
JNIEXPORT jint JNICALL Java_com_sun_electric_tool_simulation_test_Netscan4JNI_netUSB_1hard_1reset
41
(JNIEnv *env, jclass cls, jlong kHz, jint mV)
44
hrresult = NetUSB_hard_reset(mV, SLEW_SLOW);
45
/* printf("hrresult=%d\n", hrresult); */
49
JNIEXPORT jint JNICALL Java_com_sun_electric_tool_simulation_test_Netscan4JNI_netUSB_1set_1scan_1clk
50
(JNIEnv *env, jclass cls, jlong kHz)
53
sscresult = NetUSB_set_scan_clk(kHz, CLOCK_AUTO, CLOCK_AUTO);
54
/* printf("sccresult=%d\n", sscresult); */
59
JNIEXPORT jint JNICALL Java_com_sun_electric_tool_simulation_test_Netscan4JNI_netUSB_1set_1trst
60
(JNIEnv *env, jclass cls, jint signal)
62
return NetUSB_set_trst(signal);
65
JNIEXPORT jint JNICALL Java_com_sun_electric_tool_simulation_test_Netscan4JNI_netUSB_1Disconnect
66
(JNIEnv *env, jclass cls)
68
return NetUSB_Disconnect();
71
#undef INCLUDE_UNUSED_FUNCTIONS
72
#ifdef INCLUDE_UNUSED_FUNCTIONS
74
JNIEXPORT jint JNICALL Java_com_sun_electric_tool_simulation_test_Netscan4JNI_netUSB_1tms_1reset
75
(JNIEnv *env, jclass cls, jint tap)
78
result = NetUSB_tms_reset(tap);
82
JNIEXPORT jint JNICALL Java_com_sun_electric_tool_simulation_test_Netscan4JNI_netUSB_1move_1to_1state
83
(JNIEnv *env, jclass cls, jint state, jint tap)
86
result = NetUSB_move_to_state(tap,state);
92
JNIEXPORT jint JNICALL Java_com_sun_electric_tool_simulation_test_Netscan4JNI_netUSB_1scan_1ir
93
(JNIEnv *env, jclass cls, jshortArray scanIn, jlong bitLength, jshortArray scanOut, jint tap)
95
//variable preparation phase
96
jshort *scanInP = (*env)->GetShortArrayElements(env, scanIn, 0);
97
jshort *scanOutP = (*env)->GetShortArrayElements(env, scanOut, 0);
101
result = NetUSB_scan_ir(tap, scanInP, bitLength, scanOutP);
104
(*env)->ReleaseShortArrayElements(env, scanIn, scanInP, 0);
105
(*env)->ReleaseShortArrayElements(env, scanOut, scanOutP, 0);
109
JNIEXPORT jint JNICALL Java_com_sun_electric_tool_simulation_test_Netscan4JNI_netUSB_1scan_1dr
110
(JNIEnv *env, jclass cls, jshortArray scanIn, jlong bitLength, jshortArray scanOut, jint tap)
112
//variable preparation phase
113
jshort *scanInP = (*env)->GetShortArrayElements(env, scanIn, 0);
114
jshort *scanOutP = (*env)->GetShortArrayElements(env, scanOut, 0);
118
result = NetUSB_scan_dr(tap, scanInP, bitLength, scanOutP);
121
(*env)->ReleaseShortArrayElements(env, scanIn, scanInP, 0);
122
(*env)->ReleaseShortArrayElements(env, scanOut, scanOutP, 0);
126
JNIEXPORT jint JNICALL Java_com_sun_electric_tool_simulation_test_Netscan4JNI_netUSB_1AccessScanGPIO
127
(JNIEnv *env, jclass cls, jint tap, jint gpio, jint mode, int value)
129
return NetUSB_AccessScanGPIO(tap, gpio, mode, value);