CVS kaffe (robilad): cleanup up jsyscall tables and implementations

Kaffe CVS <[email protected]>
Newsgroups gmane.comp.java.vm.kaffe.general
Message-ID <[email protected]>
PatchSet 7657 
Date: 2008/01/02 20:33:50
Author: robilad
Branch: HEAD
Tag: (none) 
Log:
cleanup up jsyscall tables and implementations

2008-01-02  Dalibor Topic  <[email protected]>

* kaffe/kaffeh/support.c (Kaffe_SystemCallInterface): Removed unused members.
(kwrite) Removed.

* kaffe/kaffevm/systems/unix-pthreads/syscalls.c,
kaffe/kaffevm/systems/unix-jthreads/jthread.h,
kaffe/kaffevm/systems/unix-jthreads/jthread.c,
kaffe/kaffevm/systems/beos-native/syscalls.c,
kaffe/kaffevm/systems/drops-l4threads/syscalls.c,
kaffe/kaffevm/systems/oskit-pthreads/syscalls.c:
Removed unused functions, macros and global variables.
(Kaffe_SystemCallInterface): Updated to new syscall interface.

* include/jsyscall.h (SystemCallInterface): Removed unused members,
and their wrapper macros.

Members: 
	ChangeLog:1.5159->1.5160 
	include/jsyscall.h:1.30->1.31 
	kaffe/kaffeh/support.c:1.55->1.56 
	kaffe/kaffevm/systems/beos-native/syscalls.c:1.14->1.15 
	kaffe/kaffevm/systems/drops-l4threads/syscalls.c:1.5->1.6 
	kaffe/kaffevm/systems/oskit-pthreads/syscalls.c:1.14->1.15 
	kaffe/kaffevm/systems/unix-jthreads/jthread.c:1.144->1.145 
	kaffe/kaffevm/systems/unix-jthreads/jthread.h:1.72->1.73 
	kaffe/kaffevm/systems/unix-jthreads/syscalls.c:1.23->1.24 
	kaffe/kaffevm/systems/unix-pthreads/syscalls.c:1.41->1.42 

Index: kaffe/ChangeLog
diff -u kaffe/ChangeLog:1.5159 kaffe/ChangeLog:1.5160
--- kaffe/ChangeLog:1.5159	Wed Jan  2 18:19:25 2008
+++ kaffe/ChangeLog	Wed Jan  2 20:33:50 2008
@@ -1,5 +1,22 @@
 2008-01-02  Dalibor Topic  <[email protected]>
 
+	* kaffe/kaffeh/support.c (Kaffe_SystemCallInterface): Removed unused members.
+	(kwrite) Removed.
+
+	* kaffe/kaffevm/systems/unix-pthreads/syscalls.c,
+	kaffe/kaffevm/systems/unix-jthreads/jthread.h,
+	kaffe/kaffevm/systems/unix-jthreads/jthread.c,
+	kaffe/kaffevm/systems/beos-native/syscalls.c,
+	kaffe/kaffevm/systems/drops-l4threads/syscalls.c,
+	kaffe/kaffevm/systems/oskit-pthreads/syscalls.c:
+	Removed unused functions, macros and global variables.
+	(Kaffe_SystemCallInterface): Updated to new syscall interface.
+
+	* include/jsyscall.h (SystemCallInterface): Removed unused members,
+	and their wrapper macros.
+
+2008-01-02  Dalibor Topic  <[email protected]>
+
 	* TODO: Updated jsyscall interface cleanup task with information
 	on which syscalls are still used.
 
Index: kaffe/include/jsyscall.h
diff -u kaffe/include/jsyscall.h:1.30 kaffe/include/jsyscall.h:1.31
--- kaffe/include/jsyscall.h:1.30	Sun Sep 23 21:16:58 2007
+++ kaffe/include/jsyscall.h	Wed Jan  2 20:34:01 2008
@@ -5,6 +5,9 @@
  * Copyright (c) 1996, 1997
  *	Transvirtual Technologies, Inc.  All rights reserved.
  *
+ * Copyright (c) 2008
+ *      Kaffe.org contributors. See ChangeLog for details.
+ * 
  * See the file "license.terms" for information on usage and redistribution 
  * of this file.
  */
@@ -56,52 +59,10 @@
 
 	int	(*_open)(const char *, int, int, int *);
 	int	(*_read)(int, void *, size_t, ssize_t *);
-	int	(*_write)(int, const void*, size_t, ssize_t *);
 	int	(*_lseek)(int, off_t, int, off_t *);
 	int	(*_close)(int);
 	int	(*_fstat)(int, struct stat *);
 	int	(*_stat)(const char *, struct stat *);
-	int	(*_ftruncate)(int, off_t);
-	int	(*_fsync)(int);
-
-	int	(*_mkdir)(const char *, int);
-	int	(*_rmdir)(const char *);
-	int	(*_rename)(const char *, const char *);
-	int	(*_remove)(const char *);
-
-	int	(*_socket)(int, int, int, int *);
-	int	(*_connect)(int, struct sockaddr *, socklen_t, int);
-	int	(*_bind)(int, struct sockaddr *, socklen_t);
-	int	(*_listen)(int, int);
-	int	(*_accept)(int, struct sockaddr *, socklen_t*, int, int *);
-	int	(*_sockread)(int, void*, size_t, int, ssize_t *);
-	int	(*_recvfrom)(int, void *, size_t, int, struct sockaddr *, socklen_t *,
-		int, ssize_t *);
-	int	(*_sockwrite)(int, const void *, size_t, ssize_t *);
-	int	(*_sendto)(int, const void *, size_t, int, const struct sockaddr *,
-		socklen_t, ssize_t *);
-	int	(*_setsockopt)(int, int, int, const void *, int);
-	int	(*_getsockopt)(int, int, int, void *, socklen_t *);
-	int	(*_getsockname)(int, struct sockaddr *, socklen_t *);
-	int	(*_getpeername)(int, struct sockaddr *, socklen_t *);
-	int	(*_sockclose)(int);
-        int     (*_sockShutdown)(int);
-	int	(*_gethostbyname)(const char *, struct hostent **);
-	int	(*_gethostbyaddr)(const char *, size_t, int, struct hostent **);
-
-	int	(*_select)(int, fd_set *, fd_set *, fd_set *, struct timeval *,
-		int*);
-	int	(*_forkexec)(char **, char **, int[4], int*, const char *);
-	int	(*_waitpid)(int, int *, int, int *);
-	int	(*_kill)(int, int);
-
-	int	(*_mmap)(void **, size_t *, int, int fd, off_t *);
-	int	(*_munmap)(void *, size_t);
-	int	(*_msync)(void *, size_t);
-
-	int	(*_pipecreate)(int *, int *);
-	int	(*_piperead)(int, void *, size_t, int, ssize_t *);
-	int	(*_pipewrite)(int, const void*, size_t, int, ssize_t *);
 } SystemCallInterface;
 
 extern SystemCallInterface Kaffe_SystemCallInterface;
@@ -139,20 +100,6 @@
   (*Kaffe_SystemCallInterface._read)(filedescriptor, buffer, length, bytesRead)
 
 /**
- * Write bytes to a file from a buffer in a 
- * platform-independant, thread-safe way.
- *
- * @param filedescriptor filedescriptor to write to
- * @param buffer buffer to write the bytes from
- * @param length number of bytes to be written
- * @param bytesWritten number of bytes actually written
- * 
- * @return 0 on success, or errno on failure.
- */
-#define	KWRITE(filedescriptor, buffer, length, bytesWritten)	\
-  (*Kaffe_SystemCallInterface._write)(filedescriptor, buffer, length, bytesWritten)
-
-/**
  * Reposition read/write offset in a file in a 
  * platform-independant, thread-safe way.
  *
@@ -187,84 +134,6 @@
 #define	KFSTAT(filedescriptor, stats)	\
   (*Kaffe_SystemCallInterface._fstat)(filedescriptor, stats)
 #define	KSTAT(A,B)	(*Kaffe_SystemCallInterface._stat)(A,B)
-
-/**
- * FTruncate a file in a platform-independant, thread-safe way.
- *
- * @param filedescriptor filedescriptor to truncate
- * @param offset pffest at which the filedescriptor should be truncated
- * 
- * @return 0 on success, or errno on failure.
- */
-#define KFTRUNCATE(filedescriptor,offset) \
-  (*Kaffe_SystemCallInterface._ftruncate)(filedescriptor, offset)
-
-/**
- * Synchrnoze a file in a platform-independant, thread-safe way.
- *
- * @param filedescriptor filedescriptor to synchronize
- * 
- * @return 0 on success, or errno on failure.
- */
-#define KFSYNC(filedescriptor) \
-  (*Kaffe_SystemCallInterface._fsync)(filedescriptor)
-
-#define	KMKDIR(A,B)	(*Kaffe_SystemCallInterface._mkdir)(A,B)
-#define	KRMDIR(A)	(*Kaffe_SystemCallInterface._rmdir)(A)
-#define	KRENAME(A,B)	(*Kaffe_SystemCallInterface._rename)(A,B)
-#define	KREMOVE(A)	(*Kaffe_SystemCallInterface._remove)(A)
-
-#define	KSOCKET(A,B,C,D) \
-			(*Kaffe_SystemCallInterface._socket)(A,B,C,D)
-#define	KCONNECT(A,B,C,D) \
-			(*Kaffe_SystemCallInterface._connect)(A,B,C,D)
-#define	KBIND(A,B,C)	(*Kaffe_SystemCallInterface._bind)(A,B,C)
-#define	KLISTEN(A,B)	(*Kaffe_SystemCallInterface._listen)(A,B)
-#define	KACCEPT(A,B,C,D,E) \
-			(*Kaffe_SystemCallInterface._accept)(A,B,C,D,E)
-#define	KSOCKREAD(A,B,C,D,E) \
-			(*Kaffe_SystemCallInterface._sockread)(A,B,C,D,E)
-#define	KRECVFROM(A,B,C,D,E,F,G,H) \
-			(*Kaffe_SystemCallInterface._recvfrom)(A,B,C,D,E,F,G,H)
-#define	KSOCKWRITE(A,B,C,D) \
-			(*Kaffe_SystemCallInterface._sockwrite)(A,B,C,D)
-#define	KSENDTO(A,B,C,D,E,F,G) \
-			(*Kaffe_SystemCallInterface._sendto)(A,B,C,D,E,F,G)
-#define	KSETSOCKOPT(A,B,C,D,E) \
-			(*Kaffe_SystemCallInterface._setsockopt)(A,B,C,D,E)
-#define	KGETSOCKOPT(A,B,C,D,E) \
-			(*Kaffe_SystemCallInterface._getsockopt)(A,B,C,D,E)
-#define	KGETSOCKNAME(A,B,C) \
-			(*Kaffe_SystemCallInterface._getsockname)(A,B,C)
-#define	KGETPEERNAME(A,B,C) \
-			(*Kaffe_SystemCallInterface._getpeername)(A,B,C)
-#define KGETHOSTBYNAME(A,B) \
-			(*Kaffe_SystemCallInterface._gethostbyname)(A,B)
-#define KGETHOSTBYADDR(A,B,C,D) \
-			(*Kaffe_SystemCallInterface._gethostbyaddr)(A,B,C,D)
-#define KSOCKCLOSE(A)	(*Kaffe_SystemCallInterface._sockclose)(A)
-
-#define	KSELECT(A,B,C,D,E,F) \
-			(*Kaffe_SystemCallInterface._select)(A,B,C,D,E,F)
-
-#define	KWAITPID(A,B,C,D) \
-			(*Kaffe_SystemCallInterface._waitpid)(A,B,C,D)
-#define	KFORKEXEC(A,B,C,D,E) \
-			(*Kaffe_SystemCallInterface._forkexec)(A,B,C,D,E)
-#define	KKILL(A,B)	(*Kaffe_SystemCallInterface._kill)(A,B)
-#define KMMAP(A,B,C,D,E) (*Kaffe_SystemCallInterface._mmap)(A,B,C,D,E)
-#define KMUNMAP(A,B)  (*Kaffe_SystemCallInterface._munmap)(A,B)
-#define KMSYNC(A,B)  (*Kaffe_SystemCallInterface._msync)(A,B)
-
-#define KPIPECREATE(A,B)   (*Kaffe_SystemCallInterface._pipecreate)(A,B)
-#define KPIPEREAD(A,B,C,D,E) (*Kaffe_SystemCallInterface._piperead)(A,B,C,D,E)
-#define KPIPEWRITE(A,B,C,D,E) (*Kaffe_SystemCallInterface._pipewrite)(A,B,C,D,E)
-
-#define KSOCKSHUTDOWN(A) (*Kaffe_SystemCallInterface._sockShutdown)(A)
-
-#define KAFFE_MMAP_READ 0
-#define KAFFE_MMAP_WRITE 1
-#define KAFFE_MMAP_PRIVATE 2
 
 #define NOTIMEOUT (-1)
 
Index: kaffe/kaffe/kaffeh/support.c
diff -u kaffe/kaffe/kaffeh/support.c:1.55 kaffe/kaffe/kaffeh/support.c:1.56
--- kaffe/kaffe/kaffeh/support.c:1.55	Tue Nov  7 00:59:09 2006
+++ kaffe/kaffe/kaffeh/support.c	Wed Jan  2 20:34:01 2008
@@ -71,13 +71,6 @@
 	return (*out == -1) ? errno : 0;
 }
 
-static int 
-kwrite(int fd, const void *buf, size_t len, ssize_t *out)
-{
-	*out = write(fd, buf, len);
-	return (*out == -1) ? errno : 0;
-}
-
 static int
 klseek(int fd, off_t off, int whence, off_t *out)
 {
@@ -115,45 +108,10 @@
 {
 	binary_open,
         kread,
-        kwrite, 
         klseek,
         close,
         kfstat,
         kstat,
-
-	NULL,		/* truncate */
-	NULL,		/* fsync */
-        NULL,		/* mkdir */
-        NULL,		/* rmdir */
-        NULL,		/* rename */
-        NULL,		/* remove */
-        NULL,		/* socket */
-        NULL,		/* connect */
-        NULL,		/* bind */
-        NULL,		/* listen */
-        NULL,		/* accept */
-        NULL,		/* sockread */
-        NULL,		/* recvfrom */
-        NULL,		/* sockwrite */
-        NULL,		/* sendto */
-        NULL,		/* setsockopt */
-        NULL,		/* getsockopt */
-        NULL,		/* getsockname */
-        NULL,		/* getpeername */
-        NULL,		/* sockclose */
-	NULL,		/* sockshutdown */
- 	NULL,		/* gethostbyname */
-        NULL,		/* gethostbyaddr */
-        NULL,		/* select */
-        NULL,		/* forkexec */
-        NULL,		/* waitpid */
-        NULL,		/* kill */
-	NULL,           /* mmap */
-        NULL,           /* munmap */
-        NULL,           /* msync */
-        NULL,           /* pipecreate */
-        NULL,           /* piperead */
-        NULL            /* pipewrite */
 };
 
 
Index: kaffe/kaffe/kaffevm/systems/beos-native/syscalls.c
diff -u kaffe/kaffe/kaffevm/systems/beos-native/syscalls.c:1.14 kaffe/kaffe/kaffevm/systems/beos-native/syscalls.c:1.15
--- kaffe/kaffe/kaffevm/systems/beos-native/syscalls.c:1.14	Tue Nov  7 00:59:10 2006
+++ kaffe/kaffe/kaffevm/systems/beos-native/syscalls.c	Wed Jan  2 20:34:02 2008
@@ -57,13 +57,6 @@
 }
 
 static int
-beos_native_write(int fd, const void* b, size_t l, ssize_t *out)
-{
-	*out = write(fd, b, l);
-	return (*out < 0) ? errno : 0;
-}
-
-static int
 beos_native_lseek(int f, off_t o, int w, off_t *out)
 {
 	*out = lseek(f, o, w);
@@ -88,466 +81,11 @@
 	return (stat(p, st) < 0) ? errno : 0;
 }
 
-static int
-beos_native_ftruncate(int fd, off_t new_size)
-{
-	return (ftruncate(fd, new_size) < 0) ? errno : 0;
-}
-
-static int
-beos_native_mkdir(const char *p, int m)
-{
-	return (mkdir(p, m) < 0) ? errno : 0;
-}
-
-static int
-beos_native_rmdir(const char *p)
-{
-	return (rmdir(p) < 0) ? errno : 0;
-}
-
-static int
-beos_native_rename(const char *p, const char *q)
-{
-	return (rename(p, q) < 0) ? errno : 0;
-}
-
-static int
-beos_native_remove(const char *p)
-{
-	return (remove(p) < 0) ? errno : 0;
-}
-
-static int
-beos_native_socket(int a, int b, int c, int *outsock)
-{
-        *outsock = socket(a, b, c); 
-	return (*outsock < 0) ? errno : 0;
-}
-
-static int
-beos_native_connect(int sock, struct sockaddr* addr, size_t len, int timeout)
-{
-	/* XXX implement timeout */
-        int r = connect(sock, addr, len);
-        /* annul EISCONN error --- is this really necessary or is this
-	 * a java.net bug? 
-	 */
-        if (r < 0 && errno == EISCONN) {
-                r = 0;
-	}
-        return (r);
-}
-
-static int
-beos_native_bind(int sock, struct sockaddr* addr, size_t len)
-{
-        return (bind(sock, addr, len) < 0) ? errno : 0;
-}
-
-static int
-beos_native_listen(int sock, int n)
-{
-	/* BUGFIX: BeOS doesn't default to 5 conns ala Unix if n == 0 */
-	if (0 == n) n = 5;
-
-        return (listen(sock, n) < 0) ? errno : 0;
-}
-
-static int
-beos_native_accept(int sock, struct sockaddr* a, size_t *l, int timeout, 
-	int* outsock)
-{
-	int cli_size;
-
-	if (timeout > 0) {
-		struct timeval tv;
-		struct fd_set fds;
-		int rc;
-
-		tv.tv_sec = timeout / 1000;
-		tv.tv_usec = (timeout % 1000) * 1000L;
-
-		FD_ZERO(&fds);
-		FD_SET(sock, &fds);
-
-		rc = select(sock+1, &fds, NULL, NULL, &tv);
-		if (rc < 0) {
-			return errno;
-		}
-		else if (0 == rc) {
-			errno = EINTR;
-			return errno;
-		}
-	}
-
-	cli_size = *l;
-	*outsock = accept(sock, a, &cli_size);
-	*l = cli_size;
-	return (*outsock < 0) ? errno : 0;
-}
-
-static int
-beos_native_sock_read(int sock, void* b, size_t l, int timeout, ssize_t *out)
-{
-	if (timeout > 0) {
-		struct timeval tv;
-		struct fd_set fds;
-		int rc;
-
-		tv.tv_sec = timeout / 1000;
-		tv.tv_usec = (timeout % 1000) * 1000L;
-
-		FD_ZERO(&fds);
-		FD_SET(sock, &fds);
-
-		rc = select(sock+1, &fds, NULL, NULL, &tv);
-		if (rc < 0) {
-			return errno;
-		}
-		else if (0 == rc) {
-			errno = EINTR;
-			return errno;
-		}
-	}
-
-	*out = recv(sock, b, l, 0);
-	return (*out < 0) ? errno : 0;
-}
-
-static int
-beos_native_recvfrom(int sock, void* b, size_t c, int d, struct sockaddr* e, 
-	int* f, int timeout, ssize_t *out)
-{
-	if (d & MSG_PEEK) {
-		errno = B_UNSUPPORTED;
-		*out = errno;
-	}
-	else {
-		if (timeout > 0) {
-			struct timeval tv;
-			struct fd_set fds;
-			int rc;
-
-			tv.tv_sec = timeout / 1000;
-			tv.tv_usec = (timeout % 1000) * 1000L;
-
-			FD_ZERO(&fds);
-			FD_SET(sock, &fds);
-
-			rc = select(sock+1, &fds, NULL, NULL, &tv);
-			if (rc < 0) {
-				return errno;
-			}
-			else if (0 == rc) {
-				errno = EINTR;
-				return errno;
-			}
-		}
-
-		*out = recvfrom(sock, b, c, d, e, f);
-	}
-	return (*out < 0) ? errno : 0;
-}
-
-static int
-beos_native_sock_write(int f, const void* b, size_t l, ssize_t *out)
-{
-	*out = send(f, b, l, 0);
-	return (*out < 0) ? errno : 0;
-}
-
-static int
-beos_native_sendto(int a, const void* b, size_t c, int d, 
-	const struct sockaddr* e, int f, ssize_t *out)
-{
-	*out = e ? sendto(a, b, c, d, e, f) : send(a, b, c, d);
-	return (*out < 0) ? errno : 0;
-}
-
-static int
-beos_native_setsockopt(int a, int b, int c, const void* d, int e)
-{
-        return (setsockopt(a, b, c, d, e) < 0) ? errno : 0;
-}
-
-static int
-beos_native_getsockopt(int a, int b, int c, void* d, int* e)
-{
-        /* return (getsockopt(a, b, c, d, e) < 0) ? errno : 0; */
-	errno = B_UNSUPPORTED;
-	return errno;
-}
-
-static int
-beos_native_getsockname(int a, struct sockaddr* b, int* c)
-{
-	return (getsockname(a, b, c) < 0) ? errno : 0;
-}
-
-static int
-beos_native_getpeername(int a, struct sockaddr* b, int* c)
-{
-        return (getpeername(a, b, c) < 0) ? errno : 0;
-}
-
-static int
-beos_native_sockclose(int f)
-{
-	return (closesocket(f) < 0) ? errno : 0;
-}
-
-static int
-beos_native_gethostbyname(const char*n, struct hostent**out)
-{
-	int rc = 0;
-
-	/* XXX gethostbyname is not thread-safe! */
-	*out = gethostbyname(n);
-	if (*out == 0) {
-		rc = h_errno;
-		if (rc == 0) {
-			*out = (void*)-1;
-			rc = errno;
-		}
-	}
-	return (rc);
-}
-
-static int
-beos_native_gethostbyaddr(const char*n, int a, int b, struct hostent**out)
-{
-	int rc = 0;
-
-	/* XXX gethostbyaddr is not thread-safe! */
-	*out = gethostbyaddr(n, a, b);
-	if (*out == 0) {
-		rc = h_errno;
-		if (rc == 0) {
-			*out = (void*)-1;
-			rc = errno;
-		}
-	}
-	return (rc);
-}
-
-static int
-beos_native_select(int a, fd_set* b, fd_set* c, fd_set* d, struct timeval* e,
-	int* out)
-{
-	*out = select(a, b, c, d, e);
-	return (*out < 0) ? errno : 0;
-}
-
-/* helper function for forkexec, close fd[0..n-1] */
-static void
-close_fds(int fd[], int n)
-{
-	int i = 0;
-	while (i < n) {
-		close(fd[i++]);
-	}
-}
-
-static int
-beos_native_forkexec(char *argv[], char *env[],
-	int ioes[4], int *outpid, const char *dir)
-{
-/* Adapted from unix-jthreads/jthread.c */
-/* these defines are indices in ioes */
-#define IN_IN		0
-#define IN_OUT		1
-#define OUT_IN		2
-#define OUT_OUT		3
-#define ERR_IN		4
-#define ERR_OUT		5
-#define SYNC_IN		6
-#define SYNC_OUT	7
-
-	int fds[8];
-	int nfd;		/* number of fds in `fds' that are valid */
-	sigset_t nsig;
-	char b[1];
-	int pid, i, err;
-
-	/* 
-	 * we need execve() and fork() for this to work.  Don't bother if
-	 * we don't have them.
-	 */
-#if !defined(HAVE_EXECVE) && !defined(HAVE_EXECVP)
-	unimp("neither execve() nor execvp() not provided");
-#endif
-#if !defined(HAVE_FORK)
-	unimp("fork() not provided");
-#endif
-
-DBG(JTHREAD,	
-	{
-		char **d = argv;
-		dprintf("argv = [`%s ", *d++); 
-		while (*d)
-			dprintf(", `%s'", *d++);
-		dprintf("]\n");
-	}
-    )
-	/* Create the pipes to communicate with the child */
-	/* Make sure fds get closed if we can't create all pipes */
-	for (nfd = 0; nfd < 8; nfd += 2) {
-		int e;
-		err = pipe(fds + nfd);
-		e = errno;
-		if (err == -1) {
-			close_fds(fds, nfd);
-			return (e);
-		}
-	}
-
-	/* 
-	 * We must avoid that the child dies because of SIGVTALRM or
-	 * other signals.  We disable interrupts before forking and then
-	 * reenable signals in the child after we cleaned up.
-	 */
-	sigfillset(&nsig);
-	sigprocmask(SIG_BLOCK, &nsig, 0);
-
-	pid = fork();
-
-	switch (pid) {
-	case 0:
-		/* Child */
-		/* set all signals back to their default state */
-		for (i = 0; i < NSIG; i++) {
-			signal(i, SIG_DFL);
-		}
-
-		/* now reenable interrupts */
-		sigprocmask(SIG_UNBLOCK, &nsig, 0);
-
-		/* set stdin, stdout, and stderr up from the pipes */
-		dup2(fds[IN_IN], 0);
-		dup2(fds[OUT_OUT], 1);
-		dup2(fds[ERR_OUT], 2);
-
-		/* What is sync about anyhow?  Well my current guess is that
-		 * the parent writes a single byte to it when it's ready to
-		 * proceed.  So here I wait until I get it before doing
-		 * anything.
-		 */
-		/* note that this is a blocking read */
-		read(fds[SYNC_IN], b, sizeof(b));
-
-		/* now close all pipe fds */
-		close_fds(fds, 8);
-
-		/* change working directory */
-#if defined(HAVE_CHDIR)
-		(void)chdir(dir);
-#endif
-
-		/*
-		 * If no environment was given and we have execvp, we use it.
-		 * If an environment was given, we use execve.
-		 * This is roughly was the linux jdk seems to do.
-		 */
-
-		/* execute program */
-#if defined(HAVE_EXECVP)
-		if (env == NULL)
-			execvp(argv[0], argv);
-		else
-#endif
-			execve(argv[0], argv, env);
-		break;
-
-	case -1:
-		/* Error */
-		err = errno;
-		/* Close all pipe fds */
-		close_fds(fds, 8);
-		sigprocmask(SIG_UNBLOCK, &nsig, 0);
-		return (err);
-
-	default:
-		/* Parent */
-		/* close the fds we won't need */
-		close(fds[IN_IN]);
-		close(fds[OUT_OUT]);
-		close(fds[ERR_OUT]);
-		close(fds[SYNC_IN]);
-
-		/* copy and fix up the fds we do need */
-		ioes[0] = fds[IN_OUT];
-		ioes[1] = fds[OUT_IN];
-		ioes[2] = fds[ERR_IN];
-		ioes[3] = fds[SYNC_OUT];
-
-		sigprocmask(SIG_UNBLOCK, &nsig, 0);
-		*outpid = pid;
-		return (0);
-	}
-
-	exit(-1);
-	/* NEVER REACHED */	
-}
-
-static int
-beos_native_waitpid(int a, int* b, int c, int* out)
-{
-	*out = waitpid(a, b, 0);
-	return (*out < 0) ? errno : 0;
-}
-
-static int
-beos_native_kill(int a, int b)
-{
-	return (send_signal(a, b) < 0) ? errno : 0;
-}
-
-static int
-beos_native_mmap(void **memory, size_t *size, int mode, int fd, off_t *offset)
-{
-	return B_UNSUPPORTED;
-}
-
-static int
-beos_native_munmap(void *memory, size_t size)
-{
-	return B_UNSUPPORTED;
-}
-
 SystemCallInterface Kaffe_SystemCallInterface = {
 	beos_native_open,
 	beos_native_read,
-	beos_native_write, 
 	beos_native_lseek,
 	beos_native_close,
 	beos_native_fstat,
 	beos_native_stat,
-	beos_native_ftruncate,
-	beos_native_mkdir,
-	beos_native_rmdir,
-	beos_native_rename,
-	beos_native_remove,
-	beos_native_socket,
-	beos_native_connect,
-	beos_native_bind,
-	beos_native_listen,
-	beos_native_accept, 
-	beos_native_sock_read,	
-	beos_native_recvfrom,
-	beos_native_sock_write, 
-	beos_native_sendto,	
-	beos_native_setsockopt,
-	beos_native_getsockopt,
-	beos_native_getsockname, 
-	beos_native_getpeername,
-	beos_native_sockclose,
-	beos_native_gethostbyname,
-	beos_native_gethostbyaddr,
-	beos_native_select,	
-	beos_native_forkexec,
-	beos_native_waitpid,
-	beos_native_kill,
-	beos_native_mmap,
-	beos_native_munmap
 };
Index: kaffe/kaffe/kaffevm/systems/drops-l4threads/syscalls.c
diff -u kaffe/kaffe/kaffevm/systems/drops-l4threads/syscalls.c:1.5 kaffe/kaffe/kaffevm/systems/drops-l4threads/syscalls.c:1.6
--- kaffe/kaffe/kaffevm/systems/drops-l4threads/syscalls.c:1.5	Tue Nov  7 00:59:10 2006
+++ kaffe/kaffe/kaffevm/systems/drops-l4threads/syscalls.c	Wed Jan  2 20:34:02 2008
@@ -48,27 +48,6 @@
   return nReturn;
 }
 
-static int drops_write(int fd, const void* buffer,
-                       size_t len, ssize_t *out) {
-  int nReturn = 0;
-
-  if (fd==1 || fd==2)
-  { //STDOUT, STDERR
-    nReturn = write(fd,buffer,len);
-    if (nReturn == -1)
-      nReturn = errno;
-    else
-    {
-      nReturn = 0;
-      *out    = len;
-    }
-  }
-  else
-    printf("unknown fd=%d len=%d\n",fd,len);
-
-  return nReturn;
-}
-
 static int drops_lseek(int fd, off_t o, int type,
                        off_t *out) {
   int nReturn = 0;
@@ -108,320 +87,11 @@
   return nReturn;
 }
 
-static int drops_ftruncate(int fd UNUSED,
-                           off_t new_size UNUSED) {
- unimp("ftruncate() not implemented");
- return -1;
-}
-
-static int drops_fsync(int a UNUSED) {
- unimp("fsync() not implemented");
- return -1;
-}
-
-static int drops_mkdir(const char *p UNUSED,
-                       int m UNUSED) {
- unimp("mkdir() not implemented");
- return -1;
-}
-
-static int drops_rmdir(const char *p UNUSED) {
- unimp("rmdir() not implemented");
- return -1;
-}
-
-static int drops_rename(const char *p UNUSED,
-                        const char *q UNUSED) {
- unimp("rename() not implemented");
- return -1;
-}
-
-static int drops_remove(const char *p UNUSED) {
- unimp("remove() not implemented");
- return -1;
-}
-
-static int drops_socket(int fd, int type,
-                        int proto, int *outfd) {
-  int r = socket(fd, type, proto);
-
-  if (r < 0)
-    r = errno;
-  else {
-    *outfd = r;
-    r = 0;
-  }
-
-  return (r);
-}
-
-static int drops_connect(int fd, struct sockaddr* serv_addr,
-                         socklen_t addrlen, int timeout UNUSED) {
-  int nReturn = connect(fd, serv_addr, (socklen_t)addrlen);
-
-  if (nReturn < 0)
-    nReturn = errno;
-
-  return nReturn;
-}
-
-static int drops_bind(int fd, struct sockaddr* addr,
-                      socklen_t addrlen) {
-  int nReturn = bind(fd, addr, (socklen_t)addrlen);
-
-  if (nReturn < 0)
-    nReturn = errno;
-
-  return nReturn;
-}
-
-static int drops_listen(int fd, int backlog) {
-  int nReturn = listen(fd, backlog);
-
-  if (nReturn < 0)
-    nReturn = errno;
-
-  return nReturn;
-}
-
-static int drops_accept(int socketfd, struct sockaddr* addr,
-                        socklen_t *addrlen, int timeout UNUSED, int* outfd) {
-  int nReturn = accept(socketfd, addr, addrlen);
-
-  if (nReturn < 0)
-    nReturn = errno;
-  else {
-    *outfd  = nReturn;
-    nReturn = 0;
-  }
-
-  return nReturn;
-}
-
-static int drops_sockread(int socketfd, void* buf, size_t len,
-                          int timeout UNUSED, ssize_t *out) {
-  int nReturn = recv(socketfd, buf, len, 0);
- 
-  if (nReturn < 0)
-    nReturn = errno;
-  else {
-    *out = nReturn;
-    nReturn = 0;
-  }
-
-  return nReturn;
-}
-
-static int drops_recvfrom(int a UNUSED, void* b UNUSED,
-                          size_t c UNUSED, int d UNUSED,
-                          struct sockaddr* e UNUSED,
-                          socklen_t* f UNUSED, int timeout UNUSED,
-                          ssize_t *out UNUSED) {
-  unimp("recvfrom() not implemented");
-  return -1;
-}
-
-static int drops_sockwrite(int socketfd, const void* msg,
-                           size_t len, ssize_t *out) { 
-  int nReturn = send(socketfd, msg, len, 0);
-
-  if (nReturn < 0)
-    nReturn = errno;
-  else {
-    *out = nReturn;
-    nReturn = 0;
-  }
-
-  return nReturn;
-}
-
-static int drops_sendto(int a UNUSED,
-                                     const void* b UNUSED,
-                                     size_t c UNUSED,
-                                     int d UNUSED,
-                                     const struct sockaddr* e UNUSED,
-                                     int f UNUSED, ssize_t *out UNUSED) {
-  unimp("sendto() not implemented");
-  return -1;
-}
-
-static int drops_setsockopt(int fd, int level,
-                            int optname,
-                            const void* optval,
-                            int optlen) {
-  int nReturn = setsockopt(fd, level, optname, optval, (socklen_t)optlen);
-
-  if (nReturn < 0)
-    nReturn = errno;
-
-  return nReturn;
-}
-
-static int drops_getsockopt(int a UNUSED,
-                                         int b UNUSED,
-                                         int c UNUSED,
-                                         void* d UNUSED,
-                                         socklen_t* e UNUSED) {
-  unimp("getsockopt() not implemented");
-  return -1;
-}
-
-static int drops_getsockname(int socketfd, struct sockaddr* name,
-                             socklen_t * namelen) {
-  int nReturn = getsockname(socketfd, name , namelen);
-
-  if (nReturn < 0)
-    nReturn = errno;
-
-  return nReturn;
-}
-
-static int drops_getpeername(int a UNUSED, struct sockaddr* b UNUSED,
-                             socklen_t* c UNUSED) {
-  printf("getpeername todo\n");
-  return 0;
-}
-
-static int drops_sockclose(int fd) {
-  int nReturn = close(fd);
-
-  if (nReturn < 0)

*** Patch too long, truncated ***
lmpx.com only provides a reader for public news (NNTP) servers. It is not affiliated with the servers or forums shown here and is not responsible for the content of articles, which is written by their respective authors.