Skip to main content
aboutsummaryrefslogtreecommitdiffstats
path: root/core
diff options
context:
space:
mode:
Diffstat (limited to 'core')
-rw-r--r--core/org.eclipse.cdt.core.qnx/library/.cvsignore2
-rw-r--r--core/org.eclipse.cdt.core.qnx/library/Makefile2
-rw-r--r--core/org.eclipse.cdt.core.qnx/library/pty/Makefile8
-rw-r--r--core/org.eclipse.cdt.core.qnx/library/pty/common.mk (renamed from core/org.eclipse.cdt.core.qnx/library/common.mk)30
-rw-r--r--core/org.eclipse.cdt.core.qnx/library/pty/openpty.c5
-rw-r--r--core/org.eclipse.cdt.core.qnx/library/pty/x86/Makefile (renamed from core/org.eclipse.cdt.core.qnx/library/x86/Makefile)0
-rw-r--r--core/org.eclipse.cdt.core.qnx/library/pty/x86/so/Makefile (renamed from core/org.eclipse.cdt.core.qnx/library/x86/so/Makefile)0
-rw-r--r--core/org.eclipse.cdt.core.qnx/library/spawner/Makefile8
-rw-r--r--core/org.eclipse.cdt.core.qnx/library/spawner/Spawner.h (renamed from core/org.eclipse.cdt.core.qnx/library/Spawner.h)90
-rw-r--r--core/org.eclipse.cdt.core.qnx/library/spawner/SpawnerInputStream.h (renamed from core/org.eclipse.cdt.core.qnx/library/SpawnerInputStream.h)64
-rw-r--r--core/org.eclipse.cdt.core.qnx/library/spawner/SpawnerOutputStream.h (renamed from core/org.eclipse.cdt.core.qnx/library/SpawnerOutputStream.h)58
-rw-r--r--core/org.eclipse.cdt.core.qnx/library/spawner/common.mk14
-rw-r--r--core/org.eclipse.cdt.core.qnx/library/spawner/iostream.c (renamed from core/org.eclipse.cdt.core.qnx/library/iostream.c)218
-rw-r--r--core/org.eclipse.cdt.core.qnx/library/spawner/spawner.c (renamed from core/org.eclipse.cdt.core.qnx/library/spawner.c)514
-rw-r--r--core/org.eclipse.cdt.core.qnx/library/spawner/x86/Makefile8
-rw-r--r--core/org.eclipse.cdt.core.qnx/library/spawner/x86/so/Makefile1
-rw-r--r--core/org.eclipse.cdt.core.qnx/library/x86/so/.cvsignore4
17 files changed, 531 insertions, 495 deletions
diff --git a/core/org.eclipse.cdt.core.qnx/library/.cvsignore b/core/org.eclipse.cdt.core.qnx/library/.cvsignore
index 5761abcfdf0..33ec1741ee8 100644
--- a/core/org.eclipse.cdt.core.qnx/library/.cvsignore
+++ b/core/org.eclipse.cdt.core.qnx/library/.cvsignore
@@ -1 +1,3 @@
*.o
+*.so
+*.a
diff --git a/core/org.eclipse.cdt.core.qnx/library/Makefile b/core/org.eclipse.cdt.core.qnx/library/Makefile
index 959e9b2292f..0f36af0e691 100644
--- a/core/org.eclipse.cdt.core.qnx/library/Makefile
+++ b/core/org.eclipse.cdt.core.qnx/library/Makefile
@@ -1,4 +1,4 @@
-LIST=CPU
+LIST=ALL
ifndef QRECURSE
QRECURSE=recurse.mk
ifdef QCONFIG
diff --git a/core/org.eclipse.cdt.core.qnx/library/pty/Makefile b/core/org.eclipse.cdt.core.qnx/library/pty/Makefile
new file mode 100644
index 00000000000..959e9b2292f
--- /dev/null
+++ b/core/org.eclipse.cdt.core.qnx/library/pty/Makefile
@@ -0,0 +1,8 @@
+LIST=CPU
+ifndef QRECURSE
+QRECURSE=recurse.mk
+ifdef QCONFIG
+QRDIR=$(dir $(QCONFIG))
+endif
+endif
+include $(QRDIR)$(QRECURSE)
diff --git a/core/org.eclipse.cdt.core.qnx/library/common.mk b/core/org.eclipse.cdt.core.qnx/library/pty/common.mk
index f85e2decabc..40fc9cca6c7 100644
--- a/core/org.eclipse.cdt.core.qnx/library/common.mk
+++ b/core/org.eclipse.cdt.core.qnx/library/pty/common.mk
@@ -1,16 +1,14 @@
-ifndef QCONFIG
-QCONFIG=qconfig.mk
-endif
-include $(QCONFIG)
-
-NAME=spawner
-
-include $(MKFILES_ROOT)/qtargets.mk
-
-ifeq ($(OS),nto)
-ifeq ($(IVEHOME),)
-IVEHOME:=/opt/vame/ive/bin
-endif
-EXTRA_INCVPATH+=$(IVEHOME)/include
-endif
-
+ifndef QCONFIG
+QCONFIG=qconfig.mk
+endif
+include $(QCONFIG)
+
+include $(MKFILES_ROOT)/qtargets.mk
+
+ifeq ($(OS),nto)
+ifeq ($(IVEHOME),)
+IVEHOME:=/opt/vame/ive/bin
+endif
+EXTRA_INCVPATH+=$(IVEHOME)/include
+endif
+
diff --git a/core/org.eclipse.cdt.core.qnx/library/pty/openpty.c b/core/org.eclipse.cdt.core.qnx/library/pty/openpty.c
index a946423199b..b1660a13b78 100644
--- a/core/org.eclipse.cdt.core.qnx/library/pty/openpty.c
+++ b/core/org.eclipse.cdt.core.qnx/library/pty/openpty.c
@@ -55,7 +55,8 @@ int
ptym_open(char * pts_name)
{
char *ptr1, *ptr2;
-
+ int fdm;
+
strcpy(pts_name, "/dev/ptyXY");
/* array index: 012345689 (for references in following code) */
for (ptr1 = "pqrstuvwxyzPQRST"; *ptr1 != 0; ptr1++) {
@@ -81,7 +82,7 @@ ptym_open(char * pts_name)
int
ptys_open(int fdm, char * pts_name)
{
- int gid;
+ int gid, fds;
struct group *grptr;
grptr = getgrnam("tty");
diff --git a/core/org.eclipse.cdt.core.qnx/library/x86/Makefile b/core/org.eclipse.cdt.core.qnx/library/pty/x86/Makefile
index 6a18617612e..6a18617612e 100644
--- a/core/org.eclipse.cdt.core.qnx/library/x86/Makefile
+++ b/core/org.eclipse.cdt.core.qnx/library/pty/x86/Makefile
diff --git a/core/org.eclipse.cdt.core.qnx/library/x86/so/Makefile b/core/org.eclipse.cdt.core.qnx/library/pty/x86/so/Makefile
index cc399272607..cc399272607 100644
--- a/core/org.eclipse.cdt.core.qnx/library/x86/so/Makefile
+++ b/core/org.eclipse.cdt.core.qnx/library/pty/x86/so/Makefile
diff --git a/core/org.eclipse.cdt.core.qnx/library/spawner/Makefile b/core/org.eclipse.cdt.core.qnx/library/spawner/Makefile
new file mode 100644
index 00000000000..959e9b2292f
--- /dev/null
+++ b/core/org.eclipse.cdt.core.qnx/library/spawner/Makefile
@@ -0,0 +1,8 @@
+LIST=CPU
+ifndef QRECURSE
+QRECURSE=recurse.mk
+ifdef QCONFIG
+QRDIR=$(dir $(QCONFIG))
+endif
+endif
+include $(QRDIR)$(QRECURSE)
diff --git a/core/org.eclipse.cdt.core.qnx/library/Spawner.h b/core/org.eclipse.cdt.core.qnx/library/spawner/Spawner.h
index 01ffb3cc1b2..287c8370ab0 100644
--- a/core/org.eclipse.cdt.core.qnx/library/Spawner.h
+++ b/core/org.eclipse.cdt.core.qnx/library/spawner/Spawner.h
@@ -1,45 +1,45 @@
-/* DO NOT EDIT THIS FILE - it is machine generated */
-#include <jni.h>
-/* Header for class com_qnx_tools_utils_spawner_Spawner */
-
-#ifndef _Included_com_qnx_tools_utils_spawner_Spawner
-#define _Included_com_qnx_tools_utils_spawner_Spawner
-#ifdef __cplusplus
-extern "C" {
-#endif
-/*
- * Class: org_eclipse_cdt_utils_spawner_Spawner
- * Method: exec0
- * Signature: ([Ljava/lang/String;[Ljava/lang/String;Ljava/lang/String;[I)I
- */
-JNIEXPORT jint JNICALL Java_org_eclipse_cdt_utils_spawner_Spawner_exec0
- (JNIEnv *, jobject, jobjectArray, jobjectArray, jstring, jintArray);
-
-/*
- * Class: org_eclipse_cdt_utils_spawner_Spawner
- * Method: exec0
- * Signature: ([Ljava/lang/String;[Ljava/lang/String;Ljava/lang/String;[I)I
- */
-JNIEXPORT jint JNICALL Java_org_eclipse_cdt_utils_spawner_Spawner_exec1
- (JNIEnv *, jobject, jobjectArray, jobjectArray, jstring);
-
-/*
- * Class: org_eclipse_cdt_utils_spawner_Spawner
- * Method: raise
- * Signature: (II)I
- */
-JNIEXPORT jint JNICALL Java_org_eclipse_cdt_utils_spawner_Spawner_raise
- (JNIEnv *, jobject, jint, jint);
-
-/*
- * Class: org_eclipse_cdt_utils_spawner_Spawner
- * Method: waitFor
- * Signature: (I)I
- */
-JNIEXPORT jint JNICALL Java_org_eclipse_cdt_utils_spawner_Spawner_waitFor
- (JNIEnv *, jobject, jint);
-
-#ifdef __cplusplus
-}
-#endif
-#endif
+/* DO NOT EDIT THIS FILE - it is machine generated */
+#include <jni.h>
+/* Header for class com_qnx_tools_utils_spawner_Spawner */
+
+#ifndef _Included_com_qnx_tools_utils_spawner_Spawner
+#define _Included_com_qnx_tools_utils_spawner_Spawner
+#ifdef __cplusplus
+extern "C" {
+#endif
+/*
+ * Class: org_eclipse_cdt_utils_spawner_Spawner
+ * Method: exec0
+ * Signature: ([Ljava/lang/String;[Ljava/lang/String;Ljava/lang/String;[I)I
+ */
+JNIEXPORT jint JNICALL Java_org_eclipse_cdt_utils_spawner_Spawner_exec0
+ (JNIEnv *, jobject, jobjectArray, jobjectArray, jstring, jintArray);
+
+/*
+ * Class: org_eclipse_cdt_utils_spawner_Spawner
+ * Method: exec0
+ * Signature: ([Ljava/lang/String;[Ljava/lang/String;Ljava/lang/String;[I)I
+ */
+JNIEXPORT jint JNICALL Java_org_eclipse_cdt_utils_spawner_Spawner_exec1
+ (JNIEnv *, jobject, jobjectArray, jobjectArray, jstring);
+
+/*
+ * Class: org_eclipse_cdt_utils_spawner_Spawner
+ * Method: raise
+ * Signature: (II)I
+ */
+JNIEXPORT jint JNICALL Java_org_eclipse_cdt_utils_spawner_Spawner_raise
+ (JNIEnv *, jobject, jint, jint);
+
+/*
+ * Class: org_eclipse_cdt_utils_spawner_Spawner
+ * Method: waitFor
+ * Signature: (I)I
+ */
+JNIEXPORT jint JNICALL Java_org_eclipse_cdt_utils_spawner_Spawner_waitFor
+ (JNIEnv *, jobject, jint);
+
+#ifdef __cplusplus
+}
+#endif
+#endif
diff --git a/core/org.eclipse.cdt.core.qnx/library/SpawnerInputStream.h b/core/org.eclipse.cdt.core.qnx/library/spawner/SpawnerInputStream.h
index 3b32d2b2806..ecf8f8c6a78 100644
--- a/core/org.eclipse.cdt.core.qnx/library/SpawnerInputStream.h
+++ b/core/org.eclipse.cdt.core.qnx/library/spawner/SpawnerInputStream.h
@@ -1,32 +1,32 @@
-/* DO NOT EDIT THIS FILE - it is machine generated */
-#include <jni.h>
-/* Header for class com_qnx_tools_utils_spawner_SpawnerInputStream */
-
-#ifndef _Included_com_qnx_tools_utils_spawner_SpawnerInputStream
-#define _Included_com_qnx_tools_utils_spawner_SpawnerInputStream
-#ifdef __cplusplus
-extern "C" {
-#endif
-#undef com_qnx_tools_utils_spawner_SpawnerInputStream_SKIP_BUFFER_SIZE
-#define com_qnx_tools_utils_spawner_SpawnerInputStream_SKIP_BUFFER_SIZE 2048L
-/* Inaccessible static: skipBuffer */
-/*
- * Class: org_elipse_cdt_utils_spawner_SpawnerInputStream
- * Method: read0
- * Signature: (I[BI)I
- */
-JNIEXPORT jint JNICALL Java_org_eclipse_cdt_utils_spawner_SpawnerInputStream_read0
- (JNIEnv *, jobject, jint, jbyteArray, jint);
-
-/*
- * Class: org_eclipse_cdt_utils_spawner_SpawnerInputStream
- * Method: close0
- * Signature: (I)I
- */
-JNIEXPORT jint JNICALL Java_org_eclipse_cdt_utils_spawner_SpawnerInputStream_close0
- (JNIEnv *, jobject, jint);
-
-#ifdef __cplusplus
-}
-#endif
-#endif
+/* DO NOT EDIT THIS FILE - it is machine generated */
+#include <jni.h>
+/* Header for class com_qnx_tools_utils_spawner_SpawnerInputStream */
+
+#ifndef _Included_com_qnx_tools_utils_spawner_SpawnerInputStream
+#define _Included_com_qnx_tools_utils_spawner_SpawnerInputStream
+#ifdef __cplusplus
+extern "C" {
+#endif
+#undef com_qnx_tools_utils_spawner_SpawnerInputStream_SKIP_BUFFER_SIZE
+#define com_qnx_tools_utils_spawner_SpawnerInputStream_SKIP_BUFFER_SIZE 2048L
+/* Inaccessible static: skipBuffer */
+/*
+ * Class: org_elipse_cdt_utils_spawner_SpawnerInputStream
+ * Method: read0
+ * Signature: (I[BI)I
+ */
+JNIEXPORT jint JNICALL Java_org_eclipse_cdt_utils_spawner_SpawnerInputStream_read0
+ (JNIEnv *, jobject, jint, jbyteArray, jint);
+
+/*
+ * Class: org_eclipse_cdt_utils_spawner_SpawnerInputStream
+ * Method: close0
+ * Signature: (I)I
+ */
+JNIEXPORT jint JNICALL Java_org_eclipse_cdt_utils_spawner_SpawnerInputStream_close0
+ (JNIEnv *, jobject, jint);
+
+#ifdef __cplusplus
+}
+#endif
+#endif
diff --git a/core/org.eclipse.cdt.core.qnx/library/SpawnerOutputStream.h b/core/org.eclipse.cdt.core.qnx/library/spawner/SpawnerOutputStream.h
index f835947e060..444d71c698c 100644
--- a/core/org.eclipse.cdt.core.qnx/library/SpawnerOutputStream.h
+++ b/core/org.eclipse.cdt.core.qnx/library/spawner/SpawnerOutputStream.h
@@ -1,29 +1,29 @@
-/* DO NOT EDIT THIS FILE - it is machine generated */
-#include <jni.h>
-/* Header for class com_qnx_tools_utils_spawner_SpawnerOutputStream */
-
-#ifndef _Included_com_qnx_tools_utils_spawner_SpawnerOutputStream
-#define _Included_com_qnx_tools_utils_spawner_SpawnerOutputStream
-#ifdef __cplusplus
-extern "C" {
-#endif
-/*
- * Class: org_eclipse_cdt_utils_spawner_SpawnerOutputStream
- * Method: write0
- * Signature: (I[BI)I
- */
-JNIEXPORT jint JNICALL Java_org_eclipse_cdt_utils_spawner_SpawnerOutputStream_write0
- (JNIEnv *, jobject, jint, jbyteArray, jint);
-
-/*
- * Class: org_eclipse_cdt_utils_spawner_SpawnerOutputStream
- * Method: close0
- * Signature: (I)I
- */
-JNIEXPORT jint JNICALL Java_org_eclipse_cdt_utils_spawner_SpawnerOutputStream_close0
- (JNIEnv *, jobject, jint);
-
-#ifdef __cplusplus
-}
-#endif
-#endif
+/* DO NOT EDIT THIS FILE - it is machine generated */
+#include <jni.h>
+/* Header for class com_qnx_tools_utils_spawner_SpawnerOutputStream */
+
+#ifndef _Included_com_qnx_tools_utils_spawner_SpawnerOutputStream
+#define _Included_com_qnx_tools_utils_spawner_SpawnerOutputStream
+#ifdef __cplusplus
+extern "C" {
+#endif
+/*
+ * Class: org_eclipse_cdt_utils_spawner_SpawnerOutputStream
+ * Method: write0
+ * Signature: (I[BI)I
+ */
+JNIEXPORT jint JNICALL Java_org_eclipse_cdt_utils_spawner_SpawnerOutputStream_write0
+ (JNIEnv *, jobject, jint, jbyteArray, jint);
+
+/*
+ * Class: org_eclipse_cdt_utils_spawner_SpawnerOutputStream
+ * Method: close0
+ * Signature: (I)I
+ */
+JNIEXPORT jint JNICALL Java_org_eclipse_cdt_utils_spawner_SpawnerOutputStream_close0
+ (JNIEnv *, jobject, jint);
+
+#ifdef __cplusplus
+}
+#endif
+#endif
diff --git a/core/org.eclipse.cdt.core.qnx/library/spawner/common.mk b/core/org.eclipse.cdt.core.qnx/library/spawner/common.mk
new file mode 100644
index 00000000000..40fc9cca6c7
--- /dev/null
+++ b/core/org.eclipse.cdt.core.qnx/library/spawner/common.mk
@@ -0,0 +1,14 @@
+ifndef QCONFIG
+QCONFIG=qconfig.mk
+endif
+include $(QCONFIG)
+
+include $(MKFILES_ROOT)/qtargets.mk
+
+ifeq ($(OS),nto)
+ifeq ($(IVEHOME),)
+IVEHOME:=/opt/vame/ive/bin
+endif
+EXTRA_INCVPATH+=$(IVEHOME)/include
+endif
+
diff --git a/core/org.eclipse.cdt.core.qnx/library/iostream.c b/core/org.eclipse.cdt.core.qnx/library/spawner/iostream.c
index e947522b48e..a840a1667b1 100644
--- a/core/org.eclipse.cdt.core.qnx/library/iostream.c
+++ b/core/org.eclipse.cdt.core.qnx/library/spawner/iostream.c
@@ -1,109 +1,109 @@
-/* Copyright, 2002, QNX Software Systems Ltd. All Rights Reserved
-
- * This source code has been published by QNX Software Systems
- * Ltd. (QSSL). However, any use, reproduction, modification, distribution
- * or transfer of this software, or any software which includes or is based
- * upon any of this code, is only permitted if expressly authorized by a
- * written license agreement from QSSL. Contact the QNX Developer's Network
- * or contact QSSL's legal department for more information.
- *
- *
- * iostream.c
- *
- * This is a JNI implementation of access to standard i/o streams
- */
-#include <string.h>
-#include <stdlib.h>
-#include <unistd.h>
-#include <sys/uio.h>
-#include <errno.h>
-
-#include "SpawnerInputStream.h"
-#include "SpawnerOutputStream.h"
-
-
-#include "jni.h"
-
-
-void ThrowByName(JNIEnv *env, const char *name, const char *msg);
-
-#define BUFF_SIZE (1024)
-
-/* Inaccessible static: skipBuffer */
-/*
- * Class: SpawnerInputStream
- * Method: read0
- * Signature: (I)I
- */
-JNIEXPORT jint JNICALL Java_org_eclipse_cdt_utils_spawner_SpawnerInputStream_read0
- (JNIEnv * env, jobject proc, jint fd, jbyteArray buf, jint len)
-{
- unsigned char tmpBuf[BUFF_SIZE];
- int nBuffOffset = 0;
-// printf("Come to read0\n");
- while(len > nBuffOffset)
- {
- int nReadLen = min(len - nBuffOffset, BUFF_SIZE);
- int nread;
- nread = read(fd, tmpBuf, nReadLen);
- if(nread > 0)
- (*env) -> SetByteArrayRegion(env, buf, nBuffOffset, nReadLen, tmpBuf);
- else
- break;
- nBuffOffset += nread;
- if(nread != nReadLen)
- break;
- }
-// printf("Leave read with %i bytes read\n", nBuffOffset);
- return nBuffOffset; // This is a real full readed length
-
-}
-
-/*
- * Class: SpawnerInputStream
- * Method: close0
- * Signature: (I)I
- */
-JNIEXPORT jint JNICALL Java_org_eclipse_cdt_utils_spawner_SpawnerInputStream_close0
- (JNIEnv * env, jobject proc, jint fd)
-{
- return close(fd);
-}
-
-/*
- * Class: SpawnerOutputStream
- * Method: write0
- * Signature: (I[BI)I
- */
-JNIEXPORT jint JNICALL Java_org_eclipse_cdt_utils_spawner_SpawnerOutputStream_write0
- (JNIEnv * env, jobject proc, jint fd, jbyteArray buf, jint len)
-{
- unsigned char tmpBuf[BUFF_SIZE];
- int nBuffOffset = 0;
-// int rc = 0;
-// printf("Come to write0, len = %i\n", len);
- while(len > nBuffOffset)
- {
- int nWriteLen = min(len - nBuffOffset, BUFF_SIZE);
- (*env) -> GetByteArrayRegion(env, buf, nBuffOffset, nWriteLen, tmpBuf);
-// printf("Write %i bytes; last byte = %#x\n", nWriteLen, (int)tmpBuf[nWriteLen - 1]);
- if(nWriteLen != write(fd, tmpBuf, nWriteLen))
- {
-// printf("Error: written %i bytes; errno = %i, fd = %i, len = %i ", nWriteLen, errno, fd, rc);
- ThrowByName(env, "java/io/IOException", strerror(errno));
- }
- nBuffOffset += nWriteLen;
- }
- return 0;
-}
-
-/*
- * Class: SpawnerOutputStream
- * Method: close0
- * Signature: (I)I
- */
-JNIEXPORT jint JNICALL Java_org_eclipse_cdt_utils_spawner_SpawnerOutputStream_close0
- (JNIEnv * env, jobject proc, jint fd)
-{
- return close(fd);
-}
+/* Copyright, 2002, QNX Software Systems Ltd. All Rights Reserved
+
+ * This source code has been published by QNX Software Systems
+ * Ltd. (QSSL). However, any use, reproduction, modification, distribution
+ * or transfer of this software, or any software which includes or is based
+ * upon any of this code, is only permitted if expressly authorized by a
+ * written license agreement from QSSL. Contact the QNX Developer's Network
+ * or contact QSSL's legal department for more information.
+ *
+ *
+ * iostream.c
+ *
+ * This is a JNI implementation of access to standard i/o streams
+ */
+#include <string.h>
+#include <stdlib.h>
+#include <unistd.h>
+#include <sys/uio.h>
+#include <errno.h>
+
+#include "SpawnerInputStream.h"
+#include "SpawnerOutputStream.h"
+
+
+#include "jni.h"
+
+
+void ThrowByName(JNIEnv *env, const char *name, const char *msg);
+
+#define BUFF_SIZE (1024)
+
+/* Inaccessible static: skipBuffer */
+/*
+ * Class: SpawnerInputStream
+ * Method: read0
+ * Signature: (I)I
+ */
+JNIEXPORT jint JNICALL Java_org_eclipse_cdt_utils_spawner_SpawnerInputStream_read0
+ (JNIEnv * env, jobject proc, jint fd, jbyteArray buf, jint len)
+{
+ unsigned char tmpBuf[BUFF_SIZE];
+ int nBuffOffset = 0;
+// printf("Come to read0\n");
+ while(len > nBuffOffset)
+ {
+ int nReadLen = min(len - nBuffOffset, BUFF_SIZE);
+ int nread;
+ nread = read(fd, tmpBuf, nReadLen);
+ if(nread > 0)
+ (*env) -> SetByteArrayRegion(env, buf, nBuffOffset, nReadLen, tmpBuf);
+ else
+ break;
+ nBuffOffset += nread;
+ if(nread != nReadLen)
+ break;
+ }
+// printf("Leave read with %i bytes read\n", nBuffOffset);
+ return nBuffOffset; // This is a real full readed length
+
+}
+
+/*
+ * Class: SpawnerInputStream
+ * Method: close0
+ * Signature: (I)I
+ */
+JNIEXPORT jint JNICALL Java_org_eclipse_cdt_utils_spawner_SpawnerInputStream_close0
+ (JNIEnv * env, jobject proc, jint fd)
+{
+ return close(fd);
+}
+
+/*
+ * Class: SpawnerOutputStream
+ * Method: write0
+ * Signature: (I[BI)I
+ */
+JNIEXPORT jint JNICALL Java_org_eclipse_cdt_utils_spawner_SpawnerOutputStream_write0
+ (JNIEnv * env, jobject proc, jint fd, jbyteArray buf, jint len)
+{
+ unsigned char tmpBuf[BUFF_SIZE];
+ int nBuffOffset = 0;
+// int rc = 0;
+// printf("Come to write0, len = %i\n", len);
+ while(len > nBuffOffset)
+ {
+ int nWriteLen = min(len - nBuffOffset, BUFF_SIZE);
+ (*env) -> GetByteArrayRegion(env, buf, nBuffOffset, nWriteLen, tmpBuf);
+// printf("Write %i bytes; last byte = %#x\n", nWriteLen, (int)tmpBuf[nWriteLen - 1]);
+ if(nWriteLen != write(fd, tmpBuf, nWriteLen))
+ {
+// printf("Error: written %i bytes; errno = %i, fd = %i, len = %i ", nWriteLen, errno, fd, rc);
+ ThrowByName(env, "java/io/IOException", strerror(errno));
+ }
+ nBuffOffset += nWriteLen;
+ }
+ return 0;
+}
+
+/*
+ * Class: SpawnerOutputStream
+ * Method: close0
+ * Signature: (I)I
+ */
+JNIEXPORT jint JNICALL Java_org_eclipse_cdt_utils_spawner_SpawnerOutputStream_close0
+ (JNIEnv * env, jobject proc, jint fd)
+{
+ return close(fd);
+}
diff --git a/core/org.eclipse.cdt.core.qnx/library/spawner.c b/core/org.eclipse.cdt.core.qnx/library/spawner/spawner.c
index 6bc28ba8c49..88500444875 100644
--- a/core/org.eclipse.cdt.core.qnx/library/spawner.c
+++ b/core/org.eclipse.cdt.core.qnx/library/spawner/spawner.c
@@ -1,257 +1,257 @@
-#include <unistd.h>
-#include <malloc.h>
-#include <spawn.h>
-#include <signal.h>
-#include <dlfcn.h>
-#include <limits.h>
-#include <errno.h>
-#include <string.h>
-#include <sys/types.h>
-#include <sys/wait.h>
-
-#include "Spawner.h"
-
-typedef JNIEXPORT void * (JNICALL * JVM_GetThreadInterruptEvent)();
-typedef JNIEXPORT char * (JNICALL * JVM_NativePath)(const char *);
-
-void ThrowByName(JNIEnv *env, const char *name, const char *msg);
-void * GetJVMProc(char * vmlib, char * procName);
-
-static void * hVM = NULL; /* Java Virtual Machine handler. */
-
-JNIEXPORT jint JNICALL Java_org_eclipse_cdt_utils_spawner_Spawner_exec0
- (JNIEnv * env, jobject proc, jobjectArray cmdArray, jobjectArray envp, jstring dir, jintArray channels)
-{
- int fd_map[3]; /* File descriptors. */
- int fd_ret[3]; /* File descriptors that we return to Java. */
- int fd[2]; /* Pipe open structure. */
- int i;
- int nParms = 0;/* Number of parameters. */
- int nEnvs = 0;/* Number of environment variables. */
- char ** pParms = NULL; /* Parameters. */
- char ** pEnvs = NULL; /* Environment variables. */
- char * pCommand = NULL; /* Command to execute. */
- char cwd[PATH_MAX + 1]; /* Current working directory. */
- pid_t pid; /* Process ID. */
- struct inheritance inherit;
-
- if ((cmdArray == NULL) || ((nParms = (*env)->GetArrayLength(env, cmdArray)) == 0))
- ThrowByName(env, "java/lang/IOException", "No command line specified");
-
- for (i = 0; i < 3; ++i) {
- if (EOK != pipe(fd))
- ThrowByName(env, "java/io/IOException", "Cannot create pipe for spawner");
- if (0 == i) {
- fd_map[i] = fd[0];
- fd_ret[i] = fd[1];
- } else {
- fd_map[i] = fd[1];
- fd_ret[i] = fd[0];
- }
- }
-
- if (nParms > 0) {
- pParms = malloc(sizeof(char *) * (nParms + 1));
- for (i = 0; i < nParms; ++i) {
- jobject item = (*env)->GetObjectArrayElement(env, cmdArray, i);
- const char *str = (*env)->GetStringUTFChars(env, item, 0);
- if (i == 0)
- pCommand = strdup(str);
- pParms[i] = strdup(str);
- (*env)->ReleaseStringUTFChars(env, item, str);
- }
- pParms[i] = NULL;
- }
-
- nEnvs = (*env) -> GetArrayLength(env, envp);
- if (nEnvs > 0) {
- pEnvs = malloc(sizeof(char *) * (nEnvs + 1));
- for (i = 0; i < nEnvs; ++i) {
- jobject item = (*env)->GetObjectArrayElement(env, envp, i);
- const char *str = (*env)->GetStringUTFChars(env, item, 0);
- pEnvs[i] = strdup(str);
- (*env)->ReleaseStringUTFChars(env, item, str);
- }
- pEnvs[i] = NULL;
- }
-
- if (dir != 0) {
- char *item = (char *)(*env)->GetStringUTFChars(env, dir, 0);
- getcwd(cwd, sizeof(cwd));
- chdir(item);
- (*env)->ReleaseStringUTFChars(env, dir, item);
- }
-
- /* Nothing for now. */
- memset(&inherit, 0, sizeof(inherit));
- inherit.flags = SPAWN_SETGROUP;
- inherit.pgroup = SPAWN_NEWPGROUP;
-
- pid = spawnp(pCommand, 3, fd_map, &inherit, pParms, pEnvs);
-
- if (dir != 0) /* Restore working directory. */
- chdir(cwd);
-
- for (i = 0; i < 3; ++i) {
- close(fd_map[i]);
- }
-
- if (-1 == pid) { /* Failed - close pipes. */
- for (i = 0; i < 3; ++i) {
- close(fd_ret[i]);
- }
- } else { /* Success - return pipes to Java. */
- (*env) -> SetIntArrayRegion(env, channels, 0, 3, fd_ret);
- }
-
- /* Free Parameters. */
- if (pParms != NULL) {
- int j;
- for (j = 0; pParms[j] != NULL; j++) {
- if (pParms[j] != NULL) {
- free(pParms[j]);
- }
- }
- free(pParms);
- }
-
- /* Free Environment variables. */
- if (pEnvs != NULL) {
- int j;
- for (j = 0; pEnvs[j] != NULL; j++) {
- if (pEnvs[j] != NULL) {
- free(pEnvs[j]);
- }
- }
- free(pEnvs);
- }
-
- /* Free Command to execute. */
- if (pCommand != NULL) {
- free(pCommand);
- }
-
- return pid;
-
-}
-
-JNIEXPORT jint JNICALL Java_org_eclipse_cdt_utils_spawner_Spawner_exec1
- (JNIEnv * env, jobject proc, jobjectArray cmdArray, jobjectArray envp, jstring dir)
-{
- int i;
- int nParms = 0;// Number of parameters
- int nEnvs = 0;// Number of environment variables
- char ** pParms = NULL; // Parameters
- char ** pEnvs = NULL; // Environment variables
- char * pCommand = NULL; // Command to execute
- char * pwd = 0; // Process working directory
- char cwd[PATH_MAX + 1]; // Current working directory
- pid_t pid; // Process ID
- struct inheritance inherit;
-
- if ((cmdArray == 0) || ((nParms = (*env) -> GetArrayLength(env, cmdArray)) == 0))
- ThrowByName(env, "java/lang/NullPointerException", "No command line specified");
-
- if(nParms > 0)
- {
- pParms = malloc(sizeof(char *) * (nParms + 1));
- for(i = 0; i < nParms; ++i)
- {
- jobject item = (*env) -> GetObjectArrayElement(env, cmdArray, i);
- const char * str = (*env) -> GetStringUTFChars(env, item, 0);
- if(i == 0)
- pCommand = strdup(str);
- pParms[i] = strdup(str);
- (*env) -> ReleaseStringUTFChars(env, item, str);
- }
- pParms[i] = NULL;
- }
- nEnvs = (*env) -> GetArrayLength(env, envp);
- if(nEnvs > 0)
- {
- pEnvs = malloc(sizeof(char *) * (nEnvs + 1));
- for(i = 0; i < nEnvs; ++i)
- {
- jobject item = (*env) -> GetObjectArrayElement(env, envp, i);
- const char * str = (*env) -> GetStringUTFChars(env, item, 0);
- pEnvs[i] = strdup(str);
- (*env) -> ReleaseStringUTFChars(env, item, str);
- }
- pEnvs[i] = NULL;
- }
-
- if (dir != 0)
- {
- char * item;
- pwd = strdup(item = (char *)(*env) -> GetStringUTFChars(env, dir, 0));
- getcwd(cwd, sizeof(cwd));
- chdir(pwd);
- (*env) -> ReleaseStringUTFChars(env, dir, item);
- }
-
- // Nothing for now
- memset(&inherit, 0, sizeof(inherit));
- inherit.flags = SPAWN_SETGROUP;
- inherit.pgroup = SPAWN_NEWPGROUP;
-
-
- pid = spawnp(pCommand, 0, NULL, &inherit, pParms, pEnvs);
-
-
- if(dir != 0) // Restore working directory
- chdir(cwd);
-
- return pid;
-
-}
-
-/*
- * Class: com_qnx_tools_utils_spawner_Spawner
- * Method: raise
- * Signature: (II)I
- */
-JNIEXPORT jint JNICALL Java_org_eclipse_cdt_utils_spawner_Spawner_raise
- (JNIEnv * env, jobject proc, jint pid, jint sig)
-{
- return kill(pid, sig);
-}
-
-/*
- * Class: com_qnx_tools_utils_spawner_Spawner
- * Method: waitFor
- * Signature: (I)I
- */
-JNIEXPORT jint JNICALL Java_org_eclipse_cdt_utils_spawner_Spawner_waitFor
- (JNIEnv * env, jobject proc, jint pid)
-{
- int stat_loc;
- return (waitpid(pid, &stat_loc, WEXITED));
-}
-
-
-// Utilities
-
-void ThrowByName(JNIEnv *env, const char *name, const char *msg)
-{
- jclass cls = (*env)->FindClass(env, name);
-
- if (cls != 0) /* Otherwise an exception has already been thrown */
- (*env)->ThrowNew(env, cls, msg);
-
- /* It's a good practice to clean up the local references. */
- (*env)->DeleteLocalRef(env, cls);
-}
-
-
-
-void * GetJVMProc(char * vmlib, char * procName)
-{
- if(NULL == vmlib)
- vmlib = "libj9vm14.so";
- if((NULL == hVM) || (NULL == procName))
- {
- if(NULL == (hVM = dlopen(vmlib, 0)))
- return NULL;
- }
- return dlsym(hVM, procName);
-}
+#include <unistd.h>
+#include <malloc.h>
+#include <spawn.h>
+#include <signal.h>
+#include <dlfcn.h>
+#include <limits.h>
+#include <errno.h>
+#include <string.h>
+#include <sys/types.h>
+#include <sys/wait.h>
+
+#include "Spawner.h"
+
+typedef JNIEXPORT void * (JNICALL * JVM_GetThreadInterruptEvent)();
+typedef JNIEXPORT char * (JNICALL * JVM_NativePath)(const char *);
+
+void ThrowByName(JNIEnv *env, const char *name, const char *msg);
+void * GetJVMProc(char * vmlib, char * procName);
+
+static void * hVM = NULL; /* Java Virtual Machine handler. */
+
+JNIEXPORT jint JNICALL Java_org_eclipse_cdt_utils_spawner_Spawner_exec0
+ (JNIEnv * env, jobject proc, jobjectArray cmdArray, jobjectArray envp, jstring dir, jintArray channels)
+{
+ int fd_map[3]; /* File descriptors. */
+ int fd_ret[3]; /* File descriptors that we return to Java. */
+ int fd[2]; /* Pipe open structure. */
+ int i;
+ int nParms = 0;/* Number of parameters. */
+ int nEnvs = 0;/* Number of environment variables. */
+ char ** pParms = NULL; /* Parameters. */
+ char ** pEnvs = NULL; /* Environment variables. */
+ char * pCommand = NULL; /* Command to execute. */
+ char cwd[PATH_MAX + 1]; /* Current working directory. */
+ pid_t pid; /* Process ID. */
+ struct inheritance inherit;
+
+ if ((cmdArray == NULL) || ((nParms = (*env)->GetArrayLength(env, cmdArray)) == 0))
+ ThrowByName(env, "java/lang/IOException", "No command line specified");
+
+ for (i = 0; i < 3; ++i) {
+ if (EOK != pipe(fd))
+ ThrowByName(env, "java/io/IOException", "Cannot create pipe for spawner");
+ if (0 == i) {
+ fd_map[i] = fd[0];
+ fd_ret[i] = fd[1];
+ } else {
+ fd_map[i] = fd[1];
+ fd_ret[i] = fd[0];
+ }
+ }
+
+ if (nParms > 0) {
+ pParms = malloc(sizeof(char *) * (nParms + 1));
+ for (i = 0; i < nParms; ++i) {
+ jobject item = (*env)->GetObjectArrayElement(env, cmdArray, i);
+ const char *str = (*env)->GetStringUTFChars(env, item, 0);
+ if (i == 0)
+ pCommand = strdup(str);
+ pParms[i] = strdup(str);
+ (*env)->ReleaseStringUTFChars(env, item, str);
+ }
+ pParms[i] = NULL;
+ }
+
+ nEnvs = (*env) -> GetArrayLength(env, envp);
+ if (nEnvs > 0) {
+ pEnvs = malloc(sizeof(char *) * (nEnvs + 1));
+ for (i = 0; i < nEnvs; ++i) {
+ jobject item = (*env)->GetObjectArrayElement(env, envp, i);
+ const char *str = (*env)->GetStringUTFChars(env, item, 0);
+ pEnvs[i] = strdup(str);
+ (*env)->ReleaseStringUTFChars(env, item, str);
+ }
+ pEnvs[i] = NULL;
+ }
+
+ if (dir != 0) {
+ char *item = (char *)(*env)->GetStringUTFChars(env, dir, 0);
+ getcwd(cwd, sizeof(cwd));
+ chdir(item);
+ (*env)->ReleaseStringUTFChars(env, dir, item);
+ }
+
+ /* Nothing for now. */
+ memset(&inherit, 0, sizeof(inherit));
+ inherit.flags = SPAWN_SETGROUP;
+ inherit.pgroup = SPAWN_NEWPGROUP;
+
+ pid = spawnp(pCommand, 3, fd_map, &inherit, pParms, pEnvs);
+
+ if (dir != 0) /* Restore working directory. */
+ chdir(cwd);
+
+ for (i = 0; i < 3; ++i) {
+ close(fd_map[i]);
+ }
+
+ if (-1 == pid) { /* Failed - close pipes. */
+ for (i = 0; i < 3; ++i) {
+ close(fd_ret[i]);
+ }
+ } else { /* Success - return pipes to Java. */
+ (*env) -> SetIntArrayRegion(env, channels, 0, 3, fd_ret);
+ }
+
+ /* Free Parameters. */
+ if (pParms != NULL) {
+ int j;
+ for (j = 0; pParms[j] != NULL; j++) {
+ if (pParms[j] != NULL) {
+ free(pParms[j]);
+ }
+ }
+ free(pParms);
+ }
+
+ /* Free Environment variables. */
+ if (pEnvs != NULL) {
+ int j;
+ for (j = 0; pEnvs[j] != NULL; j++) {
+ if (pEnvs[j] != NULL) {
+ free(pEnvs[j]);
+ }
+ }
+ free(pEnvs);
+ }
+
+ /* Free Command to execute. */
+ if (pCommand != NULL) {
+ free(pCommand);
+ }
+
+ return pid;
+
+}
+
+JNIEXPORT jint JNICALL Java_org_eclipse_cdt_utils_spawner_Spawner_exec1
+ (JNIEnv * env, jobject proc, jobjectArray cmdArray, jobjectArray envp, jstring dir)
+{
+ int i;
+ int nParms = 0;// Number of parameters
+ int nEnvs = 0;// Number of environment variables
+ char ** pParms = NULL; // Parameters
+ char ** pEnvs = NULL; // Environment variables
+ char * pCommand = NULL; // Command to execute
+ char * pwd = 0; // Process working directory
+ char cwd[PATH_MAX + 1]; // Current working directory
+ pid_t pid; // Process ID
+ struct inheritance inherit;
+
+ if ((cmdArray == 0) || ((nParms = (*env) -> GetArrayLength(env, cmdArray)) == 0))
+ ThrowByName(env, "java/lang/NullPointerException", "No command line specified");
+
+ if(nParms > 0)
+ {
+ pParms = malloc(sizeof(char *) * (nParms + 1));
+ for(i = 0; i < nParms; ++i)
+ {
+ jobject item = (*env) -> GetObjectArrayElement(env, cmdArray, i);
+ const char * str = (*env) -> GetStringUTFChars(env, item, 0);
+ if(i == 0)
+ pCommand = strdup(str);
+ pParms[i] = strdup(str);
+ (*env) -> ReleaseStringUTFChars(env, item, str);
+ }
+ pParms[i] = NULL;
+ }
+ nEnvs = (*env) -> GetArrayLength(env, envp);
+ if(nEnvs > 0)
+ {
+ pEnvs = malloc(sizeof(char *) * (nEnvs + 1));
+ for(i = 0; i < nEnvs; ++i)
+ {
+ jobject item = (*env) -> GetObjectArrayElement(env, envp, i);
+ const char * str = (*env) -> GetStringUTFChars(env, item, 0);
+ pEnvs[i] = strdup(str);
+ (*env) -> ReleaseStringUTFChars(env, item, str);
+ }
+ pEnvs[i] = NULL;
+ }
+
+ if (dir != 0)
+ {
+ char * item;
+ pwd = strdup(item = (char *)(*env) -> GetStringUTFChars(env, dir, 0));
+ getcwd(cwd, sizeof(cwd));
+ chdir(pwd);
+ (*env) -> ReleaseStringUTFChars(env, dir, item);
+ }
+
+ // Nothing for now
+ memset(&inherit, 0, sizeof(inherit));
+ inherit.flags = SPAWN_SETGROUP;
+ inherit.pgroup = SPAWN_NEWPGROUP;
+
+
+ pid = spawnp(pCommand, 0, NULL, &inherit, pParms, pEnvs);
+
+
+ if(dir != 0) // Restore working directory
+ chdir(cwd);
+
+ return pid;
+
+}
+
+/*
+ * Class: com_qnx_tools_utils_spawner_Spawner
+ * Method: raise
+ * Signature: (II)I
+ */
+JNIEXPORT jint JNICALL Java_org_eclipse_cdt_utils_spawner_Spawner_raise
+ (JNIEnv * env, jobject proc, jint pid, jint sig)
+{
+ return kill(pid, sig);
+}
+
+/*
+ * Class: com_qnx_tools_utils_spawner_Spawner
+ * Method: waitFor
+ * Signature: (I)I
+ */
+JNIEXPORT jint JNICALL Java_org_eclipse_cdt_utils_spawner_Spawner_waitFor
+ (JNIEnv * env, jobject proc, jint pid)
+{
+ int stat_loc;
+ return (waitpid(pid, &stat_loc, WEXITED));
+}
+
+
+// Utilities
+
+void ThrowByName(JNIEnv *env, const char *name, const char *msg)
+{
+ jclass cls = (*env)->FindClass(env, name);
+
+ if (cls != 0) /* Otherwise an exception has already been thrown */
+ (*env)->ThrowNew(env, cls, msg);
+
+ /* It's a good practice to clean up the local references. */
+ (*env)->DeleteLocalRef(env, cls);
+}
+
+
+
+void * GetJVMProc(char * vmlib, char * procName)
+{
+ if(NULL == vmlib)
+ vmlib = "libj9vm14.so";
+ if((NULL == hVM) || (NULL == procName))
+ {
+ if(NULL == (hVM = dlopen(vmlib, 0)))
+ return NULL;
+ }
+ return dlsym(hVM, procName);
+}
diff --git a/core/org.eclipse.cdt.core.qnx/library/spawner/x86/Makefile b/core/org.eclipse.cdt.core.qnx/library/spawner/x86/Makefile
new file mode 100644
index 00000000000..6a18617612e
--- /dev/null
+++ b/core/org.eclipse.cdt.core.qnx/library/spawner/x86/Makefile
@@ -0,0 +1,8 @@
+LIST=VARIANT
+ifndef QRECURSE
+QRECURSE=recurse.mk
+ifdef QCONFIG
+QRDIR=$(dir $(QCONFIG))
+endif
+endif
+include $(QRDIR)$(QRECURSE)
diff --git a/core/org.eclipse.cdt.core.qnx/library/spawner/x86/so/Makefile b/core/org.eclipse.cdt.core.qnx/library/spawner/x86/so/Makefile
new file mode 100644
index 00000000000..cc399272607
--- /dev/null
+++ b/core/org.eclipse.cdt.core.qnx/library/spawner/x86/so/Makefile
@@ -0,0 +1 @@
+include ../../common.mk
diff --git a/core/org.eclipse.cdt.core.qnx/library/x86/so/.cvsignore b/core/org.eclipse.cdt.core.qnx/library/x86/so/.cvsignore
deleted file mode 100644
index dea3304418e..00000000000
--- a/core/org.eclipse.cdt.core.qnx/library/x86/so/.cvsignore
+++ /dev/null
@@ -1,4 +0,0 @@
-iostream.o
-libspawner.so
-libspawnerS.a
-spawner.o

Back to the top