From ec0acd7ac4c89e3608c4dc92d85635e4924d2ba0 Mon Sep 17 00:00:00 2001 From: hedgecrw85 Date: Thu, 13 Aug 2015 16:45:05 -0500 Subject: [PATCH] Retry POSIX calls if EINTR value is returned and try a last-ditch brute force enumeration of any ports that aren't properly listed in sysfs on Linux. --- src/main/c/Linux/LinuxHelperFunctions.c | 50 ++++++++++++++++++ src/main/c/Linux/LinuxHelperFunctions.h | 2 + src/main/c/Linux/SerialPort_Linux.c | 18 ++++--- src/main/c/OSX/SerialPort_OSX.c | 15 ++++-- .../resources/Linux/armv5/libjSerialComm.so | Bin 25830 -> 26767 bytes .../Linux/armv6-hf/libjSerialComm.so | Bin 20941 -> 21854 bytes .../resources/Linux/armv6/libjSerialComm.so | Bin 25814 -> 26751 bytes .../Linux/armv7-hf/libjSerialComm.so | Bin 20941 -> 21854 bytes .../resources/Linux/armv7/libjSerialComm.so | Bin 23745 -> 24490 bytes .../resources/Linux/x86/libjSerialComm.so | Bin 17440 -> 21916 bytes .../resources/Linux/x86_64/libjSerialComm.so | Bin 21184 -> 23712 bytes 11 files changed, 74 insertions(+), 11 deletions(-) diff --git a/src/main/c/Linux/LinuxHelperFunctions.c b/src/main/c/Linux/LinuxHelperFunctions.c index 5f2acd5..3daa89b 100644 --- a/src/main/c/Linux/LinuxHelperFunctions.c +++ b/src/main/c/Linux/LinuxHelperFunctions.c @@ -53,6 +53,15 @@ void push_back(struct charPairVector* vector, const char* firstString, const cha strcpy(vector->second[vector->length-1], secondString); } +char keyExists(struct charPairVector* vector, const char* key) +{ + size_t i; + for (i = 0; i < vector->length; ++i) + if (strcmp(key, vector->first[i]) == 0) + return 1; + return 0; +} + void getFriendlyName(const char* productFile, char* friendlyName) { int friendlyNameLength = 0; @@ -201,6 +210,47 @@ void recursiveSearchForComPorts(charPairVector* comPorts, const char* fullPathTo closedir(directoryIterator); } +void lastDitchSearchForComPorts(charPairVector* comPorts) +{ + // Open the linux dev directory + DIR *directoryIterator = opendir("/dev/"); + if (!directoryIterator) + return; + + // Read all files in the current directory + struct dirent *directoryEntry = readdir(directoryIterator); + while (directoryEntry) + { + // See if the file names a potential serial port + if ((strlen(directoryEntry->d_name) >= 6) && (directoryEntry->d_name[0] == 't') && (directoryEntry->d_name[1] == 't') && (directoryEntry->d_name[2] == 'y') && + (((directoryEntry->d_name[3] == 'A') && (directoryEntry->d_name[4] == 'M') && (directoryEntry->d_name[5] == 'A')) || + ((directoryEntry->d_name[3] == 'A') && (directoryEntry->d_name[4] == 'C') && (directoryEntry->d_name[5] == 'M')) || + ((directoryEntry->d_name[3] == 'U') && (directoryEntry->d_name[4] == 'S') && (directoryEntry->d_name[5] == 'B')))) + { + // Determine system name of port + char* systemName = (char*)malloc(256); + strcpy(systemName, "/dev/"); + strcat(systemName, directoryEntry->d_name); + + // Set static friendly name + char* friendlyName = (char*)malloc(256); + strcpy(friendlyName, "USB-Based Serial Port"); + + // Determine if port is already in the list, and add it if not + if (!keyExists(comPorts, systemName)) + push_back(comPorts, systemName, friendlyName); + + // Clean up memory + free(systemName); + free(friendlyName); + } + directoryEntry = readdir(directoryIterator); + } + + // Close the directory + closedir(directoryIterator); +} + unsigned int getBaudRateCode(int baudRate) { switch (baudRate) diff --git a/src/main/c/Linux/LinuxHelperFunctions.h b/src/main/c/Linux/LinuxHelperFunctions.h index e92ad5a..aa2ebfd 100644 --- a/src/main/c/Linux/LinuxHelperFunctions.h +++ b/src/main/c/Linux/LinuxHelperFunctions.h @@ -32,9 +32,11 @@ typedef struct charPairVector size_t length; } charPairVector; void push_back(struct charPairVector* vector, const char* firstString, const char* secondString); +char keyExists(struct charPairVector* vector, const char* key); void getDriverName(const char* directoryToSearch, char* friendlyName); void recursiveSearchForComPorts(charPairVector* comPorts, const char* fullPathToSearch); +void lastDitchSearchForComPorts(charPairVector* comPorts); void getFriendlyName(const char* productFile, char* friendlyName); unsigned int getBaudRateCode(int baudRate); void setBaudRate(int portFD, int baudRate); diff --git a/src/main/c/Linux/SerialPort_Linux.c b/src/main/c/Linux/SerialPort_Linux.c index 338f6a6..f55675a 100644 --- a/src/main/c/Linux/SerialPort_Linux.c +++ b/src/main/c/Linux/SerialPort_Linux.c @@ -61,6 +61,7 @@ JNIEXPORT jobjectArray JNICALL Java_com_fazecast_jSerialComm_SerialPort_getCommP // Enumerate serial ports on machine charPairVector serialPorts = { (char**)malloc(1), (char**)malloc(1), 0 }; recursiveSearchForComPorts(&serialPorts, "/sys/devices/"); + lastDitchSearchForComPorts(&serialPorts); jobjectArray arrayObject = (*env)->NewObjectArray(env, serialPorts.length, serialCommClass, 0); int i; for (i = 0; i < serialPorts.length; ++i) @@ -317,7 +318,8 @@ JNIEXPORT jint JNICALL Java_com_fazecast_jSerialComm_SerialPort_waitForEvent(JNI FD_SET(serialPortFD, &waitingSet); // Wait for a serial port event - int retVal = select(serialPortFD + 1, &waitingSet, NULL, NULL, &timeout); + int retVal; + do { retVal = select(serialPortFD + 1, &waitingSet, NULL, NULL, &timeout); } while ((retVal < 0) && (errno == EINTR)); if (retVal <= 0) return 0; return (FD_ISSET(serialPortFD, &waitingSet)) ? com_fazecast_jSerialComm_SerialPort_LISTENING_EVENT_DATA_AVAILABLE : 0; @@ -361,7 +363,8 @@ JNIEXPORT jint JNICALL Java_com_fazecast_jSerialComm_SerialPort_readBytes(JNIEnv // While there are more bytes we are supposed to read while (bytesRemaining > 0) { - if ((numBytesRead = read(serialPortFD, readBuffer+numBytesReadTotal, bytesRemaining)) == -1) + do { numBytesRead = read(serialPortFD, readBuffer+numBytesReadTotal, bytesRemaining); } while ((numBytesRead < 0) && (errno == EINTR)); + if (numBytesRead == -1) { // Problem reading, close port close(serialPortFD); @@ -391,7 +394,8 @@ JNIEXPORT jint JNICALL Java_com_fazecast_jSerialComm_SerialPort_readBytes(JNIEnv // While there are more bytes we are supposed to read and the timeout has not elapsed do { - if ((numBytesRead = read(serialPortFD, readBuffer+numBytesReadTotal, bytesRemaining)) == -1) + do { numBytesRead = read(serialPortFD, readBuffer+numBytesReadTotal, bytesRemaining); } while ((numBytesRead < 0) && (errno == EINTR)); + if (numBytesRead == -1) { // Problem reading, close port close(serialPortFD); @@ -413,7 +417,8 @@ JNIEXPORT jint JNICALL Java_com_fazecast_jSerialComm_SerialPort_readBytes(JNIEnv else // Semi- or non-blocking specified { // Read from port - if ((numBytesRead = read(serialPortFD, readBuffer, bytesToRead)) == -1) + do { numBytesRead = read(serialPortFD, readBuffer, bytesToRead); } while ((numBytesRead < 0) && (errno == EINTR)); + if (numBytesRead == -1) { // Problem reading, close port close(serialPortFD); @@ -436,10 +441,11 @@ JNIEXPORT jint JNICALL Java_com_fazecast_jSerialComm_SerialPort_writeBytes(JNIEn if (serialPortFD <= 0) return -1; jbyte *writeBuffer = (*env)->GetByteArrayElements(env, buffer, 0); - int numBytesWritten; + int numBytesWritten, result = 0; // Write to port - if ((numBytesWritten = write(serialPortFD, writeBuffer, bytesToWrite)) == -1) + do { numBytesWritten = write(serialPortFD, writeBuffer, bytesToWrite); } while ((numBytesWritten < 0) && (errno == EINTR)); + if (numBytesWritten == -1) { // Problem writing, close port close(serialPortFD); diff --git a/src/main/c/OSX/SerialPort_OSX.c b/src/main/c/OSX/SerialPort_OSX.c index c442dc2..10d5c8b 100644 --- a/src/main/c/OSX/SerialPort_OSX.c +++ b/src/main/c/OSX/SerialPort_OSX.c @@ -356,7 +356,8 @@ JNIEXPORT jint JNICALL Java_com_fazecast_jSerialComm_SerialPort_waitForEvent(JNI FD_SET(serialPortFD, &waitingSet); // Wait for a serial port event - int retVal = select(serialPortFD + 1, &waitingSet, NULL, NULL, &timeout); + int retVal; + do { retVal = select(serialPortFD + 1, &waitingSet, NULL, NULL, &timeout); } while ((retVal < 0) && (errno == EINTR)); if (retVal <= 0) return 0; return (FD_ISSET(serialPortFD, &waitingSet)) ? com_fazecast_jSerialComm_SerialPort_LISTENING_EVENT_DATA_AVAILABLE : 0; @@ -401,7 +402,8 @@ JNIEXPORT jint JNICALL Java_com_fazecast_jSerialComm_SerialPort_readBytes(JNIEnv // While there are more bytes we are supposed to read while (bytesRemaining > 0) { - if ((numBytesRead = read(serialPortFD, readBuffer+numBytesReadTotal, bytesRemaining)) == -1) + do { numBytesRead = read(serialPortFD, readBuffer+numBytesReadTotal, bytesRemaining); } while ((numBytesRead < 0) && (errno == EINTR)); + if (numBytesRead == -1) { // Problem reading, close port close(serialPortFD); @@ -431,7 +433,8 @@ JNIEXPORT jint JNICALL Java_com_fazecast_jSerialComm_SerialPort_readBytes(JNIEnv // While there are more bytes we are supposed to read and the timeout has not elapsed do { - if ((numBytesRead = read(serialPortFD, readBuffer+numBytesReadTotal, bytesRemaining)) == -1) + do { numBytesRead = read(serialPortFD, readBuffer+numBytesReadTotal, bytesRemaining); } while ((numBytesRead < 0) && (errno == EINTR)); + if (numBytesRead == -1) { // Problem reading, close port close(serialPortFD); @@ -453,7 +456,8 @@ JNIEXPORT jint JNICALL Java_com_fazecast_jSerialComm_SerialPort_readBytes(JNIEnv else // Semi- or non-blocking specified { // Read from port - if ((numBytesRead = read(serialPortFD, readBuffer, bytesToRead)) == -1) + do { numBytesRead = read(serialPortFD, readBuffer, bytesToRead); } while ((numBytesRead < 0) && (errno == EINTR)); + if (numBytesRead == -1) { // Problem reading, close port close(serialPortFD); @@ -479,7 +483,8 @@ JNIEXPORT jint JNICALL Java_com_fazecast_jSerialComm_SerialPort_writeBytes(JNIEn int numBytesWritten; // Write to port - if ((numBytesWritten = write(serialPortFD, writeBuffer, bytesToWrite)) == -1) + do { numBytesWritten = write(serialPortFD, writeBuffer, bytesToWrite); } while ((numBytesWritten < 0) && (errno == EINTR)); + if (numBytesWritten == -1) { // Problem writing, close port close(serialPortFD); diff --git a/src/main/resources/Linux/armv5/libjSerialComm.so b/src/main/resources/Linux/armv5/libjSerialComm.so index 78df79e63db7cddc180f14ae4cbea7e17b61733f..e2e97eac91fbbb5704377f5ca6308b023743a2ee 100644 GIT binary patch delta 10470 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 delta 9465 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 diff --git a/src/main/resources/Linux/armv6/libjSerialComm.so b/src/main/resources/Linux/armv6/libjSerialComm.so index 7c43a441f2ada9257c39685906a509f85d5f1b73..b1f4c2a6070c97c2b9f08a5b982763aec35cbb90 100644 GIT binary patch delta 10517 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 Dxk7(_ delta 9468 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 diff --git a/src/main/resources/Linux/armv7-hf/libjSerialComm.so b/src/main/resources/Linux/armv7-hf/libjSerialComm.so index fefd3435fb919a8dec542a9b13077c1edd90baa7..3669a838915b34fe15554539f30a98e161afcc13 100644 GIT binary patch literal 21854 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 QGE#;d9Sz+nrOWm|0Z+7iJOBUy delta 9101 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 diff --git a/src/main/resources/Linux/armv7/libjSerialComm.so b/src/main/resources/Linux/armv7/libjSerialComm.so index 744b5ac6f5c5dc7b77a15f5b3df9b78ae6bd5ddf..21d84306cfca15f2d1a94d86b99780492908ef1a 100644 GIT binary patch delta 10197 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 Jzh0iC`)?$)ue<;N delta 9521 zcmcgyYjjjawyx8!bSDku0U;zY>7*0rkOcAqL&(GqbWRe8JOmUGTu}j|D~=gO1!d@f zaYPM}Od)~<%pG-PlshH{T;PC$!*YDUxVZc*RFR?74Ls09X~9!B}Fe7%UB6x?5DfhGczm37BWU;L=J0aOafE#y1_v~ zWR&U{GllgKnGNBfAg#RP8DV4-Q4ip52noP_k3mex_CCM7J%}|8dMBI zA(qbLq=f7gNEx75ke0F_+^GTZR34{GSW*Wm3X}=D81;ahmJ%u}Ak6^9gf+zGfNDT92_V@)zfdH`T;S8favJzVo>4N1m+Q^k zQDQSrMNSUCUuUOal;p&3l`698FfZqObh+-LFscl5rRO0hfRe*`Q^3cACV|F)%%Hg- z3+OJ8mTJQSjSh|J1WggB$tfo+-8d9 z1;&DmqpCvrr9$sverri_!Z#Yz3!jY09o9_1$!cDNzL#$_r58FQa{n`;)K?LB1J5u` zje9PlR5gDHzJ?-fQzEP^5%_a{+;o@pXD­DvwSm5f-+J?adI!y4I-vIjBMI$#%% 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 Y&xiLusqb+t+oI#W%irtaE5_^o7YLs|Pyhe` diff --git a/src/main/resources/Linux/x86/libjSerialComm.so b/src/main/resources/Linux/x86/libjSerialComm.so index 313404cb99afeb14a6e907893b50aac0d164eb22..a1d864c5a329b90a517b3f92d05f4d07750a232a 100644 GIT binary patch literal 21916 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 ?$*7%ixEU>Cpl>0p%@sPXD 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 literal 21184 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