Line 347... |
Line 347... |
(*env)->SetObjectField(env, usb_devObj, usb_devFID_prev, usb_devObj_prev);
|
(*env)->SetObjectField(env, usb_devObj, usb_devFID_prev, usb_devObj_prev);
|
(*env)->SetObjectField(env, usb_devObj, usb_devFID_bus, usb_busObj);
|
(*env)->SetObjectField(env, usb_devObj, usb_devFID_bus, usb_busObj);
|
(*env)->SetObjectField(env, usb_devObj, usb_devFID_filename, (*env)->NewStringUTF(env, dev->filename));
|
(*env)->SetObjectField(env, usb_devObj, usb_devFID_filename, (*env)->NewStringUTF(env, dev->filename));
|
(*env)->SetByteField(env, usb_devObj, usb_devFID_devnum, dev->devnum);
|
(*env)->SetByteField(env, usb_devObj, usb_devFID_devnum, dev->devnum);
|
(*env)->SetByteField(env, usb_devObj, usb_devFID_num_children, dev->num_children);
|
(*env)->SetByteField(env, usb_devObj, usb_devFID_num_children, dev->num_children);
|
(*env)->SetLongField(env, usb_devObj, usb_devFID_devStructAddr, (jlong) (int) dev);
|
(*env)->SetLongField(env, usb_devObj, usb_devFID_devStructAddr, (jlong) dev);
|
|
|
// device descriptor
|
// device descriptor
|
usb_devDescObj = (*env)->NewObject(env, usb_devDescClazz, usb_devDescMid);
|
usb_devDescObj = (*env)->NewObject(env, usb_devDescClazz, usb_devDescMid);
|
if (!usb_devDescObj) {
|
if (!usb_devDescObj) {
|
setLibusbJavaError("shared library error: Error NewObject (usb_devDescObj)");
|
setLibusbJavaError("shared library error: Error NewObject (usb_devDescObj)");
|
Line 543... |
Line 543... |
/*
|
/*
|
* Class: ch_ntb_usb_LibusbJava
|
* Class: ch_ntb_usb_LibusbJava
|
* Method: usb_open
|
* Method: usb_open
|
* Signature: (Lch/ntb/usb/Usb_Device;)I
|
* Signature: (Lch/ntb/usb/Usb_Device;)I
|
*/
|
*/
|
JNIEXPORT jint JNICALL Java_ch_ntb_usb_LibusbJava_usb_1open
|
JNIEXPORT jlong JNICALL Java_ch_ntb_usb_LibusbJava_usb_1open
|
(JNIEnv *env, jclass obj, jobject dev)
|
(JNIEnv *env, jclass obj, jobject dev)
|
{
|
{
|
clearLibusbJavaError();
|
clearLibusbJavaError();
|
if (busses == NULL) {
|
if (busses == NULL) {
|
setLibusbJavaError("shared library error: busses is null");
|
setLibusbJavaError("shared library error: busses is null");
|
Line 558... |
Line 558... |
struct usb_bus *tmpBus;
|
struct usb_bus *tmpBus;
|
|
|
for (tmpBus = busses; tmpBus; tmpBus = tmpBus->next) {
|
for (tmpBus = busses; tmpBus; tmpBus = tmpBus->next) {
|
struct usb_device *device;
|
struct usb_device *device;
|
for (device = tmpBus->devices; device; device = device->next) {
|
for (device = tmpBus->devices; device; device = device->next) {
|
if ((jlong) (int) device == usb_device_cmp_addr){
|
if ((jlong) device == usb_device_cmp_addr){
|
return (jint) usb_open(device);
|
return (jlong) usb_open(device);
|
}
|
}
|
}
|
}
|
}
|
}
|
setLibusbJavaError("shared library error: no device with dev.devnum found on busses");
|
setLibusbJavaError("shared library error: no device with dev.devnum found on busses");
|
return 0;
|
return 0;
|
}
|
}
|
|
|
/*
|
/*
|
* Class: ch_ntb_usb_LibusbJava
|
* Class: ch_ntb_usb_LibusbJava
|
* Method: usb_close
|
* Method: usb_close
|
* Signature: (I)I
|
* Signature: (J)I
|
*/
|
*/
|
JNIEXPORT jint JNICALL Java_ch_ntb_usb_LibusbJava_usb_1close
|
JNIEXPORT jint JNICALL Java_ch_ntb_usb_LibusbJava_usb_1close
|
(JNIEnv *env, jclass obj, jint dev_handle)
|
(JNIEnv *env, jclass obj, jlong dev_handle)
|
{
|
{
|
clearLibusbJavaError();
|
clearLibusbJavaError();
|
return (jint) usb_close((usb_dev_handle *) dev_handle);
|
return (jint) usb_close((usb_dev_handle *) dev_handle);
|
}
|
}
|
|
|
/*
|
/*
|
* Class: ch_ntb_usb_LibusbJava
|
* Class: ch_ntb_usb_LibusbJava
|
* Method: usb_set_configuration
|
* Method: usb_set_configuration
|
* Signature: (II)I
|
* Signature: (JI)I
|
*/
|
*/
|
JNIEXPORT jint JNICALL Java_ch_ntb_usb_LibusbJava_usb_1set_1configuration
|
JNIEXPORT jint JNICALL Java_ch_ntb_usb_LibusbJava_usb_1set_1configuration
|
(JNIEnv *env, jclass obj, jint dev_handle, jint configuration)
|
(JNIEnv *env, jclass obj, jlong dev_handle, jint configuration)
|
{
|
{
|
clearLibusbJavaError();
|
clearLibusbJavaError();
|
return usb_set_configuration((usb_dev_handle *) dev_handle, configuration);
|
return usb_set_configuration((usb_dev_handle *) dev_handle, configuration);
|
}
|
}
|
|
|
/*
|
/*
|
* Class: ch_ntb_usb_LibusbJava
|
* Class: ch_ntb_usb_LibusbJava
|
* Method: usb_set_altinterface
|
* Method: usb_set_altinterface
|
* Signature: (II)I
|
* Signature: (JI)I
|
*/
|
*/
|
JNIEXPORT jint JNICALL Java_ch_ntb_usb_LibusbJava_usb_1set_1altinterface
|
JNIEXPORT jint JNICALL Java_ch_ntb_usb_LibusbJava_usb_1set_1altinterface
|
(JNIEnv *env, jclass obj, jint dev_handle, jint alternate)
|
(JNIEnv *env, jclass obj, jlong dev_handle, jint alternate)
|
{
|
{
|
clearLibusbJavaError();
|
clearLibusbJavaError();
|
return usb_set_altinterface((usb_dev_handle *) dev_handle, alternate);
|
return usb_set_altinterface((usb_dev_handle *) dev_handle, alternate);
|
}
|
}
|
|
|
/*
|
/*
|
* Class: ch_ntb_usb_LibusbJava
|
* Class: ch_ntb_usb_LibusbJava
|
* Method: usb_clear_halt
|
* Method: usb_clear_halt
|
* Signature: (II)I
|
* Signature: (JI)I
|
*/
|
*/
|
JNIEXPORT jint JNICALL Java_ch_ntb_usb_LibusbJava_usb_1clear_1halt
|
JNIEXPORT jint JNICALL Java_ch_ntb_usb_LibusbJava_usb_1clear_1halt
|
(JNIEnv *env, jclass obj, jint dev_handle, jint ep)
|
(JNIEnv *env, jclass obj, jlong dev_handle, jint ep)
|
{
|
{
|
clearLibusbJavaError();
|
clearLibusbJavaError();
|
return usb_clear_halt((usb_dev_handle *) dev_handle, (unsigned) ep);
|
return usb_clear_halt((usb_dev_handle *) dev_handle, (unsigned) ep);
|
}
|
}
|
|
|
/*
|
/*
|
* Class: ch_ntb_usb_LibusbJava
|
* Class: ch_ntb_usb_LibusbJava
|
* Method: usb_reset
|
* Method: usb_reset
|
* Signature: (I)I
|
* Signature: (J)I
|
*/
|
*/
|
JNIEXPORT jint JNICALL Java_ch_ntb_usb_LibusbJava_usb_1reset
|
JNIEXPORT jint JNICALL Java_ch_ntb_usb_LibusbJava_usb_1reset
|
(JNIEnv *env, jclass obj, jint dev_handle)
|
(JNIEnv *env, jclass obj, jlong dev_handle)
|
{
|
{
|
clearLibusbJavaError();
|
clearLibusbJavaError();
|
return usb_reset((usb_dev_handle *) dev_handle);
|
return usb_reset((usb_dev_handle *) dev_handle);
|
}
|
}
|
|
|
/*
|
/*
|
* Class: ch_ntb_usb_LibusbJava
|
* Class: ch_ntb_usb_LibusbJava
|
* Method: usb_claim_interface
|
* Method: usb_claim_interface
|
* Signature: (II)I
|
* Signature: (JI)I
|
*/
|
*/
|
JNIEXPORT jint JNICALL Java_ch_ntb_usb_LibusbJava_usb_1claim_1interface
|
JNIEXPORT jint JNICALL Java_ch_ntb_usb_LibusbJava_usb_1claim_1interface
|
(JNIEnv *env, jclass obj, jint dev_handle, jint interface)
|
(JNIEnv *env, jclass obj, jlong dev_handle, jint interface)
|
{
|
{
|
clearLibusbJavaError();
|
clearLibusbJavaError();
|
return usb_claim_interface((usb_dev_handle *) dev_handle, interface);
|
return usb_claim_interface((usb_dev_handle *) dev_handle, interface);
|
}
|
}
|
|
|
/*
|
/*
|
* Class: ch_ntb_usb_LibusbJava
|
* Class: ch_ntb_usb_LibusbJava
|
* Method: usb_release_interface
|
* Method: usb_release_interface
|
* Signature: (II)I
|
* Signature: (JI)I
|
*/
|
*/
|
JNIEXPORT jint JNICALL Java_ch_ntb_usb_LibusbJava_usb_1release_1interface
|
JNIEXPORT jint JNICALL Java_ch_ntb_usb_LibusbJava_usb_1release_1interface
|
(JNIEnv *env, jclass obj, jint dev_handle, jint interface)
|
(JNIEnv *env, jclass obj, jlong dev_handle, jint interface)
|
{
|
{
|
clearLibusbJavaError();
|
clearLibusbJavaError();
|
return usb_release_interface((usb_dev_handle *) dev_handle, interface);
|
return usb_release_interface((usb_dev_handle *) dev_handle, interface);
|
}
|
}
|
|
|
/*
|
/*
|
* Class: ch_ntb_usb_LibusbJava
|
* Class: ch_ntb_usb_LibusbJava
|
* Method: usb_control_msg
|
* Method: usb_control_msg
|
* Signature: (IIIII[BII)I
|
* Signature: (JIIII[BII)I
|
*/
|
*/
|
JNIEXPORT jint JNICALL Java_ch_ntb_usb_LibusbJava_usb_1control_1msg
|
JNIEXPORT jint JNICALL Java_ch_ntb_usb_LibusbJava_usb_1control_1msg
|
(JNIEnv *env, jclass obj, jint dev_handle, jint requesttype, jint request, jint value, jint index, jbyteArray jbytes, jint size, jint timeout)
|
(JNIEnv *env, jclass obj, jlong dev_handle, jint requesttype, jint request, jint value, jint index, jbyteArray jbytes, jint size, jint timeout)
|
{
|
{
|
clearLibusbJavaError();
|
clearLibusbJavaError();
|
jbyte *bytes = (*env)->GetByteArrayElements(env, jbytes, NULL);
|
jbyte *bytes = (*env)->GetByteArrayElements(env, jbytes, NULL);
|
int num_bytes = usb_control_msg((usb_dev_handle *) dev_handle, requesttype, request, value, index, (char *) bytes, size, timeout);
|
int num_bytes = usb_control_msg((usb_dev_handle *) dev_handle, requesttype, request, value, index, (char *) bytes, size, timeout);
|
(*env)->SetByteArrayRegion(env, jbytes, 0, size, bytes);
|
(*env)->SetByteArrayRegion(env, jbytes, 0, size, bytes);
|
Line 670... |
Line 670... |
}
|
}
|
|
|
/*
|
/*
|
* Class: ch_ntb_usb_LibusbJava
|
* Class: ch_ntb_usb_LibusbJava
|
* Method: usb_get_string
|
* Method: usb_get_string
|
* Signature: (III)Ljava/lang/String;
|
* Signature: (JII)Ljava/lang/String;
|
*/
|
*/
|
JNIEXPORT jstring JNICALL Java_ch_ntb_usb_LibusbJava_usb_1get_1string
|
JNIEXPORT jstring JNICALL Java_ch_ntb_usb_LibusbJava_usb_1get_1string
|
(JNIEnv *env, jclass obj, jint dev_handle, jint index, jint langid)
|
(JNIEnv *env, jclass obj, jlong dev_handle, jint index, jint langid)
|
{
|
{
|
clearLibusbJavaError();
|
clearLibusbJavaError();
|
char string[256];
|
char string[256];
|
int retVal = usb_get_string((usb_dev_handle *) dev_handle, index, langid, string, 256);
|
int retVal = usb_get_string((usb_dev_handle *) dev_handle, index, langid, string, 256);
|
if (retVal > 0)
|
if (retVal > 0)
|
Line 686... |
Line 686... |
}
|
}
|
|
|
/*
|
/*
|
* Class: ch_ntb_usb_LibusbJava
|
* Class: ch_ntb_usb_LibusbJava
|
* Method: usb_get_string_simple
|
* Method: usb_get_string_simple
|
* Signature: (II)Ljava/lang/String;
|
* Signature: (JI)Ljava/lang/String;
|
*/
|
*/
|
JNIEXPORT jstring JNICALL Java_ch_ntb_usb_LibusbJava_usb_1get_1string_1simple
|
JNIEXPORT jstring JNICALL Java_ch_ntb_usb_LibusbJava_usb_1get_1string_1simple
|
(JNIEnv *env, jclass obj, jint dev_handle, jint index)
|
(JNIEnv *env, jclass obj, jlong dev_handle, jint index)
|
{
|
{
|
clearLibusbJavaError();
|
clearLibusbJavaError();
|
char string[256];
|
char string[256];
|
int retVal = usb_get_string_simple((usb_dev_handle *) dev_handle, index, string, 256);
|
int retVal = usb_get_string_simple((usb_dev_handle *) dev_handle, index, string, 256);
|
if (retVal > 0)
|
if (retVal > 0)
|
Line 702... |
Line 702... |
}
|
}
|
|
|
/*
|
/*
|
* Class: ch_ntb_usb_LibusbJava
|
* Class: ch_ntb_usb_LibusbJava
|
* Method: usb_get_descriptor
|
* Method: usb_get_descriptor
|
* Signature: (IBBI)Ljava/lang/String;
|
* Signature: (JBBI)Ljava/lang/String;
|
*/
|
*/
|
JNIEXPORT jstring JNICALL Java_ch_ntb_usb_LibusbJava_usb_1get_1descriptor
|
JNIEXPORT jstring JNICALL Java_ch_ntb_usb_LibusbJava_usb_1get_1descriptor
|
(JNIEnv *env, jclass obj, jint dev_handle, jbyte type, jbyte index, jint size)
|
(JNIEnv *env, jclass obj, jlong dev_handle, jbyte type, jbyte index, jint size)
|
{
|
{
|
clearLibusbJavaError();
|
clearLibusbJavaError();
|
char *string = (char *) malloc(size * sizeof(char));
|
char *string = (char *) malloc(size * sizeof(char));
|
int retVal = usb_get_descriptor((usb_dev_handle *) dev_handle, (unsigned) type,
|
int retVal = usb_get_descriptor((usb_dev_handle *) dev_handle, (unsigned) type,
|
(unsigned) index, string, size);
|
(unsigned) index, string, size);
|
Line 719... |
Line 719... |
}
|
}
|
|
|
/*
|
/*
|
* Class: ch_ntb_usb_LibusbJava
|
* Class: ch_ntb_usb_LibusbJava
|
* Method: usb_get_descriptor_by_endpoint
|
* Method: usb_get_descriptor_by_endpoint
|
* Signature: (IIBBI)Ljava/lang/String;
|
* Signature: (JIBBI)Ljava/lang/String;
|
*/
|
*/
|
JNIEXPORT jstring JNICALL Java_ch_ntb_usb_LibusbJava_usb_1get_1descriptor_1by_1endpoint
|
JNIEXPORT jstring JNICALL Java_ch_ntb_usb_LibusbJava_usb_1get_1descriptor_1by_1endpoint
|
(JNIEnv *env, jclass obj, jint dev_handle, jint ep, jbyte type, jbyte index, jint size)
|
(JNIEnv *env, jclass obj, jlong dev_handle, jint ep, jbyte type, jbyte index, jint size)
|
{
|
{
|
clearLibusbJavaError();
|
clearLibusbJavaError();
|
char *string = (char *) malloc(size * sizeof(char));
|
char *string = (char *) malloc(size * sizeof(char));
|
int retVal = usb_get_descriptor_by_endpoint((usb_dev_handle *) dev_handle, ep, (unsigned) type,
|
int retVal = usb_get_descriptor_by_endpoint((usb_dev_handle *) dev_handle, ep, (unsigned) type,
|
(unsigned) index, string, size);
|
(unsigned) index, string, size);
|
Line 736... |
Line 736... |
}
|
}
|
|
|
/*
|
/*
|
* Class: ch_ntb_usb_LibusbJava
|
* Class: ch_ntb_usb_LibusbJava
|
* Method: usb_bulk_write
|
* Method: usb_bulk_write
|
* Signature: (II[BII)I
|
* Signature: (JI[BII)I
|
*/
|
*/
|
JNIEXPORT jint JNICALL Java_ch_ntb_usb_LibusbJava_usb_1bulk_1write
|
JNIEXPORT jint JNICALL Java_ch_ntb_usb_LibusbJava_usb_1bulk_1write
|
(JNIEnv *env, jclass obj, jint dev_handle, jint ep, jbyteArray jbytes, jint size, jint timeout)
|
(JNIEnv *env, jclass obj, jlong dev_handle, jint ep, jbyteArray jbytes, jint size, jint timeout)
|
{
|
{
|
clearLibusbJavaError();
|
clearLibusbJavaError();
|
jbyte *bytes = (*env)->GetByteArrayElements(env, jbytes, NULL);
|
jbyte *bytes = (*env)->GetByteArrayElements(env, jbytes, NULL);
|
int num_bytes = usb_bulk_write((usb_dev_handle *) dev_handle, ep, (char *) bytes, size, timeout);
|
int num_bytes = usb_bulk_write((usb_dev_handle *) dev_handle, ep, (char *) bytes, size, timeout);
|
(*env)->ReleaseByteArrayElements(env, jbytes, bytes, 0);
|
(*env)->ReleaseByteArrayElements(env, jbytes, bytes, 0);
|
Line 751... |
Line 751... |
}
|
}
|
|
|
/*
|
/*
|
* Class: ch_ntb_usb_LibusbJava
|
* Class: ch_ntb_usb_LibusbJava
|
* Method: usb_bulk_read
|
* Method: usb_bulk_read
|
* Signature: (II[BII)I
|
* Signature: (JI[BII)I
|
*/
|
*/
|
JNIEXPORT jint JNICALL Java_ch_ntb_usb_LibusbJava_usb_1bulk_1read
|
JNIEXPORT jint JNICALL Java_ch_ntb_usb_LibusbJava_usb_1bulk_1read
|
(JNIEnv *env, jclass obj, jint dev_handle, jint ep, jbyteArray jbytes, jint size, jint timeout)
|
(JNIEnv *env, jclass obj, jlong dev_handle, jint ep, jbyteArray jbytes, jint size, jint timeout)
|
{
|
{
|
clearLibusbJavaError();
|
clearLibusbJavaError();
|
char *bytes = (char *) malloc(size * sizeof(char));
|
char *bytes = (char *) malloc(size * sizeof(char));
|
int num_bytes = usb_bulk_read((usb_dev_handle *) dev_handle, ep, bytes, size, timeout);
|
int num_bytes = usb_bulk_read((usb_dev_handle *) dev_handle, ep, bytes, size, timeout);
|
if (!bytes) { return num_bytes; }
|
if (!bytes) { return num_bytes; }
|
Line 768... |
Line 768... |
}
|
}
|
|
|
/*
|
/*
|
* Class: ch_ntb_usb_LibusbJava
|
* Class: ch_ntb_usb_LibusbJava
|
* Method: usb_interrupt_write
|
* Method: usb_interrupt_write
|
* Signature: (II[BII)I
|
* Signature: (JI[BII)I
|
*/
|
*/
|
JNIEXPORT jint JNICALL Java_ch_ntb_usb_LibusbJava_usb_1interrupt_1write
|
JNIEXPORT jint JNICALL Java_ch_ntb_usb_LibusbJava_usb_1interrupt_1write
|
(JNIEnv *env, jclass obj, jint dev_handle, jint ep, jbyteArray jbytes, jint size, jint timeout)
|
(JNIEnv *env, jclass obj, jlong dev_handle, jint ep, jbyteArray jbytes, jint size, jint timeout)
|
{
|
{
|
clearLibusbJavaError();
|
clearLibusbJavaError();
|
jbyte *bytes = (*env)->GetByteArrayElements(env, jbytes, NULL);
|
jbyte *bytes = (*env)->GetByteArrayElements(env, jbytes, NULL);
|
int num_bytes = usb_interrupt_write( (usb_dev_handle *) dev_handle, ep, (char *) bytes, size, timeout);
|
int num_bytes = usb_interrupt_write( (usb_dev_handle *) dev_handle, ep, (char *) bytes, size, timeout);
|
(*env)->ReleaseByteArrayElements(env, jbytes, bytes, 0);
|
(*env)->ReleaseByteArrayElements(env, jbytes, bytes, 0);
|
Line 783... |
Line 783... |
}
|
}
|
|
|
/*
|
/*
|
* Class: ch_ntb_usb_LibusbJava
|
* Class: ch_ntb_usb_LibusbJava
|
* Method: usb_interrupt_read
|
* Method: usb_interrupt_read
|
* Signature: (II[BII)I
|
* Signature: (JI[BII)I
|
*/
|
*/
|
JNIEXPORT jint JNICALL Java_ch_ntb_usb_LibusbJava_usb_1interrupt_1read
|
JNIEXPORT jint JNICALL Java_ch_ntb_usb_LibusbJava_usb_1interrupt_1read
|
(JNIEnv *env, jclass obj, jint dev_handle, jint ep, jbyteArray jbytes, jint size, jint timeout)
|
(JNIEnv *env, jclass obj, jlong dev_handle, jint ep, jbyteArray jbytes, jint size, jint timeout)
|
{
|
{
|
clearLibusbJavaError();
|
clearLibusbJavaError();
|
char *bytes = (char *) malloc(size * sizeof(char));
|
char *bytes = (char *) malloc(size * sizeof(char));
|
int num_bytes = usb_interrupt_read((usb_dev_handle *) dev_handle, ep, bytes, size, timeout);
|
int num_bytes = usb_interrupt_read((usb_dev_handle *) dev_handle, ep, bytes, size, timeout);
|
if (!bytes) { return num_bytes; }
|
if (!bytes) { return num_bytes; }
|