From e303988e46dda86157b99856bdd316970f840f1e Mon Sep 17 00:00:00 2001 From: Vincent Date: Wed, 28 Jan 2015 11:50:12 +0100 Subject: [PATCH] JNI interface using JVM arm arch-type instead of rootfs's. Resetting Lines Status when ioctl fails. --- README.txt | 32 ++++++++++++++++++++-- src/cpp/_nix_based/jssc.cpp | 7 ++++- src/java/jssc/SerialNativeInterface.java | 3 +- src/java/libs/linux/libjSSC-2.8_armhf.so | Bin 10631 -> 14066 bytes src/java/libs/linux/libjSSC-2.8_armsf.so | Bin 10779 -> 18555 bytes src/java/libs/linux/libjSSC-2.8_x86.so | Bin 13720 -> 17111 bytes src/java/libs/linux/libjSSC-2.8_x86_64.so | Bin 14464 -> 18611 bytes 7 files changed, 37 insertions(+), 5 deletions(-) mode change 100644 => 100755 src/java/libs/linux/libjSSC-2.8_armhf.so mode change 100644 => 100755 src/java/libs/linux/libjSSC-2.8_armsf.so mode change 100644 => 100755 src/java/libs/linux/libjSSC-2.8_x86.so mode change 100644 => 100755 src/java/libs/linux/libjSSC-2.8_x86_64.so diff --git a/README.txt b/README.txt index c5fba559c..0ef14ebe0 100644 --- a/README.txt +++ b/README.txt @@ -1,4 +1,32 @@ -jSSC-2.8.0 Release version (24.01.2014) +[VinceOPS] jSSC-2.8.0 - First Fork and Changes (28.01.2015) + +Essentially working on Linux (PC & ARM), this fork will contain small fixes/changes which match my projetcs requirements. + +In this build: + Fixes: + * DSR "off" event (DSR state 0) was not emitted using (PC) Ubuntu 13.10 and (ARM SF) Debian Wheezy. + * Using the current JVM "arm type" (Soft-Float / Hard-Float) to define which library (sf or hf) should be loaded. Indeed, on MULTIARCH systems (like Debian), it is possible to use a Soft-Float JVM whereas the rootfs is Hard-Float. Reading /proc/self/exe ELF format tells what is the rootfs "arm type", not the JVM (loading an ARMHF library with an ARMSF JVM obviously fails). + +Note: + How did I compile the .so libraries on my PC (x86_64) running on Ubuntu 13.10: + * PC (x86_64): g++ jssc.cpp -I//include -I//include/linux -shared -fPIC -o libjSSC-2.8_x86_64.so + * PC (x86), using g++-multilib: g++ jssc.cpp -I/usr/lib/jvm/jdk1.8.0_25/include -I/usr/lib/jvm/jdk1.8.0_25/include/linux -shared -fPIC -m32 -o libjSSC-2.8_x86.so + + * ARM (SF): arm-linux-gnueabi-g++ jssc.cpp -I//include -I//include/linux -shared -o libjSSC-2.8_armsf.so + * ARM (HF): arm-linux-gnueabihf-g++-4.8 jssc.cpp -I//include -I//include/linux -shared -fPIC -o libjSSC-2.8_armhf.so + + Any version of the ARM toolchain > 4.7 was fine. + Optimisation level 2 (-O2). + + + + + +============= Previous Builds ============== + +/////////////////////////////////////////// +//jSSC-2.8.0 Release version (24.01.2014)// +/////////////////////////////////////////// This version contains native libs for Windows(x86, x86-64), Linux(x86, x86-64, ARM soft & hard float), Solaris(x86, x86-64), Mac OS X(x86, x86-64, PPC, PPC64). All native libs contains in the jssc.jar file and you don't need manage native libs manually. @@ -15,8 +43,6 @@ In this build: With Best Regards, Sokolov Alexey aka scream3r. -============= Previous Builds ============== - /////////////////////////////////////////// //jSSC-2.6.0 Release version (01.06.2013)// /////////////////////////////////////////// diff --git a/src/cpp/_nix_based/jssc.cpp b/src/cpp/_nix_based/jssc.cpp index 634b62018..34e2644a7 100644 --- a/src/cpp/_nix_based/jssc.cpp +++ b/src/cpp/_nix_based/jssc.cpp @@ -654,7 +654,12 @@ JNIEXPORT jboolean JNICALL Java_jssc_SerialNativeInterface_sendBreak */ int getLinesStatus(jlong portHandle) { int statusLines; - ioctl(portHandle, TIOCMGET, &statusLines); + + if(ioctl(portHandle, TIOCMGET, &statusLines) != 0) { + // return 0 in case of failure, otherwise statusLines stays unchanged + return 0; + } + return statusLines; } diff --git a/src/java/jssc/SerialNativeInterface.java b/src/java/jssc/SerialNativeInterface.java index c5264f5e8..60b2b848b 100644 --- a/src/java/jssc/SerialNativeInterface.java +++ b/src/java/jssc/SerialNativeInterface.java @@ -122,7 +122,8 @@ else if(architecture.equals("arm")) {//since 2.1.0 } else { try { - Process readelfProcess = Runtime.getRuntime().exec("readelf -A /proc/self/exe"); + // get the ELF format of the JVM binary to know which library should be loaded (soft-float or hard-float) + Process readelfProcess = Runtime.getRuntime().exec("readelf -A " + System.getProperty("java.home") + "/bin/java"); BufferedReader reader = new BufferedReader(new InputStreamReader(readelfProcess.getInputStream())); String buffer = ""; while((buffer = reader.readLine()) != null && !buffer.isEmpty()){ diff --git a/src/java/libs/linux/libjSSC-2.8_armhf.so b/src/java/libs/linux/libjSSC-2.8_armhf.so old mode 100644 new mode 100755 index 3742fbe08f4313d2b997ce0acaf96dffad5602b4..39b0da6f0bf756d7f2e2e896c45f47f592f3a545 GIT binary patch literal 14066 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 diff --git a/src/java/libs/linux/libjSSC-2.8_armsf.so b/src/java/libs/linux/libjSSC-2.8_armsf.so old mode 100644 new mode 100755 index 894ec80876869e481b4ca60e8dba39a18dcd49bb..08e922646665357bf74989f226a43aaa15672ceb GIT binary patch literal 18555 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 literal 10779 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

(rII3xRjE}VlJ(43ok%zc6m z;2g|Z+Ts~tUX!OD&kBKO#A!T>Yz+YBJN20BgfwW!KgtO=19(12^NbK8pxyI=70m$L zQ|vK3V+8u**du1mdl2C0@k|nUR@u+>IeIHV(^sB#{=S01^*PP48->8pbIx1PStR2>@XdbG=V`TLzk1$wl>_B#M+<|Z5U@LAV|#y-M30N6@89Wm%RV<>a%5pzzb gJpsMb4g>7gV}9n_D0^)UE}nYxT)e1`it0A;zhsNm;s5{u diff --git a/src/java/libs/linux/libjSSC-2.8_x86.so b/src/java/libs/linux/libjSSC-2.8_x86.so old mode 100644 new mode 100755 index 8ea5d6e21e6a8259c97500e3d0e76646e849599d..c604e1000c05f459449b6bcda772015ae6eb9c0c GIT binary patch literal 17111 zcmeHOe^^}AnLYy(G7+3Xi%6B4QAZ_8D8!i3HED4>7nZ0%32sixIF%WhMRwY!B7lW47?w$?tnTTIhBNK~vE5u>y3d(ORZGa<$J z?4KT!)4$`e`W3L$vAfylmUz;+ijPD?QzMx`+so*3oOVImImZ{imd-?I4%p zKO1y5BDycbh4{tv$uLK!7lU4cI2W-PaULSW*R(g@c;m&l?UCnd|7F|!wCjqm|MA7H z+kg4n$GhLLzid13&dWE~Z-%lhc3^!Zg}0+?e~21&A`>)da&fJKLv_hvoEmx!v6kip}IF!i<7@& zlSy$p(l4c8&YKaONO%nZO8kxqv;Kcm3G_hxngKwGXL9oOK%8#?P$yz(3VzHonL&O> z3VuFC-lmlDS0<~=_T}R1d6YLRh5xOT{zp^FM^faiFk!C!O)32ErN}E|`4@yJK)+8H znIadk_gp39bde>_KzT2e`7G39c_rv5nAU@Z_)Op-VCp>aCEy>#KrYZR_klGFKM1Fb zSz;EHfAC8}ysyi96u8+fi?L_U6vM1khAv8$^Ptt zJk5p-JUX5a`GZci$Jt&h@<;7z&k?Uj`4GyV()sU3dxIFyb{)SB z`EHCiqGRFltlto7@`N>Si{|kNPh(S~COi!w!n3q?naAgE@vm5qLaT=~ucoz# zhWaKgh+JQ=W+R5}Z)s@?d4i#OG!EJI!BE&Q8bkGxr(^+YE%vthR(Li4;?2ujH()xh zm$?;Q&AYf!3+uVljV0{YYP>Dp4PjB=fOKQH+3)wMbV#MOdgRLzHZ1kaWqrXWDFY|_PnpQ4m=OnlxdqwTaX@!EVqISi!Y@1pdxh5JE zNhYVQ(Bk*{6hBnLdn4Aq!RHTZp8CK|BJ2

oq}^Y2{EQS{oXmj8a;8sI^I(wh{(a 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⪻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