1
0
Fork 0
mirror of https://github.com/eclipse-cdt/cdt synced 2025-07-24 09:25:31 +02:00

Remove AIX support

Eclipse 4.7 removed AIX support so CDT should also remove it.

Change-Id: I9ed50a4c47e7b861eb2adeb86e857d2a78b4834b
Signed-off-by: Marc-Andre Laperle <marc-andre.laperle@ericsson.com>
This commit is contained in:
Marc-Andre Laperle 2017-02-04 18:09:01 -05:00 committed by Gerrit Code Review @ Eclipse.org
parent 01236146d1
commit bd5cec12a8
33 changed files with 3 additions and 1787 deletions

View file

@ -1,7 +0,0 @@
<?xml version="1.0" encoding="UTF-8"?>
<classpath>
<classpathentry kind="src" path="src"/>
<classpathentry kind="con" path="org.eclipse.pde.core.requiredPlugins"/>
<classpathentry kind="con" path="org.eclipse.jdt.launching.JRE_CONTAINER/org.eclipse.jdt.internal.debug.ui.launcher.StandardVMType/JavaSE-1.8"/>
<classpathentry kind="output" path="bin"/>
</classpath>

View file

@ -1,28 +0,0 @@
<?xml version="1.0" encoding="UTF-8"?>
<projectDescription>
<name>org.eclipse.cdt.core.aix</name>
<comment></comment>
<projects>
</projects>
<buildSpec>
<buildCommand>
<name>org.eclipse.jdt.core.javabuilder</name>
<arguments>
</arguments>
</buildCommand>
<buildCommand>
<name>org.eclipse.pde.ManifestBuilder</name>
<arguments>
</arguments>
</buildCommand>
<buildCommand>
<name>org.eclipse.pde.SchemaBuilder</name>
<arguments>
</arguments>
</buildCommand>
</buildSpec>
<natures>
<nature>org.eclipse.pde.PluginNature</nature>
<nature>org.eclipse.jdt.core.javanature</nature>
</natures>
</projectDescription>

View file

@ -1,10 +0,0 @@
Manifest-Version: 1.0
Bundle-ManifestVersion: 2
Bundle-Name: %fragmentName.aix
Bundle-SymbolicName: org.eclipse.cdt.core.aix; singleton:=true
Bundle-Version: 5.4.0.qualifier
Bundle-Vendor: %providerName
Fragment-Host: org.eclipse.cdt.core.native;bundle-version="[5.7.0,6.0.0)"
Bundle-Localization: plugin
Bundle-RequiredExecutionEnvironment: JavaSE-1.8
Eclipse-PlatformFilter: (osgi.os=aix)

View file

@ -1,24 +0,0 @@
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
<html xmlns="http://www.w3.org/1999/xhtml"><head>
<meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1"><title>About</title></head>
<body lang="EN-US">
<h2>About This Content</h2>
<p>June 22, 2007</p>
<h3>License</h3>
<p>The Eclipse Foundation makes available all content in this plug-in ("Content"). Unless otherwise
indicated below, the Content is provided to you under the terms and conditions of the
Eclipse Public License Version 1.0 ("EPL"). A copy of the EPL is available
at <a href="http://www.eclipse.org/legal/epl-v10.html">http://www.eclipse.org/legal/epl-v10.html</a>.
For purposes of the EPL, "Program" will mean the Content.</p>
<p>If you did not receive this Content directly from the Eclipse Foundation, the Content is
being redistributed by another party ("Redistributor") and different terms and conditions may
apply to your use of any object code in the Content. Check the Redistributor's license that was
provided with the Content. If no such license exists, contact the Redistributor. Unless otherwise
indicated below, the terms and conditions of the EPL still apply to any source code in the Content
and such source code may be obtained at <a href="http://www.eclipse.org/">http://www.eclipse.org</a>.</p>
</body></html>

View file

@ -1,19 +0,0 @@
###############################################################################
# Copyright (c) 2005, 2009 IBM Corporation and others.
# All rights reserved. This program and the accompanying materials
# are made available under the terms of the Eclipse Public License v1.0
# which accompanies this distribution, and is available at
# http://www.eclipse.org/legal/epl-v10.html
#
# Contributors:
# IBM Corporation - initial API and implementation
###############################################################################
source.. = src/
bin.includes = fragment.xml,\
.,\
about.html,\
META-INF/,\
os/,\
plugin.properties
src.includes = library/,\
about.html

View file

@ -1,12 +0,0 @@
<?xml version="1.0" encoding="UTF-8"?>
<?eclipse version="3.0"?>
<fragment>
<extension
point="org.eclipse.cdt.core.ProcessList">
<processList
platform="aix"
class="org.eclipse.cdt.internal.core.aix.ProcessList">
</processList>
</extension>
</fragment>

View file

@ -1,29 +0,0 @@
# makefile for libspawner.so
#set JDK_INCLUDES
JDK_INCLUDES=/opt/ibm-jdk1.4.2/include
RM=rm
CC=xlc
CFLAGS = -I. -I$(JDK_INCLUDES)
#CFLAGS +=-fpic -D_REENTRANT
LIB_NAME_SPAWNER = libspawner.so
LIB_NAME_FULL_SPAWNER = ../os/aix/ppc/libspawner.so
OBJS_SPAWNER=spawner.o io.o exec_unix.o exec_pty.o openpty.o pfind.o
LIB_NAME_PTY = libpty.so
LIB_NAME_FULL_PTY = ../os/aix/ppc/libpty.so
OBJS_PTY=openpty.o pty.o ptyio.o
all: $(LIB_NAME_FULL_SPAWNER) $(LIB_NAME_FULL_PTY)
$(LIB_NAME_FULL_SPAWNER): $(OBJS_SPAWNER)
mkdir -p ../os/aix/ppc
$(CC) -G -o $(LIB_NAME_FULL_SPAWNER) $(OBJS_SPAWNER) -lc
$(LIB_NAME_FULL_PTY): $(OBJS_PTY)
$(CC) -G -o $(LIB_NAME_FULL_PTY) $(OBJS_PTY)
clean :
$(RM) $(OBJS_SPAWNER) $(LIB_NAME_FULL_SPAWNER)
$(RM) $(OBJS_PTY) $(LIB_NAME_FULL_PTY)

View file

@ -1,29 +0,0 @@
/* DO NOT EDIT THIS FILE - it is machine generated */
#include <jni.h>
/* Header for class org_eclipse_cdt_utils_pty_PTY */
#ifndef _Included_org_eclipse_cdt_utils_pty_PTY
#define _Included_org_eclipse_cdt_utils_pty_PTY
#ifdef __cplusplus
extern "C" {
#endif
/*
* Class: org_eclipse_cdt_utils_pty_PTY
* Method: openMaster
* Signature: (Z)Ljava/lang/String;
*/
JNIEXPORT jstring JNICALL Java_org_eclipse_cdt_utils_pty_PTY_openMaster
(JNIEnv *, jobject, jboolean);
/*
* Class: org_eclipse_cdt_utils_pty_PTY
* Method: change_window_size
* Signature: (III)I
*/
JNIEXPORT jint JNICALL Java_org_eclipse_cdt_utils_pty_PTY_change_1window_1size
(JNIEnv *, jobject, jint, jint, jint);
#ifdef __cplusplus
}
#endif
#endif

View file

@ -1,32 +0,0 @@
/* DO NOT EDIT THIS FILE - it is machine generated */
#include <jni.h>
/* Header for class org_eclipse_cdt_utils_pty_PTYInputStream */
#ifndef _Included_org_eclipse_cdt_utils_pty_PTYInputStream
#define _Included_org_eclipse_cdt_utils_pty_PTYInputStream
#ifdef __cplusplus
extern "C" {
#endif
#undef org_eclipse_cdt_utils_pty_PTYInputStream_SKIP_BUFFER_SIZE
#define org_eclipse_cdt_utils_pty_PTYInputStream_SKIP_BUFFER_SIZE 2048L
/* Inaccessible static: skipBuffer */
/*
* Class: org_eclipse_cdt_utils_pty_PTYInputStream
* Method: read0
* Signature: (I[BI)I
*/
JNIEXPORT jint JNICALL Java_org_eclipse_cdt_utils_pty_PTYInputStream_read0
(JNIEnv *, jobject, jint, jbyteArray, jint);
/*
* Class: org_eclipse_cdt_utils_pty_PTYInputStream
* Method: close0
* Signature: (I)I
*/
JNIEXPORT jint JNICALL Java_org_eclipse_cdt_utils_pty_PTYInputStream_close0
(JNIEnv *, jobject, jint);
#ifdef __cplusplus
}
#endif
#endif

View file

@ -1,29 +0,0 @@
/* DO NOT EDIT THIS FILE - it is machine generated */
#include <jni.h>
/* Header for class org_eclipse_cdt_utils_pty_PTYOutputStream */
#ifndef _Included_org_eclipse_cdt_utils_pty_PTYOutputStream
#define _Included_org_eclipse_cdt_utils_pty_PTYOutputStream
#ifdef __cplusplus
extern "C" {
#endif
/*
* Class: org_eclipse_cdt_utils_pty_PTYOutputStream
* Method: write0
* Signature: (I[BI)I
*/
JNIEXPORT jint JNICALL Java_org_eclipse_cdt_utils_pty_PTYOutputStream_write0
(JNIEnv *, jobject, jint, jbyteArray, jint);
/*
* Class: org_eclipse_cdt_utils_pty_PTYOutputStream
* Method: close0
* Signature: (I)I
*/
JNIEXPORT jint JNICALL Java_org_eclipse_cdt_utils_pty_PTYOutputStream_close0
(JNIEnv *, jobject, jint);
#ifdef __cplusplus
}
#endif
#endif

View file

@ -1,53 +0,0 @@
/* DO NOT EDIT THIS FILE - it is machine generated */
#include <jni.h>
/* Header for class org_eclipse_cdt_utils_spawner_Spawner */
#ifndef _Included_org_eclipse_cdt_utils_spawner_Spawner
#define _Included_org_eclipse_cdt_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: exec1
* Signature: ([Ljava/lang/String;[Ljava/lang/String;Ljava/lang/String;)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: exec2
* Signature: ([Ljava/lang/String;[Ljava/lang/String;Ljava/lang/String;[ILjava/lang/String;I)I
*/
JNIEXPORT jint JNICALL Java_org_eclipse_cdt_utils_spawner_Spawner_exec2
(JNIEnv *, jobject, jobjectArray, jobjectArray, jstring, jintArray, jstring, jint, jboolean);
/*
* 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

View file

@ -1,32 +0,0 @@
/* 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

View file

@ -1,29 +0,0 @@
/* 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

View file

@ -1,29 +0,0 @@
/*******************************************************************************
* Copyright (c) 2003, 2013 IBM Corporation and others.
* All rights reserved. This program and the accompanying materials
* are made available under the terms of the Eclipse Public License v1.0
* which accompanies this distribution, and is available at
* http://www.eclipse.org/legal/epl-v10.html
*
* Contributors:
* IBM Corporation - initial API and implementation
* IBM Corporation - port of 248071
*******************************************************************************/
#include <unistd.h>
#include <sys/wait.h>
#include <sys/types.h>
#include <signal.h>
#include <errno.h>
extern pid_t exec0(const char *path, char *const argv[],
char *const envp[], const char *dirpath,
int channels[3]);
extern pid_t exec_pty(const char *path, char *const argv[],
char *const envp[], const char *dirpath,
int channels[3], const char *pts_name, int fdm,
int console);
extern int wait0(pid_t pid);

View file

@ -1,184 +0,0 @@
/*******************************************************************************
* Copyright (c) 2004, 2013 QNX Software Systems and others.
* All rights reserved. This program and the accompanying materials
* are made available under the terms of the Eclipse Public License v1.0
* which accompanies this distribution, and is available at
* http://www.eclipse.org/legal/epl-v10.html
*
* Contributors:
* QNX Software Systems - initial API and implementation
* IBM Corporation - port of 248071
*******************************************************************************/
#include "exec0.h"
#include <unistd.h>
#include <stdlib.h>
#include <stdio.h>
#include <errno.h>
#include <string.h>
#include <libgen.h>
#include <stdlib.h>
#include <termios.h>
/* from pfind.c */
extern char *pfind(const char *name, char * const envp[]);
pid_t
exec_pty(const char *path, char *const argv[], char *const envp[],
const char *dirpath, int channels[3], const char *pts_name, int fdm, int console)
{
int pipe2[2];
pid_t childpid;
char *full_path;
/*
* We use pfind() to check that the program exists and is an executable.
* If not pass the error up. Also execve() wants a full path.
*/
full_path = pfind(path, envp);
if (full_path == NULL) {
fprintf(stderr, "Unable to find full path for \"%s\"\n", (path) ? path : "");
return -1;
}
/*
* Make sure we can create our pipes before forking.
*/
if (channels != NULL && console) {
if (pipe(pipe2) < 0) {
fprintf(stderr, "%s(%d): returning due to error: %s\n", __FUNCTION__, __LINE__, strerror(errno));
free(full_path);
return -1;
}
}
childpid = fork();
if (childpid < 0) {
fprintf(stderr, "%s(%d): returning due to error: %s\n", __FUNCTION__, __LINE__, strerror(errno));
free(full_path);
return -1;
} else if (childpid == 0) { /* child */
chdir(dirpath);
if (channels != NULL) {
int fds;
if (!console && setsid() < 0) {
perror("setsid()");
return -1;
}
fds = ptys_open(fdm, pts_name);
if (fds < 0) {
fprintf(stderr, "%s(%d): returning due to error: %s\n", __FUNCTION__, __LINE__, strerror(errno));
return -1;
}
/* Close the read end of pipe2 */
if (console && close(pipe2[0]) == -1)
perror("close(pipe2[0]))");
/* close the master, no need in the child */
close(fdm);
if (console) {
set_noecho(fds);
if (setpgid(getpid(), getpid()) < 0) {
perror("setpgid()");
return -1;
}
}
/* redirections */
dup2(fds, STDIN_FILENO); /* dup stdin */
dup2(fds, STDOUT_FILENO); /* dup stdout */
if (console) {
dup2(pipe2[1], STDERR_FILENO); /* dup stderr */
} else {
dup2(fds, STDERR_FILENO); /* dup stderr */
}
close(fds); /* done with fds. */
}
/* Close all the fd's in the child */
{
int fdlimit = sysconf(_SC_OPEN_MAX);
int fd = 3;
while (fd < fdlimit)
close(fd++);
}
if (envp[0] == NULL) {
execv(full_path, argv);
} else {
execve(full_path, argv, envp);
}
_exit(127);
} else if (childpid != 0) { /* parent */
if (console) {
set_noecho(fdm);
}
if (channels != NULL) {
channels[0] = fdm; /* Input Stream. */
channels[1] = fdm; /* Output Stream. */
if (console) {
/* close the write end of pipe1 */
if (close(pipe2[1]) == -1)
perror("close(pipe2[1])");
channels[2] = pipe2[0]; /* stderr Stream. */
} else {
channels[2] = fdm; /* Error Stream. */
}
}
free(full_path);
return childpid;
}
free(full_path);
return -1; /*NOT REACHED */
}
#ifdef __STAND_ALONE__
int main(int argc, char **argv, char **envp) {
const char *path = "./bufferring_test";
int channels[3] = { -1, -1, -1};
int status;
FILE *app_stdin;
FILE *app_stdout;
FILE *app_stderr;
char pts_name[32];
int fdm;
char buffer[32];
fdm = ptym_open(pts_name);
status = exec_pty(path, argv, envp, ".", channels, pts_name, fdm);
if (status >= 0) {
app_stdin = fdopen(channels[0], "w");
app_stdout = fdopen(channels[1], "r");
app_stderr = fdopen(channels[2], "r");
if (app_stdout == NULL || app_stderr == NULL || app_stdin == NULL) {
fprintf(stderr, "PROBLEMS\n");
} else {
fputs("foo\n", app_stdin);
fputs("bar\n", app_stdin);
while(fgets(buffer, sizeof buffer, app_stdout) != NULL) {
fprintf(stdout, "STDOUT: %s\n", buffer);
}
while(fgets(buffer, sizeof buffer, app_stderr) != NULL) {
fprintf(stdout, "STDERR: %s\n", buffer);
}
}
}
fputs("bye\n", stdout);
close(channels[0]);
close(channels[1]);
close(channels[2]);
return 0;
}
#endif

View file

@ -1,159 +0,0 @@
/*******************************************************************************
* Copyright (c) 2003, 2013 IBM Corporation and others.
* All rights reserved. This program and the accompanying materials
* are made available under the terms of the Eclipse Public License v1.0
* which accompanies this distribution, and is available at
* http://www.eclipse.org/legal/epl-v10.html
*
* Contributors:
* IBM Corporation - initial API and implementation
* IBM Corporation - port of 248071
*******************************************************************************/
#include "exec0.h"
#include <unistd.h>
#include <stdlib.h>
#include <stdio.h>
#include <errno.h>
#include <string.h>
#include <libgen.h>
#include <stdlib.h>
/* from pfind.c */
extern char *pfind(const char *name, char * const envp[]);
pid_t
exec0(const char *path, char *const argv[], char *const envp[],
const char *dirpath, int channels[3])
{
int pipe0[2], pipe1[2], pipe2[2];
pid_t childpid;
char *full_path;
/*
* We use pfind() to check that the program exists and is an executable.
* If not pass the error up. Also execve() wants a full path.
*/
full_path = pfind(path, envp);
if (full_path == NULL) {
fprintf(stderr, "Unable to find full path for \"%s\"\n", (path) ? path : "");
return -1;
}
/*
* Make sure we can create our pipes before forking.
*/
if (channels != NULL) {
if (pipe(pipe0) < 0 || pipe(pipe1) < 0 || pipe(pipe2) < 0) {
fprintf(stderr, "%s(%d): returning due to error.\n",
__FUNCTION__, __LINE__);
free(full_path);
return -1;
}
}
childpid = fork();
if (childpid < 0) {
fprintf(stderr, "%s(%d): returning due to error: %s\n",
__FUNCTION__, __LINE__, strerror(errno));
free(full_path);
return -1;
} else if (childpid == 0) { /* child */
char *ptr;
chdir(dirpath);
if (channels != NULL) {
/* Close the write end of pipe0 */
if (close(pipe0[1]) == -1)
perror("close(pipe0[1])");
/* Close the read end of pipe1 */
if (close(pipe1[0]) == -1)
perror("close(pipe1[0])");
/* Close the read end of pipe2 */
if (close(pipe2[0]) == -1)
perror("close(pipe2[0]))");
/* redirections */
dup2(pipe0[0], STDIN_FILENO); /* dup stdin */
dup2(pipe1[1], STDOUT_FILENO); /* dup stdout */
dup2(pipe2[1], STDERR_FILENO); /* dup stderr */
}
/* Close all the fd's in the child */
{
int fdlimit = sysconf(_SC_OPEN_MAX);
int fd = 3;
while (fd < fdlimit)
close(fd++);
}
setpgid(getpid(), getpid());
if (envp[0] == NULL) {
execv(full_path, argv);
} else {
execve(full_path, argv, envp);
}
_exit(127);
} else if (childpid != 0) { /* parent */
char b;
if (channels != NULL) {
/* close the read end of pipe1 */
if (close(pipe0[0]) == -1)
perror("close(pipe0[0])");
/* close the write end of pipe2 */
if (close(pipe1[1]) == -1)
perror("close(pipe1[1])");
/* close the write end of pipe2 */
if (close(pipe2[1]) == -1)
perror("close(pipe2[1])");
channels[0] = pipe0[1]; /* Output Stream. */
channels[1] = pipe1[0]; /* Input Stream. */
channels[2] = pipe2[0]; /* Input Stream. */
}
free(full_path);
return childpid;
}
free(full_path);
return -1; /*NOT REACHED */
}
int wait0(pid_t pid)
{
int status;
int val = -1;
if (pid < 0)
return -1;
for (;;) {
if (waitpid(pid, &status, 0) < 0) {
if (errno == EINTR) {
// interrupted system call - retry
continue;
}
}
break;
}
if (WIFEXITED(status)) {
val = WEXITSTATUS(status);
}
return val;
}

View file

@ -1,114 +0,0 @@
/*******************************************************************************
* Copyright (c) 2003, 2010 IBM Corporation and others.
* All rights reserved. This program and the accompanying materials
* are made available under the terms of the Eclipse Public License v1.0
* which accompanies this distribution, and is available at
* http://www.eclipse.org/legal/epl-v10.html
*
* Contributors:
* IBM Corporation - initial API and implementation
*******************************************************************************/
#include <jni.h>
#include <stdio.h>
#include <SpawnerInputStream.h>
#include <SpawnerOutputStream.h>
#include <unistd.h>
/* Header for class _org_eclipse_cdt_utils_spawner_SpawnerInputStream */
/* Header for class _org_eclipse_cdt_utils_spawner_SpawnerOutputStream */
/*
* Class: org_eclipse_cdt_utils_spawner_SpawnerInputStream
* Method: read0
* Signature: (I)I
*/
JNIEXPORT jint JNICALL
Java_org_eclipse_cdt_utils_spawner_SpawnerInputStream_read0(JNIEnv * env,
jobject jobj,
jint jfd,
jbyteArray buf,
jint buf_len)
{
int fd;
int status;
jbyte *data;
int data_len;
data = (*env)->GetByteArrayElements(env, buf, 0);
data_len = buf_len;
fd = jfd;
status = read( fd, data, data_len );
(*env)->ReleaseByteArrayElements(env, buf, data, 0);
if (status == 0) {
/* EOF. */
status = -1;
} else if (status == -1) {
/* Error, toss an exception */
jclass exception = (*env)->FindClass(env, "java/io/IOException");
if (exception == NULL) {
/* Give up. */
return -1;
}
(*env)->ThrowNew(env, exception, "read error");
}
return status;
}
/*
* Class: org_eclipse_cdt_utils_spawner_SpawnerInputStream
* Method: close0
* Signature: (I)I
*/
JNIEXPORT jint JNICALL
Java_org_eclipse_cdt_utils_spawner_SpawnerInputStream_close0(JNIEnv * env,
jobject jobj,
jint fd)
{
return close(fd);
}
/*
* Class: org_eclipse_cdt_utils_spawner_SpawnerOutputStream
* Method: write0
* Signature: (II)I
*/
JNIEXPORT jint JNICALL
Java_org_eclipse_cdt_utils_spawner_SpawnerOutputStream_write0(JNIEnv * env,
jobject jobj,
jint jfd,
jbyteArray buf,
jint buf_len)
{
int status;
int fd;
jbyte *data;
int data_len;
data = (*env)->GetByteArrayElements(env, buf, 0);
data_len = buf_len;
fd = jfd;
status = write(fd, data, data_len);
(*env)->ReleaseByteArrayElements(env, buf, data, 0);
return status;
}
/*
* Class: org_eclipse_cdt_utils_spawner_SpawnerOutputStream
* Method: close0
* Signature: (I)I
*/
JNIEXPORT jint JNICALL
Java_org_eclipse_cdt_utils_spawner_SpawnerOutputStream_close0(JNIEnv * env,
jobject jobj,
jint fd)
{
return close(fd);
}

View file

@ -1,134 +0,0 @@
/*******************************************************************************
* Copyright (c) 2003, 2013 IBM Corporation and others.
* All rights reserved. This program and the accompanying materials
* are made available under the terms of the Eclipse Public License v1.0
* which accompanies this distribution, and is available at
* http://www.eclipse.org/legal/epl-v10.html
*
* Contributors:
* IBM Corporation - initial API and implementation
* QNX Software Systems
*******************************************************************************/
#include <sys/types.h>
#include <sys/stat.h>
#include <sys/ioctl.h>
#include <fcntl.h>
#include <termios.h>
#include <errno.h>
#include <unistd.h>
#include <stdio.h>
#include <string.h>
#include <grp.h>
#include <stdlib.h>
#include <stropts.h>
/**
* This is taken from R. W. Stevens book.
* Alain Magloire.
*/
int ptym_open (char *pts_name);
int ptys_open (int fdm, const char * pts_name);
void set_noecho(int fd);
int
openpty(int *amaster, int *aslave, char *name, struct termios *termp, struct winsize *winp)
{
char line[20];
line[0]=0;
*amaster = ptym_open(line);
if (*amaster < 0)
return -1;
*aslave = ptys_open(*amaster, line);
if (*aslave < 0) {
close(*amaster);
return -1;
}
if (name)
strcpy(name, line);
#ifndef TCSAFLUSH
#define TCSAFLUSH TCSETAF
#endif
if (termp)
(void) tcsetattr(*aslave, TCSAFLUSH, termp);
#ifdef TIOCSWINSZ
if (winp)
(void) ioctl(*aslave, TIOCSWINSZ, (char *)winp);
#endif
return 0;
}
void
set_noecho(int fd)
{
struct termios stermios;
if (tcgetattr(fd, &stermios) < 0) {
return ;
}
/* turn off echo */
stermios.c_lflag &= ~(ECHO | ECHOE | ECHOK | ECHONL);
/* Turn off the NL to CR/NL mapping ou output. */
/*stermios.c_oflag &= ~(ONLCR);*/
stermios.c_iflag |= (IGNCR);
tcsetattr(fd, TCSANOW, &stermios);
}
int
ptym_open(char * pts_name)
{
int fdm;
char *ptr;
strcpy(pts_name, "/dev/ptmx");
fdm = posix_openpt(O_RDWR);
if (fdm < 0)
return -1;
if (grantpt(fdm) < 0) { /* grant access to slave */
close(fdm);
return -2;
}
if (unlockpt(fdm) < 0) { /* clear slave's lock flag */
close(fdm);
return -3;
}
ptr = ptsname(fdm);
if (ptr == NULL) { /* get slave's name */
close (fdm);
return -4;
}
strcpy(pts_name, ptr); /* return name of slave */
return fdm; /* return fd of master */
}
int
ptys_open(int fdm, char * pts_name)
{
int fds;
/* following should allocate controlling terminal */
fds = open(pts_name, O_RDWR);
if (fds < 0) {
close(fdm);
return -5;
}
/*
if (ioctl(fds, I_PUSH, "ptem") < 0) {
printf("pterm:%s\n", strerror(errno));
close(fdm);
close(fds);
return -6;
}
if (ioctl(fds, I_PUSH, "ldterm") < 0) {
printf("ldterm %s\n", strerror(errno));
close(fdm);
close(fds);
return -7;
}
*/
return fds;
}

View file

@ -1,19 +0,0 @@
/******************************************************************************
* Copyright (c) 2003, 2013 IBM Corporation and others.
* All rights reserved. This program and the accompanying materials
* are made available under the terms of the Eclipse Public License v1.0
* which accompanies this distribution, and is available at
* http://www.eclipse.org/legal/epl-v10.html
*
* Contributors:
* IBM Corporation - initial API and implementation
* QNX Software Systems
* IBM Corporation - port of 248071
*******************************************************************************/
#ifndef _OPENPTY_H
#define _OPENPTY_H
int ptym_open (char *pts_name);
int ptys_open (int fdm, const char * pts_name);
void set_noecho(int fd);
#endif

View file

@ -1,107 +0,0 @@
/*******************************************************************************
* Copyright (c) 2003, 2013 IBM Corporation and others.
* All rights reserved. This program and the accompanying materials
* are made available under the terms of the Eclipse Public License v1.0
* which accompanies this distribution, and is available at
* http://www.eclipse.org/legal/epl-v10.html
*
* Contributors:
* IBM Corporation - initial API and implementation
* IBM Corporation - port of 248071
*******************************************************************************/
/*
* pfind.c - Search for a binary in $PATH.
*/
#include <stdio.h>
#include <unistd.h>
#include <stdlib.h>
#include <string.h>
#include <limits.h>
#ifndef PATH_MAX
#define PATH_MAX 1024
#endif
#define PATH_DEF "PATH="
const int path_def_len = 5; /* strlen(PATH_DEF); */
char * path_val(char * const envp[])
{
int i;
if (envp == NULL || envp[0] == NULL)
return getenv("PATH" );
for(i = 0; envp[i] != NULL; i++){
char* p = envp[i];
if(!strncmp(PATH_DEF, p, path_def_len)){
return p + path_def_len;
}
}
return NULL;
}
char * pfind(const char *name, char * const envp[])
{
char *tok;
char *sp;
char *path;
char fullpath[PATH_MAX+1];
/* Sanity check. */
if (name == NULL) {
fprintf(stderr, "pfind(): Null argument.\n");
return NULL;
}
/* For absolute name or name with a path, check if it is an executable. */
if (name[0] == '/' || name[0] == '.') {
if (access(name, X_OK | R_OK) == 0) {
return strdup(name);
}
return NULL;
}
/* Search in the PATH environment. */
path = path_val( envp );
if (path == NULL || strlen(path) <= 0) {
fprintf(stderr, "Unable to get $PATH.\n");
return NULL;
}
/* The value return by getenv() is readonly */
path = strdup(path);
tok = strtok_r(path, ":", &sp);
while (tok != NULL) {
snprintf(fullpath, sizeof(fullpath) - 1, "%s/%s", tok, name);
if (access(fullpath, X_OK | R_OK) == 0) {
free(path);
return strdup(fullpath);
}
tok = strtok_r( NULL, ":", &sp );
}
free(path);
return NULL;
}
#ifdef BUILD_WITH_MAIN
int main(int argc, char **argv)
{
int i;
char *fullpath;
for (i=1; i<argc; i++) {
fullpath = pfind(argv[i], NULL);
if (fullpath == NULL)
printf("Unable to find %s in $PATH.\n", argv[i]);
else
printf("Found %s @ %s.\n", argv[i], fullpath);
}
}
#endif

View file

@ -1,72 +0,0 @@
/*******************************************************************************
* Copyright (c) 2003, 2013 IBM Corporation and others.
* All rights reserved. This program and the accompanying materials
* are made available under the terms of the Eclipse Public License v1.0
* which accompanies this distribution, and is available at
* http://www.eclipse.org/legal/epl-v10.html
*
* Contributors:
* IBM Corporation - initial API and implementation
* QNX Software Systems
* IBM Corporation - port of 248071
*******************************************************************************/
#include <sys/ioctl.h>
#include "PTY.h"
#include "openpty.h"
/*
* Class: org_eclipse_cdt_utils_pty_PTY
* Method: forkpty
* Signature: ()I
*/
JNIEXPORT jstring JNICALL
Java_org_eclipse_cdt_utils_pty_PTY_openMaster (JNIEnv *env, jobject jobj, jboolean console) {
jfieldID fid; /* Store the field ID */
jstring jstr = NULL;
int master = -1;
char line[1024]; /* FIXME: Should be enough */
jclass cls;
line[0] = '\0';
master = ptym_open(line);
if (master >= 0) {
// turn off echo
if (console) {
set_noecho(master);
}
/* Get a reference to the obj's class */
cls = (*env)->GetObjectClass(env, jobj);
/* Set the master fd. */
fid = (*env)->GetFieldID(env, cls, "master", "I");
if (fid == NULL) {
return NULL;
}
(*env)->SetIntField(env, jobj, fid, (jint)master);
/* Create a new String for the slave. */
jstr = (*env)->NewStringUTF(env, line);
}
return jstr;
}
JNIEXPORT jint JNICALL Java_org_eclipse_cdt_utils_pty_PTY_change_1window_1size
(JNIEnv *env, jobject jobj, jint fdm, jint width, jint height)
{
#ifdef TIOCGWINSZ
struct winsize win;
win.ws_col = width;
win.ws_row = height;
win.ws_xpixel = 0;
win.ws_ypixel = 0;
return ioctl(fdm, TIOCSWINSZ, &win);
#else
return 0;
#endif
}

View file

@ -1,118 +0,0 @@
/*******************************************************************************
* Copyright (c) 2003, 2010 IBM Corporation and others.
* All rights reserved. This program and the accompanying materials
* are made available under the terms of the Eclipse Public License v1.0
* which accompanies this distribution, and is available at
* http://www.eclipse.org/legal/epl-v10.html
*
* Contributors:
* IBM Corporation - initial API and implementation
*******************************************************************************/
#include <jni.h>
#include <stdio.h>
#include <PTYInputStream.h>
#include <PTYOutputStream.h>
#include <unistd.h>
/* Header for class _org_eclipse_cdt_utils_pty_PTYInputStream */
/* Header for class _org_eclipse_cdt_utils_pty_PTYOutputStream */
/*
* Class: org_eclipse_cdt_utils_pty_PTYInputStream
* Method: read0
* Signature: (I)I
*/
JNIEXPORT jint JNICALL
Java_org_eclipse_cdt_utils_pty_PTYInputStream_read0(JNIEnv * env,
jobject jobj,
jint jfd,
jbyteArray buf,
jint buf_len)
{
int fd;
int status;
jbyte *data;
int data_len;
data = (*env)->GetByteArrayElements(env, buf, 0);
data_len = buf_len;
fd = jfd;
status = read( fd, data, data_len );
(*env)->ReleaseByteArrayElements(env, buf, data, 0);
if (status == 0) {
/* EOF. */
status = -1;
} else if (status == -1) {
/* Error, toss an exception */
/* Ignore the error for now, the debugger will attempt
* to close this multiple time. */
#if 0
jclass exception = (*env)->FindClass(env, "java/io/IOException");
if (exception == NULL) {
/* Give up. */
return -1;
}
(*env)->ThrowNew(env, exception, "read error");
#endif
}
return status;
}
/*
* Class: org_eclipse_cdt_utils_pty_PTYInputStream
* Method: close0
* Signature: (I)I
*/
JNIEXPORT jint JNICALL
Java_org_eclipse_cdt_utils_pty_PTYInputStream_close0(JNIEnv * env,
jobject jobj,
jint fd)
{
return close(fd);
}
/*
* Class: org_eclipse_cdt_utils_pty_PTYOutputStream
* Method: write0
* Signature: (II)I
*/
JNIEXPORT jint JNICALL
Java_org_eclipse_cdt_utils_pty_PTYOutputStream_write0(JNIEnv * env,
jobject jobj,
jint jfd,
jbyteArray buf,
jint buf_len)
{
int status;
int fd;
jbyte *data;
int data_len;
data = (*env)->GetByteArrayElements(env, buf, 0);
data_len = buf_len;
fd = jfd;
status = write(fd, data, data_len);
(*env)->ReleaseByteArrayElements(env, buf, data, 0);
return status;
}
/*
* Class: org_eclipse_cdt_utils_pty_PTYOutputStream
* Method: close0
* Signature: (I)I
*/
JNIEXPORT jint JNICALL
Java_org_eclipse_cdt_utils_pty_PTYOutputStream_close0(JNIEnv * env,
jobject jobj,
jint fd)
{
return close(fd);
}

View file

@ -1,303 +0,0 @@
/*******************************************************************************
* Copyright (c) 2003, 2013 IBM Corporation and others.
* All rights reserved. This program and the accompanying materials
* are made available under the terms of the Eclipse Public License v1.0
* which accompanies this distribution, and is available at
* http://www.eclipse.org/legal/epl-v10.html
*
* Contributors:
* IBM Corporation - initial API and implementation
* QNX Software Systems
* IBM Corporation - port of 248071
*******************************************************************************/
#include <unistd.h>
#include <stdlib.h>
#include <stdio.h>
#include <signal.h>
#include <string.h>
#include <jni.h>
#include "exec0.h"
#include <Spawner.h>
#define DEBUGIT 0
/*
* Header for class org_eclipse_cdt_utils_spawner_Spawner
*/
#if DEBUGIT
static void print_array(char **c_array)
{
if (c_array) {
char **p = c_array;
for (; *p; p++) {
if (*p) {
fprintf(stderr, " %s", *p);
}
}
} else {
fprintf(stderr, "null");
}
fprintf(stderr, "\n");
}
#endif
static char **alloc_c_array(JNIEnv * env, jobjectArray j_array)
{
int i;
jint c_array_size = (*env)->GetArrayLength(env, j_array);
char **c_array = calloc(c_array_size + 1, sizeof(*c_array));
if (c_array == NULL)
return NULL;
for (i = 0; i < c_array_size; i++) {
jstring j_str =
(jstring) (*env)->GetObjectArrayElement(env, j_array, i);
const char *c_str = (*env)->GetStringUTFChars(env, j_str, NULL);
c_array[i] = (char *) strdup(c_str);
(*env)->ReleaseStringUTFChars(env, j_str, c_str);
(*env)->DeleteLocalRef(env, j_str);
}
return c_array;
}
static void free_c_array(char **c_array)
{
if (c_array) {
char **p = c_array;
for (; *p; p++) {
if (*p) {
free(*p);
}
}
free(c_array);
}
}
/*
* Class: org_eclipse_cdt_utils_spawner_Spawner
* Method: exec2
* Signature: ([Ljava/lang/String;[Ljava/lang/String;Ljava/lang/String;[ILorg/eclipse/cdt/utils/pty/PTY;)I
*/
JNIEXPORT jint JNICALL Java_org_eclipse_cdt_utils_spawner_Spawner_exec2
(JNIEnv *env, jobject jobj, jobjectArray jcmd, jobjectArray jenv, jstring jdir, jintArray jchannels,
jstring jslaveName, jint masterFD, jboolean console)
{
jint *channels = (*env)->GetIntArrayElements(env, jchannels, 0);
const char *dirpath = (*env)->GetStringUTFChars(env, jdir, NULL);
const char *pts_name = (*env)->GetStringUTFChars(env, jslaveName, NULL);
char **cmd = NULL;
char **envp = NULL;
int fd[3];
pid_t pid = -1;
if (channels == NULL)
goto bail_out;
cmd = alloc_c_array(env, jcmd);
if (cmd == NULL)
goto bail_out;
envp = alloc_c_array(env, jenv);
if (envp == NULL)
goto bail_out;
#if DEBUGIT
fprintf(stderr, "command:");
print_array(cmd);
fprintf(stderr, "Envp:");
print_array(envp);
fprintf(stderr, "dirpath: %s\n", dirpath);
fprintf(stderr, "pts_name: %s\n", pts_name);
#endif
pid = exec_pty(cmd[0], cmd, envp, dirpath, fd, pts_name, masterFD, console);
if (pid < 0)
goto bail_out;
channels[0] = fd[0];
channels[1] = fd[1];
channels[2] = fd[2];
bail_out:
(*env)->ReleaseIntArrayElements(env, jchannels, channels, 0);
(*env)->ReleaseStringUTFChars(env, jdir, dirpath);
(*env)->ReleaseStringUTFChars(env, jslaveName, pts_name);
if (cmd)
free_c_array(cmd);
if (envp)
free_c_array(envp);
return pid;
}
JNIEXPORT jint JNICALL
Java_org_eclipse_cdt_utils_spawner_Spawner_exec1(JNIEnv * env, jobject jobj,
jobjectArray jcmd,
jobjectArray jenv,
jstring jdir)
{
const char *dirpath = (*env)->GetStringUTFChars(env, jdir, NULL);
char **cmd = NULL;
char **envp = NULL;
pid_t pid = -1;
cmd = alloc_c_array(env, jcmd);
if (cmd == NULL)
goto bail_out;
envp = alloc_c_array(env, jenv);
if (envp == NULL)
goto bail_out;
#if DEBUGIT
fprintf(stderr, "command:");
print_array(cmd);
fprintf(stderr, "Envp:");
print_array(envp);
fprintf(stderr, "dirpath: %s\n", dirpath);
#endif
pid = exec0(cmd[0], cmd, envp, dirpath, NULL);
if (pid < 0)
goto bail_out;
bail_out:
(*env)->ReleaseStringUTFChars(env, jdir, dirpath);
if (cmd)
free_c_array(cmd);
if (envp)
free_c_array(envp);
return pid;
}
/*
* 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 * env, jobject jobj,
jobjectArray jcmd,
jobjectArray jenv,
jstring jdir,
jintArray jchannels)
{
jint *channels = (*env)->GetIntArrayElements(env, jchannels, 0);
const char *dirpath = (*env)->GetStringUTFChars(env, jdir, NULL);
char **cmd = NULL;
char **envp = NULL;
int fd[3];
pid_t pid = -1;
if (channels == NULL)
goto bail_out;
cmd = alloc_c_array(env, jcmd);
if (cmd == NULL)
goto bail_out;
envp = alloc_c_array(env, jenv);
if (envp == NULL)
goto bail_out;
#if DEBUGIT
fprintf(stderr, "command:");
print_array(cmd);
fprintf(stderr, "Envp:");
print_array(envp);
fprintf(stderr, "dirpath: %s\n", dirpath);
#endif
pid = exec0(cmd[0], cmd, envp, dirpath, fd);
if (pid < 0)
goto bail_out;
channels[0] = fd[0];
channels[1] = fd[1];
channels[2] = fd[2];
bail_out:
(*env)->ReleaseIntArrayElements(env, jchannels, channels, 0);
(*env)->ReleaseStringUTFChars(env, jdir, dirpath);
if (cmd)
free_c_array(cmd);
if (envp)
free_c_array(envp);
return pid;
}
/*
* Class: org_eclipse_cdt_utils_spawner_Spawner
* Method: raise
* Signature: (II)I
*/
JNIEXPORT jint JNICALL
Java_org_eclipse_cdt_utils_spawner_Spawner_raise(JNIEnv * env, jobject jobj,
jint pid, jint sig)
{
int status = -1;
switch (sig) {
case 0: /* NOOP */
status = killpg(pid, 0);
if(status == -1) {
status = kill(pid, 0);
}
break;
case 2: /* INTERRUPT */
status = killpg(pid, SIGINT);
if(status == -1) {
status = kill(pid, SIGINT);
}
break;
case 9: /* KILL */
status = killpg(pid, SIGKILL);
if(status == -1) {
status = kill(pid, SIGKILL);
}
break;
case 15: /* TERM */
status = killpg(pid, SIGTERM);
if(status == -1) {
status = kill(pid, SIGTERM);
}
break;
default:
status = killpg(pid, sig); /* WHAT ?? */
if(status == -1) {
status = kill(pid, sig); /* WHAT ?? */
}
break;
}
return status;
}
/*
* Class: org_eclipse_cdt_utils_spawner_Spawner
* Method: waitFor
* Signature: (I)I
*/
JNIEXPORT jint JNICALL
Java_org_eclipse_cdt_utils_spawner_Spawner_waitFor(JNIEnv * env,
jobject jobj, jint pid)
{
return wait0(pid);
}

View file

@ -1,2 +0,0 @@
fragmentName.linux=C/C++ Development Tools Core for AIX
providerName=Eclipse CDT

View file

@ -1,39 +0,0 @@
<?xml version="1.0" encoding="UTF-8"?>
<project
xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd"
xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
<modelVersion>4.0.0</modelVersion>
<parent>
<groupId>org.eclipse.cdt</groupId>
<artifactId>cdt-parent</artifactId>
<version>9.3.0-SNAPSHOT</version>
<relativePath>../../pom.xml</relativePath>
</parent>
<version>5.4.0-SNAPSHOT</version>
<artifactId>org.eclipse.cdt.core.aix</artifactId>
<packaging>eclipse-plugin</packaging>
<build>
<plugins>
<plugin>
<groupId>org.eclipse.tycho</groupId>
<artifactId>target-platform-configuration</artifactId>
<version>${tycho-version}</version>
<configuration>
<resolver>p2</resolver>
<pomDependencies>consider</pomDependencies>
<environments>
<environment>
<os>aix</os>
<ws>gtk</ws>
<arch>ppc</arch>
</environment>
</environments>
</configuration>
</plugin>
</plugins>
</build>
</project>

View file

@ -1,55 +0,0 @@
/*******************************************************************************
* Copyright (c) 2000, 2006 QNX Software Systems and others.
* All rights reserved. This program and the accompanying materials
* are made available under the terms of the Eclipse Public License v1.0
* which accompanies this distribution, and is available at
* http://www.eclipse.org/legal/epl-v10.html
*
* Contributors:
* QNX Software Systems - Initial API and implementation
*******************************************************************************/
package org.eclipse.cdt.internal.core.aix;
import org.eclipse.cdt.core.IProcessInfo;
/**
* @author alain
*
* To change this generated comment edit the template variable "typecomment":
* Window>Preferences>Java>Templates.
* To enable and disable the creation of type comments go to
* Window>Preferences>Java>Code Generation.
*/
public class ProcessInfo implements IProcessInfo {
int pid;
String name;
public ProcessInfo(String pidString, String name) {
try {
pid = Integer.parseInt(pidString);
} catch (NumberFormatException e) {
}
this.name = name;
}
public ProcessInfo(int pid, String name) {
this.pid = pid;
this.name = name;
}
/**
* @see org.eclipse.cdt.core.IProcessInfo#getName()
*/
public String getName() {
return name;
}
/**
* @see org.eclipse.cdt.core.IProcessInfo#getPid()
*/
public int getPid() {
return pid;
}
}

View file

@ -1,89 +0,0 @@
/*******************************************************************************
* Copyright (c) 2000, 2016 QNX Software Systems and others.
* All rights reserved. This program and the accompanying materials
* are made available under the terms of the Eclipse Public License v1.0
* which accompanies this distribution, and is available at
* http://www.eclipse.org/legal/epl-v10.html
*
* Contributors:
* QNX Software Systems - Initial API and implementation
*******************************************************************************/
package org.eclipse.cdt.internal.core.aix;
import java.io.File;
import java.io.FileReader;
import java.io.FilenameFilter;
import java.io.IOException;
import org.eclipse.cdt.core.IProcessInfo;
import org.eclipse.cdt.core.IProcessList;
/**
* Insert the type's description here.
* @see IProcessList
*/
public class ProcessList implements IProcessList {
ProcessInfo[] empty = new ProcessInfo[0];
public ProcessList() {
}
/**
* Insert the method's description here.
* @see IProcessList#getProcessList
*/
public IProcessInfo [] getProcessList() {
File proc = new File("/proc"); //$NON-NLS-1$
File[] pidFiles = null;
// We are only interrested in the pid so filter the rest out.
try {
FilenameFilter filter = new FilenameFilter() {
public boolean accept(File dir, String name) {
boolean isPID = false;
try {
Integer.parseInt(name);
isPID = true;
} catch (NumberFormatException e) {
}
return isPID;
}
};
pidFiles = proc.listFiles(filter);
} catch (SecurityException e) {
}
ProcessInfo[] processInfo = empty;
if (pidFiles != null) {
processInfo = new ProcessInfo[pidFiles.length];
for (int i = 0; i < pidFiles.length; i++) {
File cmdLine = new File(pidFiles[i], "cmdline"); //$NON-NLS-1$
StringBuilder line = new StringBuilder();
FileReader reader = null;
try {
reader = new FileReader(cmdLine);
int c;
while ((c = reader.read()) > 0) {
line.append((char)c);
}
} catch (IOException e) {
} finally {
try {
if (reader != null)
reader.close();
} catch (IOException e) {/* Don't care */}
reader = null;
}
String name = line.toString();
if (name.length() == 0) {
name = "Unknown"; //$NON-NLS-1$
}
processInfo[i] = new ProcessInfo(pidFiles[i].getName(), name);
}
} else {
pidFiles = new File[0];
}
return processInfo;
}
}

View file

@ -13,16 +13,12 @@
pluginName=C/C++ Development Tools Core Native Utilities
providerName=Eclipse CDT
fragmentName.aix = C/C++ Development Tools Core Native Utilities for AIX
fragmentName.linux = C/C++ Development Tools Core Native Utilities for Linux
fragmentName.linux.ia64 = C/C++ Development Tools Core Native Utilities for Linux (ia64)
fragmentName.linux.ppc = C/C++ Development Tools Core Native Utilities for Linux (ppc)
fragmentName.linux.ppc64 = C/C++ Development Tools Core Native Utilities for Linux (ppc64)
fragmentName.linux.ppc64le = C/C++ Development Tools Core Native Utilities for Linux (ppc64le)
fragmentName.linux.x86 = C/C++ Development Tools Core Native Utilities for Linux (x86)
fragmentName.linux.x86_64 = C/C++ Development Tools Core Native Utilities for Linux (x86_64)
fragmentName.qnx = C/C++ Development Tools Core Native Utilities for QNX
fragmentName.solaris = C/C++ Development Tools Core Native Utilities for Solaris
fragmentName.win32 = C/C++ Development Tools Core Native Utilities for Windows
fragmentName.win32.x86 = C/C++ Development Tools Core Native Utilities for Windows (x86)
fragmentName.win32.x86_64 = C/C++ Development Tools Core Native Utilities for Windows (x86_64)

File diff suppressed because one or more lines are too long

11
pom.xml
View file

@ -54,7 +54,6 @@
<module>core/org.eclipse.cdt.core.win32.x86</module>
<module>core/org.eclipse.cdt.core.win32.x86_64</module>
<module>core/org.eclipse.cdt.core.macosx</module>
<module>core/org.eclipse.cdt.core.aix</module>
<module>native/org.eclipse.cdt.native.serial</module>
<module>releng/org.eclipse.cdt.native-feature</module>
@ -401,11 +400,6 @@
<ws>cocoa</ws>
<arch>x86_64</arch>
</environment>
<environment>
<os>aix</os>
<ws>gtk</ws>
<arch>ppc</arch>
</environment>
<environment>
<os>linux</os>
<ws>gtk</ws>
@ -464,11 +458,6 @@
<ws>cocoa</ws>
<arch>x86_64</arch>
</environment>
<environment>
<os>aix</os>
<ws>gtk</ws>
<arch>ppc</arch>
</environment>
</environments>
<target>
<artifact>

View file

@ -26,15 +26,6 @@
version="0.0.0"
unpack="false"/>
<plugin
id="org.eclipse.cdt.core.aix"
os="aix"
download-size="0"
install-size="0"
version="0.0.0"
fragment="true"
unpack="false"/>
<plugin
id="org.eclipse.cdt.core.linux"
os="linux"