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 *** _______________________________________________ kaffe mailing list kaffe@kaffe.org http://kaffe.org/cgi-bin/mailman/listinfo/kaffe