summaryrefslogtreecommitdiff
path: root/native
diff options
context:
space:
mode:
authorGuilhem Lavaux <guilhem@kaffe.org>2006-01-28 15:48:57 +0000
committerGuilhem Lavaux <guilhem@kaffe.org>2006-01-28 15:48:57 +0000
commit0865f0240989b34acb940a364059b69f9d9df05f (patch)
tree217fa5e0ae3e7fe6ae94634ce4c05f47cdf9e233 /native
parent539fc11357736929b75131bfbeee7f34e7f6ed8e (diff)
downloadclasspath-0865f0240989b34acb940a364059b69f9d9df05f.tar.gz
2006-01-28 Guilhem Lavaux <guilhem@kaffe.org>
* native/target: Removed. * configure.ac: Removed target from CLASSPATH_INCLUDES and Makefile generation. * native/jni/native-lib/Makefile.am, native/jni/native-lib/cpnet.h, native/jni/native-lib/cpnet.c native/jni/native-lib/cpio.h, native/jni/native-lib/cpio.c, native/jni/native-lib/cpmath.h: Imported new native compatibility layer.
Diffstat (limited to 'native')
-rw-r--r--native/jni/Makefile.am2
-rw-r--r--native/jni/native-lib/.cvsignore (renamed from native/target/.cvsignore)0
-rw-r--r--native/jni/native-lib/Makefile.am12
-rw-r--r--native/jni/native-lib/cpio.h2
-rw-r--r--native/jni/native-lib/cpmath.h2
-rw-r--r--native/jni/native-lib/cpnet.c0
-rw-r--r--native/jni/native-lib/cpnet.h82
-rw-r--r--native/target/Linux/.cvsignore8
-rw-r--r--native/target/Linux/Makefile.am10
-rw-r--r--native/target/Linux/target_native.h79
-rw-r--r--native/target/Linux/target_native_file.h79
-rw-r--r--native/target/Linux/target_native_io.h78
-rw-r--r--native/target/Linux/target_native_math_float.h80
-rw-r--r--native/target/Linux/target_native_math_int.h80
-rw-r--r--native/target/Linux/target_native_misc.h79
-rw-r--r--native/target/Linux/target_native_network.h79
-rw-r--r--native/target/Makefile.am5
-rw-r--r--native/target/generic/.cvsignore8
-rw-r--r--native/target/generic/Makefile.am10
-rw-r--r--native/target/generic/target_generic.h171
-rw-r--r--native/target/generic/target_generic_file.h844
-rw-r--r--native/target/generic/target_generic_io.h82
-rw-r--r--native/target/generic/target_generic_math_float.h130
-rw-r--r--native/target/generic/target_generic_math_int.h260
-rw-r--r--native/target/generic/target_generic_misc.h203
-rw-r--r--native/target/generic/target_generic_network.h1288
-rw-r--r--native/target/readme.txt149
27 files changed, 86 insertions, 3736 deletions
diff --git a/native/jni/Makefile.am b/native/jni/Makefile.am
index 64cd35a51..f67d0e7c9 100644
--- a/native/jni/Makefile.am
+++ b/native/jni/Makefile.am
@@ -1,7 +1,7 @@
## Input file for automake to generate the Makefile.in used by configure
if CREATE_CORE_JNI_LIBRARIES
- JNIDIRS = java-io java-lang java-net java-nio java-util
+ JNIDIRS = native-lib java-io java-lang java-net java-nio java-util
endif
if CREATE_ALSA_LIBRARIES
diff --git a/native/target/.cvsignore b/native/jni/native-lib/.cvsignore
index e9f2658a6..e9f2658a6 100644
--- a/native/target/.cvsignore
+++ b/native/jni/native-lib/.cvsignore
diff --git a/native/jni/native-lib/Makefile.am b/native/jni/native-lib/Makefile.am
new file mode 100644
index 000000000..c34c83750
--- /dev/null
+++ b/native/jni/native-lib/Makefile.am
@@ -0,0 +1,12 @@
+noinst_LTLIBRARIES = libclasspathnative.la
+libclasspathnative_la_SOURCES = cpnet.c \
+ cpnet.h \
+ cpio.c \
+ cpio.h \
+ cpnative.c \
+ cpnative.h \
+ cpmath.h
+
+AM_LDFLAGS = @CLASSPATH_MODULE@
+AM_CPPFLAGS = @CLASSPATH_INCLUDES@
+AM_CFLAGS = @WARNING_CFLAGS@ @STRICT_WARNING_CFLAGS@ @ERROR_CFLAGS@
diff --git a/native/jni/native-lib/cpio.h b/native/jni/native-lib/cpio.h
index 50d4853c3..1776b199d 100644
--- a/native/jni/native-lib/cpio.h
+++ b/native/jni/native-lib/cpio.h
@@ -79,6 +79,6 @@ JNIEXPORT int cpio_rename (const char *old_name, const char *new_name);
JNIEXPORT int cpio_openDir (const char *dirname, void **handle);
JNIEXPORT int cpio_closeDir (void *handle);
-JNIEXPORT int cpio_readDir (void *handle, char * const *filename);
+JNIEXPORT int cpio_readDir (void *handle, const char **filename);
#endif
diff --git a/native/jni/native-lib/cpmath.h b/native/jni/native-lib/cpmath.h
index cae089f6d..d40e15e44 100644
--- a/native/jni/native-lib/cpmath.h
+++ b/native/jni/native-lib/cpmath.h
@@ -45,4 +45,6 @@ exception statement from your version. */
#define cpmath_jlong_lt(l1, l2) ((l1) < (l2))
#define cpmath_jlong_sub_jint(l1, i2) ((l1) - (i2))
+#define CP_JLONG0 cpmath_jint_to_jlong(0)
+
#endif
diff --git a/native/jni/native-lib/cpnet.c b/native/jni/native-lib/cpnet.c
new file mode 100644
index 000000000..e69de29bb
--- /dev/null
+++ b/native/jni/native-lib/cpnet.c
diff --git a/native/jni/native-lib/cpnet.h b/native/jni/native-lib/cpnet.h
index 051c44b93..2884229cf 100644
--- a/native/jni/native-lib/cpnet.h
+++ b/native/jni/native-lib/cpnet.h
@@ -41,31 +41,91 @@ exception statement from your version. */
#include <jni.h>
#include <jcl.h>
+#include <sys/socket.h>
+#include <netinet/in.h>
+#include <netinet/ip.h>
+
typedef struct {
jint len;
char data[1];
} cpnet_address;
-JNIEXPORT jint cpnet_openSocketStream(jint *fd);
-JNIEXPORT jint cpnet_openSocketDatagram(jint *fd);
-JNIEXPORT jint cpnet_close(jint fd);
-JNIEXPORT jint cpnet_connect(jint fd, cpnet_address *addr);
-JNIEXPORT jint cpnet_getLocalAddr(jint fd, cpnet_address **addr);
-
-static inline cpnet_address *cpnet_newIPV4Address(JNI_Env * env)
+#define CPNET_SHUTDOWN_READ 1
+#define CPNET_SHUTDOWN_WRITE 2
+
+JNIEXPORT jint cpnet_openSocketStream(JNIEnv *env, jint *fd);
+JNIEXPORT jint cpnet_openSocketDatagram(JNIEnv *env, jint *fd);
+JNIEXPORT jint cpnet_shutdown (JNIEnv *env, jint fd, jbyte flag);
+JNIEXPORT jint cpnet_close(JNIEnv *env, jint fd);
+JNIEXPORT jint cpnet_listen(JNIEnv *env, jint fd, jint queuelen);
+JNIEXPORT jint cpnet_accept(JNIEnv *env, jint fd, jint *newfd);
+JNIEXPORT jint cpnet_bind(JNIEnv *env, jint fd, cpnet_address *addr);
+JNIEXPORT jint cpnet_connect(JNIEnv *env, jint fd, cpnet_address *addr);
+JNIEXPORT jint cpnet_getLocalAddr(JNIEnv *env, jint fd, cpnet_address **addr);
+JNIEXPORT jint cpnet_getRemoteAddr(JNIEnv *env, jint fd, cpnet_address **addr);
+JNIEXPORT jint cpnet_setBroadcast(JNIEnv *env, jint fd, jint flag);
+JNIEXPORT jint cpnet_send (JNIEnv *env, jint fd, jbyte *data, jint len, jint *bytes_sent);
+JNIEXPORT jint cpnet_sendTo (JNIEnv *env, jint fd, jbyte *data, jint len, cpnet_address *addr, jint *bytes_sent);
+JNIEXPORT jint cpnet_recv (JNIEnv *env, jint fd, jbyte *data, jint len, jint *bytes_recv);
+JNIEXPORT jint cpnet_recvFrom (JNIEnv *env, jint fd, jbyte *data, jint len, cpnet_address **addr, jint *bytes_recv);
+JNIEXPORT jint cpnet_setSocketTCPNoDelay (JNIEnv *env, jint fd, jint nodelay);
+JNIEXPORT jint cpnet_getSocketTCPNoDelay (JNIEnv *env, jint fd, jint *nodelay);
+JNIEXPORT jint cpnet_setLinger (JNIEnv *env, jint fd, jint flag, jint value);
+JNIEXPORT jint cpnet_getLinger (JNIEnv *env, jint fd, jint *flag, jint *value);
+JNIEXPORT jint cpnet_setSocketTimeout (JNIEnv *env, jint fd, jint value);
+JNIEXPORT jint cpnet_getSocketTimeout (JNIEnv *env, jint fd, jint *value);
+JNIEXPORT jint cpnet_setSendBuf (JNIEnv *env, jint fd, jint value);
+JNIEXPORT jint cpnet_getSendBuf (JNIEnv *env, jint fd, jint *value);
+JNIEXPORT jint cpnet_setRecvBuf (JNIEnv *env, jint fd, jint value);
+JNIEXPORT jint cpnet_getRecvBuf (JNIEnv *env, jint fd, jint *value);
+JNIEXPORT jint cpnet_setTTL (JNIEnv *env, jint fd, jint value);
+JNIEXPORT jint cpnet_getTTL (JNIEnv *env, jint fd, jint *value);
+JNIEXPORT jint cpnet_setMulticastIF (JNIEnv *env, jint fd, cpnet_address *addr);
+JNIEXPORT jint cpnet_getMulticastIF (JNIEnv *env, jint fd, cpnet_address **addr);
+JNIEXPORT jint cpnet_setReuseAddress (JNIEnv *env, jint fd, jint reuse);
+JNIEXPORT jint cpnet_getReuseAddress (JNIEnv *env, jint fd, jint *reuse);
+JNIEXPORT jint cpnet_setKeepAlive (JNIEnv *env, jint fd, jint keep);
+JNIEXPORT jint cpnet_getKeepAlive (JNIEnv *env, jint fd, jint *keep);
+JNIEXPORT jint cpnet_getBindAddress (JNIEnv *env, jint fd, cpnet_address **addr);
+
+static inline cpnet_address *cpnet_newIPV4Address(JNIEnv * env)
{
cpnet_address *addr = (cpnet_address *)JCL_malloc(env, sizeof(cpnet_address) + sizeof(struct sockaddr_in));
addr->len = sizeof(struct sockaddr_in);
+
+ return addr;
}
-static inline void cpnet_freeAddress(JNI_Env * env, cpnet_address *addr)
+static inline void cpnet_freeAddress(JNIEnv * env, cpnet_address *addr)
{
JCL_free(env, addr);
}
+static inline void cpnet_addressSetPort(cpnet_address *addr, jint port)
+{
+ struct sockaddr_in *ipaddr = (struct sockaddr_in *)&(addr->data[0]);
+
+ ipaddr->sin_port = htons(port);
+}
+
+static inline jint cpnet_addressGetPort(cpnet_address *addr)
+{
+ struct sockaddr_in *ipaddr = (struct sockaddr_in *)&(addr->data[0]);
+
+ return ntohs(ipaddr->sin_port);
+}
+
+static inline jboolean cpnet_isAddressEqual(cpnet_address *addr1, cpnet_address *addr2)
+{
+ if (addr1->len != addr2->len)
+ return JNI_FALSE;
+
+ return memcmp(addr1->data, addr2->data, addr1->len) == 0;
+}
+
static inline void cpnet_IPV4AddressToBytes(cpnet_address *netaddr, unsigned char *octets)
{
- struct sockaddr_in *ipaddr = (struct sockaddr_in *)netaddr;
+ struct sockaddr_in *ipaddr = (struct sockaddr_in *)&(netaddr->data[0]);
jint sysaddr = ipaddr->sin_addr.s_addr;
octets[0] = (sysaddr >> 24) & 0xff;
@@ -77,7 +137,7 @@ static inline void cpnet_IPV4AddressToBytes(cpnet_address *netaddr, unsigned cha
static inline void cpnet_bytesToIPV4Address(cpnet_address *netaddr, unsigned char *octets)
{
jint sysaddr;
- struct sockaddr_in *ipaddr = (struct sockaddr_in *)netaddr;
+ struct sockaddr_in *ipaddr = (struct sockaddr_in *)&(netaddr->data[0]);
sysaddr = ((jint)octets[0]) << 24;
sysaddr |= ((jint)octets[1]) << 16;
@@ -85,8 +145,6 @@ static inline void cpnet_bytesToIPV4Address(cpnet_address *netaddr, unsigned cha
sysaddr |= ((jint)octets[3]);
ipaddr->sin_addr.s_addr = sysaddr;
-
- return netaddr;
}
#endif
diff --git a/native/target/Linux/.cvsignore b/native/target/Linux/.cvsignore
deleted file mode 100644
index e9f2658a6..000000000
--- a/native/target/Linux/.cvsignore
+++ /dev/null
@@ -1,8 +0,0 @@
-*.o
-*.a
-*.lo
-*.la
-.libs
-.deps
-Makefile
-Makefile.in
diff --git a/native/target/Linux/Makefile.am b/native/target/Linux/Makefile.am
deleted file mode 100644
index bd267dc7f..000000000
--- a/native/target/Linux/Makefile.am
+++ /dev/null
@@ -1,10 +0,0 @@
-## Input file for automake to generate the Makefile.in used by configure
-
-EXTRA_DIST = \
-target_native_io.h \
-target_native_misc.h \
-target_native.h \
-target_native_math_float.h \
-target_native_network.h \
-target_native_file.h \
-target_native_math_int.h
diff --git a/native/target/Linux/target_native.h b/native/target/Linux/target_native.h
deleted file mode 100644
index 4e1d5136d..000000000
--- a/native/target/Linux/target_native.h
+++ /dev/null
@@ -1,79 +0,0 @@
-/* ???.h - ???
- Copyright (C) 1998 Free Software Foundation, Inc.
-
-This file is part of GNU Classpath.
-
-GNU Classpath is free software; you can redistribute it and/or modify
-it under the terms of the GNU General Public License as published by
-the Free Software Foundation; either version 2, or (at your option)
-any later version.
-
-GNU Classpath is distributed in the hope that it will be useful, but
-WITHOUT ANY WARRANTY; without even the implied warranty of
-MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
-General Public License for more details.
-
-You should have received a copy of the GNU General Public License
-along with GNU Classpath; see the file COPYING. If not, write to the
-Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA
-02110-1301 USA.
-
-Linking this library statically or dynamically with other modules is
-making a combined work based on this library. Thus, the terms and
-conditions of the GNU General Public License cover the whole
-combination.
-
-As a special exception, the copyright holders of this library give you
-permission to link this library with independent modules to produce an
-executable, regardless of the license terms of these independent
-modules, and to copy and distribute the resulting executable under
-terms of your choice, provided that you also meet, for each linked
-independent module, the terms and conditions of the license of that
-module. An independent module is a module which is not derived from
-or based on this library. If you modify this library, you may extend
-this exception to your version of the library, but you are not
-obligated to do so. If you do not wish to do so, delete this
-exception statement from your version. */
-
-/*
-Description: Linux target global defintions
-Systems : all
-*/
-
-#ifndef __TARGET_NATIVE__
-#define __TARGET_NATIVE__
-
-/****************************** Includes *******************************/
-/* do not move; needed here because of some macro definitions */
-#include <config.h>
-
-#include <stdlib.h>
-
-/****************** Conditional compilation switches *******************/
-
-/***************************** Constants *******************************/
-
-/***************************** Datatypes *******************************/
-
-/***************************** Variables *******************************/
-
-/****************************** Macros *********************************/
-
-/***************************** Functions *******************************/
-
-#ifdef __cplusplus
-extern "C" {
-#endif
-
-#ifdef __cplusplus
-}
-#endif
-
-/* include rest of definitions from generic file (do not move it to
- another position!) */
-#include "target_generic.h"
-
-#endif /* __TARGET_NATIVE__ */
-
-/* end of file */
-
diff --git a/native/target/Linux/target_native_file.h b/native/target/Linux/target_native_file.h
deleted file mode 100644
index 0c40b4471..000000000
--- a/native/target/Linux/target_native_file.h
+++ /dev/null
@@ -1,79 +0,0 @@
-/* ???.h - ???
- Copyright (C) 1998 Free Software Foundation, Inc.
-
-This file is part of GNU Classpath.
-
-GNU Classpath is free software; you can redistribute it and/or modify
-it under the terms of the GNU General Public License as published by
-the Free Software Foundation; either version 2, or (at your option)
-any later version.
-
-GNU Classpath is distributed in the hope that it will be useful, but
-WITHOUT ANY WARRANTY; without even the implied warranty of
-MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
-General Public License for more details.
-
-You should have received a copy of the GNU General Public License
-along with GNU Classpath; see the file COPYING. If not, write to the
-Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA
-02110-1301 USA.
-
-Linking this library statically or dynamically with other modules is
-making a combined work based on this library. Thus, the terms and
-conditions of the GNU General Public License cover the whole
-combination.
-
-As a special exception, the copyright holders of this library give you
-permission to link this library with independent modules to produce an
-executable, regardless of the license terms of these independent
-modules, and to copy and distribute the resulting executable under
-terms of your choice, provided that you also meet, for each linked
-independent module, the terms and conditions of the license of that
-module. An independent module is a module which is not derived from
-or based on this library. If you modify this library, you may extend
-this exception to your version of the library, but you are not
-obligated to do so. If you do not wish to do so, delete this
-exception statement from your version. */
-
-/*
-Description: Linux target defintions of file functions
-Systems : all
-*/
-
-#ifndef __TARGET_NATIVE_FILE__
-#define __TARGET_NATIVE_FILE__
-
-/****************************** Includes *******************************/
-/* do not move; needed here because of some macro definitions */
-#include <config.h>
-
-#include <stdlib.h>
-
-/****************** Conditional compilation switches *******************/
-
-/***************************** Constants *******************************/
-
-/***************************** Datatypes *******************************/
-
-/***************************** Variables *******************************/
-
-/****************************** Macros *********************************/
-
-/***************************** Functions *******************************/
-
-#ifdef __cplusplus
-extern "C" {
-#endif
-
-#ifdef __cplusplus
-}
-#endif
-
-/* include rest of definitions from generic file (do not move it to
- another position!) */
-#include "target_generic_file.h"
-
-#endif /* __TARGET_NATIVE_FILE__ */
-
-/* end of file */
-
diff --git a/native/target/Linux/target_native_io.h b/native/target/Linux/target_native_io.h
deleted file mode 100644
index 03f43adf5..000000000
--- a/native/target/Linux/target_native_io.h
+++ /dev/null
@@ -1,78 +0,0 @@
-/* ???.h - ???
- Copyright (C) 1998 Free Software Foundation, Inc.
-
-This file is part of GNU Classpath.
-
-GNU Classpath is free software; you can redistribute it and/or modify
-it under the terms of the GNU General Public License as published by
-the Free Software Foundation; either version 2, or (at your option)
-any later version.
-
-GNU Classpath is distributed in the hope that it will be useful, but
-WITHOUT ANY WARRANTY; without even the implied warranty of
-MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
-General Public License for more details.
-
-You should have received a copy of the GNU General Public License
-along with GNU Classpath; see the file COPYING. If not, write to the
-Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA
-02110-1301 USA.
-
-Linking this library statically or dynamically with other modules is
-making a combined work based on this library. Thus, the terms and
-conditions of the GNU General Public License cover the whole
-combination.
-
-As a special exception, the copyright holders of this library give you
-permission to link this library with independent modules to produce an
-executable, regardless of the license terms of these independent
-modules, and to copy and distribute the resulting executable under
-terms of your choice, provided that you also meet, for each linked
-independent module, the terms and conditions of the license of that
-module. An independent module is a module which is not derived from
-or based on this library. If you modify this library, you may extend
-this exception to your version of the library, but you are not
-obligated to do so. If you do not wish to do so, delete this
-exception statement from your version. */
-
-/*
-Description: Linux target defintions of miscellaneous functions
-Systems : all
-*/
-
-#ifndef __TARGET_NATIVE_IO__
-#define __TARGET_NATIVE_IO__
-
-/****************************** Includes *******************************/
-/* do not move; needed here because of some macro definitions */
-#include <config.h>
-
-#include <stdlib.h>
-
-/****************** Conditional compilation switches *******************/
-
-/***************************** Constants *******************************/
-
-/***************************** Datatypes *******************************/
-
-/***************************** Variables *******************************/
-
-/****************************** Macros *********************************/
-
-/***************************** Functions *******************************/
-
-#ifdef __cplusplus
-extern "C" {
-#endif
-
-#ifdef __cplusplus
-}
-#endif
-
-/* include rest of definitions from generic file (do not move it to
- another position!) */
-#include "target_generic_io.h"
-
-#endif /* __TARGET_NATIVE_MISC__ */
-
-/* end of file */
diff --git a/native/target/Linux/target_native_math_float.h b/native/target/Linux/target_native_math_float.h
deleted file mode 100644
index 0f3455d2a..000000000
--- a/native/target/Linux/target_native_math_float.h
+++ /dev/null
@@ -1,80 +0,0 @@
-/* ???.h - ???
- Copyright (C) 1998 Free Software Foundation, Inc.
-
-This file is part of GNU Classpath.
-
-GNU Classpath is free software; you can redistribute it and/or modify
-it under the terms of the GNU General Public License as published by
-the Free Software Foundation; either version 2, or (at your option)
-any later version.
-
-GNU Classpath is distributed in the hope that it will be useful, but
-WITHOUT ANY WARRANTY; without even the implied warranty of
-MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
-General Public License for more details.
-
-You should have received a copy of the GNU General Public License
-along with GNU Classpath; see the file COPYING. If not, write to the
-Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA
-02110-1301 USA.
-
-Linking this library statically or dynamically with other modules is
-making a combined work based on this library. Thus, the terms and
-conditions of the GNU General Public License cover the whole
-combination.
-
-As a special exception, the copyright holders of this library give you
-permission to link this library with independent modules to produce an
-executable, regardless of the license terms of these independent
-modules, and to copy and distribute the resulting executable under
-terms of your choice, provided that you also meet, for each linked
-independent module, the terms and conditions of the license of that
-module. An independent module is a module which is not derived from
-or based on this library. If you modify this library, you may extend
-this exception to your version of the library, but you are not
-obligated to do so. If you do not wish to do so, delete this
-exception statement from your version. */
-
-/*
-Description: Linux target defintions of float/double constants/
- macros/functions
-Systems : all
-*/
-
-#ifndef __TARGET_NATIVE_MATH_FLOAT__
-#define __TARGET_NATIVE_MATH_FLOAT__
-
-/****************************** Includes *******************************/
-/* do not move; needed here because of some macro definitions */
-#include <config.h>
-
-#include <stdlib.h>
-
-/****************** Conditional compilation switches *******************/
-
-/***************************** Constants *******************************/
-
-/***************************** Datatypes *******************************/
-
-/***************************** Variables *******************************/
-
-/****************************** Macros *********************************/
-
-/***************************** Functions *******************************/
-
-#ifdef __cplusplus
-extern "C" {
-#endif
-
-#ifdef __cplusplus
-}
-#endif
-
-/* include rest of definitions from generic file (do not move it to
- another position!) */
-#include "target_generic_math_float.h"
-
-#endif /* __TARGET_NATIVE_MATH_FLOAT__ */
-
-/* end of file */
-
diff --git a/native/target/Linux/target_native_math_int.h b/native/target/Linux/target_native_math_int.h
deleted file mode 100644
index 4c5fc671d..000000000
--- a/native/target/Linux/target_native_math_int.h
+++ /dev/null
@@ -1,80 +0,0 @@
-/* ???.h - ???
- Copyright (C) 1998 Free Software Foundation, Inc.
-
-This file is part of GNU Classpath.
-
-GNU Classpath is free software; you can redistribute it and/or modify
-it under the terms of the GNU General Public License as published by
-the Free Software Foundation; either version 2, or (at your option)
-any later version.
-
-GNU Classpath is distributed in the hope that it will be useful, but
-WITHOUT ANY WARRANTY; without even the implied warranty of
-MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
-General Public License for more details.
-
-You should have received a copy of the GNU General Public License
-along with GNU Classpath; see the file COPYING. If not, write to the
-Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA
-02110-1301 USA.
-
-Linking this library statically or dynamically with other modules is
-making a combined work based on this library. Thus, the terms and
-conditions of the GNU General Public License cover the whole
-combination.
-
-As a special exception, the copyright holders of this library give you
-permission to link this library with independent modules to produce an
-executable, regardless of the license terms of these independent
-modules, and to copy and distribute the resulting executable under
-terms of your choice, provided that you also meet, for each linked
-independent module, the terms and conditions of the license of that
-module. An independent module is a module which is not derived from
-or based on this library. If you modify this library, you may extend
-this exception to your version of the library, but you are not
-obligated to do so. If you do not wish to do so, delete this
-exception statement from your version. */
-
-/*
-Description: Linux target defintions of int/int64 constants/
- macros/functions
-Systems : all
-*/
-
-#ifndef __TARGET_NATIVE_MATH_INT__
-#define __TARGET_NATIVE_MATH_INT__
-
-/****************************** Includes *******************************/
-/* do not move; needed here because of some macro definitions */
-#include <config.h>
-
-#include <stdlib.h>
-
-/****************** Conditional compilation switches *******************/
-
-/***************************** Constants *******************************/
-
-/***************************** Datatypes *******************************/
-
-/***************************** Variables *******************************/
-
-/****************************** Macros *********************************/
-
-/***************************** Functions *******************************/
-
-#ifdef __cplusplus
-extern "C" {
-#endif
-
-#ifdef __cplusplus
-}
-#endif
-
-/* include rest of definitions from generic file (do not move it to
- another position!) */
-#include "target_generic_math_int.h"
-
-#endif /* __TARGET_NATIVE_MATH_INT__ */
-
-/* end of file */
-
diff --git a/native/target/Linux/target_native_misc.h b/native/target/Linux/target_native_misc.h
deleted file mode 100644
index 00bc7ac8d..000000000
--- a/native/target/Linux/target_native_misc.h
+++ /dev/null
@@ -1,79 +0,0 @@
-/* ???.h - ???
- Copyright (C) 1998 Free Software Foundation, Inc.
-
-This file is part of GNU Classpath.
-
-GNU Classpath is free software; you can redistribute it and/or modify
-it under the terms of the GNU General Public License as published by
-the Free Software Foundation; either version 2, or (at your option)
-any later version.
-
-GNU Classpath is distributed in the hope that it will be useful, but
-WITHOUT ANY WARRANTY; without even the implied warranty of
-MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
-General Public License for more details.
-
-You should have received a copy of the GNU General Public License
-along with GNU Classpath; see the file COPYING. If not, write to the
-Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA
-02110-1301 USA.
-
-Linking this library statically or dynamically with other modules is
-making a combined work based on this library. Thus, the terms and
-conditions of the GNU General Public License cover the whole
-combination.
-
-As a special exception, the copyright holders of this library give you
-permission to link this library with independent modules to produce an
-executable, regardless of the license terms of these independent
-modules, and to copy and distribute the resulting executable under
-terms of your choice, provided that you also meet, for each linked
-independent module, the terms and conditions of the license of that
-module. An independent module is a module which is not derived from
-or based on this library. If you modify this library, you may extend
-this exception to your version of the library, but you are not
-obligated to do so. If you do not wish to do so, delete this
-exception statement from your version. */
-
-/*
-Description: Linux target defintions of miscellaneous functions
-Systems : all
-*/
-
-#ifndef __TARGET_NATIVE_MISC__
-#define __TARGET_NATIVE_MISC__
-
-/****************************** Includes *******************************/
-/* do not move; needed here because of some macro definitions */
-#include <config.h>
-
-#include <stdlib.h>
-
-/****************** Conditional compilation switches *******************/
-
-/***************************** Constants *******************************/
-
-/***************************** Datatypes *******************************/
-
-/***************************** Variables *******************************/
-
-/****************************** Macros *********************************/
-
-/***************************** Functions *******************************/
-
-#ifdef __cplusplus
-extern "C" {
-#endif
-
-#ifdef __cplusplus
-}
-#endif
-
-/* include rest of definitions from generic file (do not move it to
- another position!) */
-#include "target_generic_misc.h"
-
-#endif /* __TARGET_NATIVE_MISC__ */
-
-/* end of file */
-
diff --git a/native/target/Linux/target_native_network.h b/native/target/Linux/target_native_network.h
deleted file mode 100644
index 23f9d0a62..000000000
--- a/native/target/Linux/target_native_network.h
+++ /dev/null
@@ -1,79 +0,0 @@
-/* ???.h - ???
- Copyright (C) 1998 Free Software Foundation, Inc.
-
-This file is part of GNU Classpath.
-
-GNU Classpath is free software; you can redistribute it and/or modify
-it under the terms of the GNU General Public License as published by
-the Free Software Foundation; either version 2, or (at your option)
-any later version.
-
-GNU Classpath is distributed in the hope that it will be useful, but
-WITHOUT ANY WARRANTY; without even the implied warranty of
-MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
-General Public License for more details.
-
-You should have received a copy of the GNU General Public License
-along with GNU Classpath; see the file COPYING. If not, write to the
-Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA
-02110-1301 USA.
-
-Linking this library statically or dynamically with other modules is
-making a combined work based on this library. Thus, the terms and
-conditions of the GNU General Public License cover the whole
-combination.
-
-As a special exception, the copyright holders of this library give you
-permission to link this library with independent modules to produce an
-executable, regardless of the license terms of these independent
-modules, and to copy and distribute the resulting executable under
-terms of your choice, provided that you also meet, for each linked
-independent module, the terms and conditions of the license of that
-module. An independent module is a module which is not derived from
-or based on this library. If you modify this library, you may extend
-this exception to your version of the library, but you are not
-obligated to do so. If you do not wish to do so, delete this
-exception statement from your version. */
-
-/*
-Description: Linux target defintions of network functions
-Systems : all
-*/
-
-#ifndef __TARGET_NATIVE_NETWORK__
-#define __TARGET_NATIVE_NETWORK__
-
-/****************************** Includes *******************************/
-/* do not move; needed here because of some macro definitions */
-#include <config.h>
-
-#include <stdlib.h>
-
-/****************** Conditional compilation switches *******************/
-
-/***************************** Constants *******************************/
-
-/***************************** Datatypes *******************************/
-
-/***************************** Variables *******************************/
-
-/****************************** Macros *********************************/
-
-/***************************** Functions *******************************/
-
-#ifdef __cplusplus
-extern "C" {
-#endif
-
-#ifdef __cplusplus
-}
-#endif
-
-/* include rest of definitions from generic file (do not move it to
- another position!) */
-#include "target_generic_network.h"
-
-#endif /* __TARGET_NATIVE_NETWORK__ */
-
-/* end of file */
-
diff --git a/native/target/Makefile.am b/native/target/Makefile.am
deleted file mode 100644
index ba0ad7919..000000000
--- a/native/target/Makefile.am
+++ /dev/null
@@ -1,5 +0,0 @@
-## Input file for automake to generate the Makefile.in used by configure
-
-SUBDIRS = Linux generic
-
-EXTRA_DIST = readme.txt
diff --git a/native/target/generic/.cvsignore b/native/target/generic/.cvsignore
deleted file mode 100644
index e9f2658a6..000000000
--- a/native/target/generic/.cvsignore
+++ /dev/null
@@ -1,8 +0,0 @@
-*.o
-*.a
-*.lo
-*.la
-.libs
-.deps
-Makefile
-Makefile.in
diff --git a/native/target/generic/Makefile.am b/native/target/generic/Makefile.am
deleted file mode 100644
index bc8413c3a..000000000
--- a/native/target/generic/Makefile.am
+++ /dev/null
@@ -1,10 +0,0 @@
-## Input file for automake to generate the Makefile.in used by configure
-
-EXTRA_DIST = \
-target_generic_io.h \
-target_generic_misc.h \
-target_generic.h \
-target_generic_math_float.h \
-target_generic_network.h \
-target_generic_file.h \
-target_generic_math_int.h
diff --git a/native/target/generic/target_generic.h b/native/target/generic/target_generic.h
deleted file mode 100644
index e4ddf5c3b..000000000
--- a/native/target/generic/target_generic.h
+++ /dev/null
@@ -1,171 +0,0 @@
-/* generic_math_int64.h - Native methods for 64bit math operations
- Copyright (C) 1998 Free Software Foundation, Inc.
-
-This file is part of GNU Classpath.
-
-GNU Classpath is free software; you can redistribute it and/or modify
-it under the terms of the GNU General Public License as published by
-the Free Software Foundation; either version 2, or (at your option)
-any later version.
-
-GNU Classpath is distributed in the hope that it will be useful, but
-WITHOUT ANY WARRANTY; without even the implied warranty of
-MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
-General Public License for more details.
-
-You should have received a copy of the GNU General Public License
-along with GNU Classpath; see the file COPYING. If not, write to the
-Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA
-02110-1301 USA.
-
-Linking this library statically or dynamically with other modules is
-making a combined work based on this library. Thus, the terms and
-conditions of the GNU General Public License cover the whole
-combination.
-
-As a special exception, the copyright holders of this library give you
-permission to link this library with independent modules to produce an
-executable, regardless of the license terms of these independent
-modules, and to copy and distribute the resulting executable under
-terms of your choice, provided that you also meet, for each linked
-independent module, the terms and conditions of the license of that
-module. An independent module is a module which is not derived from
-or based on this library. If you modify this library, you may extend
-this exception to your version of the library, but you are not
-obligated to do so. If you do not wish to do so, delete this
-exception statement from your version. */
-
-/*
-Description: generic target global defintions
-Systems : all
-*/
-
-#ifndef __TARGET_GENERIC__
-#define __TARGET_GENERIC__
-
-/* check if target_native_network.h included */
-#ifndef __TARGET_NATIVE__
- #error Do NOT INCLUDE generic target files! Include the corresponding native target files instead!
-#endif
-
-/****************************** Includes *******************************/
-/* do not move; needed here because of some macro definitions */
-#include "config.h"
-
-#include <stdlib.h>
-#include <errno.h>
-
-/****************** Conditional compilation switches *******************/
-
-/***************************** Constants *******************************/
-#define TARGET_NATIVE_OK 1
-#define TARGET_NATIVE_ERROR 0
-
-#ifndef TARGET_NATIVE_ERROR_PERMISION_DENIED
- #define TARGET_NATIVE_ERROR_PERMISION_DENIED EACCES
-#endif
-#ifndef TARGET_NATIVE_ERROR_BAD_FILE_DESCRIPTOR
- #define TARGET_NATIVE_ERROR_BAD_FILE_DESCRIPTOR EBADF
-#endif
-#ifndef TARGET_NATIVE_ERROR_FILE_EXISTS
- #define TARGET_NATIVE_ERROR_FILE_EXISTS EEXIST
-#endif
-#ifndef TARGET_NATIVE_ERROR_INPUT_OUTPUT
- #define TARGET_NATIVE_ERROR_INPUT_OUTPUT EIO
-#endif
-#ifndef TARGET_NATIVE_ERROR_TOO_MANY_OPEN_FILES
- #define TARGET_NATIVE_ERROR_TOO_MANY_OPEN_FILES EMFILE
-#endif
-#ifndef TARGET_NATIVE_ERROR_FILENAME_TO_LONG
- #define TARGET_NATIVE_ERROR_FILENAME_TO_LONG ENAMETOOLONG
-#endif
-#ifndef TARGET_NATIVE_ERROR_NO_SUCH_DEVICE
- #define TARGET_NATIVE_ERROR_NO_SUCH_DEVICE ENODEV
-#endif
-#ifndef TARGET_NATIVE_ERROR_NO_SUCH_FILE
- #define TARGET_NATIVE_ERROR_NO_SUCH_FILE ENOENT
-#endif
-#ifndef TARGET_NATIVE_ERROR_NO_SPACE_LEFT
- #define TARGET_NATIVE_ERROR_NO_SPACE_LEFT ENOSPC
-#endif
-#ifndef TARGET_NATIVE_ERROR_DIRECTORY_NOT_EMPTY
- #define TARGET_NATIVE_ERROR_DIRECTORY_NOT_EMPTY ENOTEMPTY
-#endif
-#ifndef TARGET_NATIVE_ERROR_OPERATION_NOT_PERMITTED
- #define TARGET_NATIVE_ERROR_OPERATION_NOT_PERMITTED EPERM
-#endif
-#ifndef TARGET_NATIVE_ERROR_READ_ONLY_FILE_SYSTEM
- #define TARGET_NATIVE_ERROR_READ_ONLY_FILE_SYSTEM EROFS
-#endif
-#ifndef TARGET_NATIVE_ERROR_INVALID_SEEK
- #define TARGET_NATIVE_ERROR_INVALID_SEEK ESPIPE
-#endif
-#ifndef TARGET_NATIVE_ERROR_INTERRUPT_FUNCTION_CALL
- #define TARGET_NATIVE_ERROR_INTERRUPT_FUNCTION_CALL EINTR
-#endif
-
-/***************************** Datatypes *******************************/
-
-/***************************** Variables *******************************/
-
-/****************************** Macros *********************************/
-
-/***********************************************************************\
-* Name : TARGET_NATIVE_LAST_ERROR
-* Purpose : return last error code
-* Input : -
-* Output : -
-* Return : error code
-* Side-effect: unknown
-* Notes : -
-\***********************************************************************/
-
-#ifndef TARGET_NATIVE_LAST_ERROR
- #include <errno.h>
- #define TARGET_NATIVE_LAST_ERROR() \
- errno
-#endif
-
-/***********************************************************************\
-* Name : TARGET_NATIVE_LAST_ERROR_STRING
-* Purpose : return last error string
-* Input : -
-* Output : -
-* Return : error string (read only!)
-* Side-effect: unknown
-* Notes : -
-\***********************************************************************/
-
-#ifndef TARGET_NATIVE_LAST_ERROR_STRING
- #include <string.h>
- #include <errno.h>
- #define TARGET_NATIVE_LAST_ERROR_STRING() \
- strerror(errno)
-#endif
-
-#ifndef TARGET_NATIVE_LAST_ERROR_STRING_FORMAT
- #include <string.h>
- #include <errno.h>
- #define TARGET_NATIVE_LAST_ERROR_STRING_FORMAT(buffer,bufferSize,format) \
- do { \
- sprintf(buffer,format); \
- strcat(" (error: "); \
- strcat(strerror(errno)); \
- strcat(")"); \
- } while (0)
-#endif
-
-/***************************** Functions *******************************/
-
-#ifdef __cplusplus
-extern "C" {
-#endif
-
-#ifdef __cplusplus
-}
-#endif
-
-#endif /* __TARGET_GENERIC__ */
-
-/* end of file */
-
diff --git a/native/target/generic/target_generic_file.h b/native/target/generic/target_generic_file.h
deleted file mode 100644
index cd90e733c..000000000
--- a/native/target/generic/target_generic_file.h
+++ /dev/null
@@ -1,844 +0,0 @@
-/* target_generic_file - Native methods for file operations
- Copyright (C) 1998, 2004 Free Software Foundation, Inc.
-
-This file is part of GNU Classpath.
-
-GNU Classpath is free software; you can redistribute it and/or modify
-it under the terms of the GNU General Public License as published by
-the Free Software Foundation; either version 2, or (at your option)
-any later version.
-
-GNU Classpath is distributed in the hope that it will be useful, but
-WITHOUT ANY WARRANTY; without even the implied warranty of
-MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
-General Public License for more details.
-
-You should have received a copy of the GNU General Public License
-along with GNU Classpath; see the file COPYING. If not, write to the
-Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA
-02110-1301 USA.
-
-Linking this library statically or dynamically with other modules is
-making a combined work based on this library. Thus, the terms and
-conditions of the GNU General Public License cover the whole
-combination.
-
-As a special exception, the copyright holders of this library give you
-permission to link this library with independent modules to produce an
-executable, regardless of the license terms of these independent
-modules, and to copy and distribute the resulting executable under
-terms of your choice, provided that you also meet, for each linked
-independent module, the terms and conditions of the license of that
-module. An independent module is a module which is not derived from
-or based on this library. If you modify this library, you may extend
-this exception to your version of the library, but you are not
-obligated to do so. If you do not wish to do so, delete this
-exception statement from your version. */
-
-/*
-Description: generic target defintions of file functions
-Systems : all
-*/
-
-#ifndef __TARGET_GENERIC_FILE__
-#define __TARGET_GENERIC_FILE__
-
-#ifdef __cplusplus
-extern "C" {
-#endif
-
-/* check if target_native_file.h included */
-#ifndef __TARGET_NATIVE_FILE__
- #error Do NOT INCLUDE generic target files! Include the corresponding native target files instead!
-#endif
-
-/****************************** Includes *******************************/
-/* do not move; needed here because of some macro definitions */
-#include "config.h"
-
-#include <stdlib.h>
-#include <assert.h>
-#include <fcntl.h>
-
-#include "target_native.h"
-#include "target_native_math_int.h"
-
-/****************** Conditional compilation switches *******************/
-
-/***************************** Constants *******************************/
-#ifndef TARGET_NATIVE_FILE_FILEFLAG_NONE
- #define TARGET_NATIVE_FILE_FILEFLAG_NONE 0
-#endif
-#ifndef TARGET_NATIVE_FILE_FILEFLAG_CREATE
- #define TARGET_NATIVE_FILE_FILEFLAG_CREATE O_CREAT
-#endif
-#ifndef TARGET_NATIVE_FILE_FILEFLAG_CREATE_FORCE
- #define TARGET_NATIVE_FILE_FILEFLAG_CREATE_FORCE (O_CREAT|O_EXCL)
-#endif
-#ifndef TARGET_NATIVE_FILE_FILEFLAG_READ
- #define TARGET_NATIVE_FILE_FILEFLAG_READ O_RDONLY
-#endif
-#ifndef TARGET_NATIVE_FILE_FILEFLAG_WRITE
- #define TARGET_NATIVE_FILE_FILEFLAG_WRITE O_WRONLY
-#endif
-#ifndef TARGET_NATIVE_FILE_FILEFLAG_READWRITE
- #define TARGET_NATIVE_FILE_FILEFLAG_READWRITE O_RDWR
-#endif
-#ifndef TARGET_NATIVE_FILE_FILEFLAG_TRUNCATE
- #define TARGET_NATIVE_FILE_FILEFLAG_TRUNCATE O_TRUNC
-#endif
-#ifndef TARGET_NATIVE_FILE_FILEFLAG_APPEND
- #define TARGET_NATIVE_FILE_FILEFLAG_APPEND O_APPEND
-#endif
-#ifndef TARGET_NATIVE_FILE_FILEFLAG_SYNC
- #if !defined (O_SYNC) && defined (O_FSYNC)
- #define TARGET_NATIVE_FILE_FILEFLAG_SYNC O_FSYNC
- #else
- #define TARGET_NATIVE_FILE_FILEFLAG_SYNC O_SYNC
- #endif
-#endif
-#ifndef TARGET_NATIVE_FILE_FILEFLAG_DSYNC
- #ifdef O_DSYNC
- #define TARGET_NATIVE_FILE_FILEFLAG_DSYNC 0
- #else
- #define TARGET_NATIVE_FILE_FILEFLAG_DSYNC TARGET_NATIVE_FILE_FILEFLAG_SYNC
- #endif
-#endif
-#ifndef TARGET_NATIVE_FILE_FILEFLAG_BINARY
- #define TARGET_NATIVE_FILE_FILEFLAG_BINARY O_BINARY
-#endif
-
-#ifndef TARGET_NATIVE_FILE_FILEPERMISSION_NORMAL
- #define TARGET_NATIVE_FILE_FILEPERMISSION_NORMAL (S_IRUSR | S_IWUSR | S_IRGRP | S_IWGRP | S_IROTH | S_IWOTH)
-#endif
-
-#ifndef TARGET_NATIVE_FILE_FILEPERMISSION_PRIVATE
- #define TARGET_NATIVE_FILE_FILEPERMISSION_PRIVATE (S_IRUSR | S_IWUSR)
-#endif
-
-#ifndef TARGET_NATIVE_FILE_FILEPERMISSION_READONLY
- #define TARGET_NATIVE_FILE_FILEPERMISSION_READONLY (~(S_IWRITE|S_IWGRP|S_IWOTH))
-#endif
-
-/***************************** Datatypes *******************************/
-
-/***************************** Variables *******************************/
-
-/****************************** Macros *********************************/
-
-/***********************************************************************\
-* Name : TARGET_NATIVE_FILE_OPEN
-* Purpose : open a file
-* Input : -
-* Output : -
-* Return : -
-* Side-effect: unknown
-* Notes : file is created if it does not exist
-\***********************************************************************/
-
-#ifndef TARGET_NATIVE_FILE_OPEN
- #include <sys/types.h>
- #include <sys/stat.h>
- #include <fcntl.h>
- #define TARGET_NATIVE_FILE_OPEN(filename,filedescriptor,flags,permissions,result) \
- do { \
- filedescriptor=open(filename, \
- flags, \
- permissions \
- ); \
- if (filedescriptor >= 0) \
- fcntl (filedescriptor,F_SETFD,FD_CLOEXEC); \
- result=(filedescriptor>=0)?TARGET_NATIVE_OK:TARGET_NATIVE_ERROR; \
- } while (0)
-#endif
-
-/***********************************************************************\
-* Name : TARGET_NATIVE_FILE_OPEN_CREATE
-* Purpose : create a file
-* Input : -
-* Output : -
-* Return : -
-* Side-effect: unknown
-* Notes : file is created if it does not exist
-\***********************************************************************/
-
-#ifndef TARGET_NATIVE_FILE_OPEN_CREATE
- #define TARGET_NATIVE_FILE_OPEN_CREATE(filename,filedescriptor,result) \
- TARGET_NATIVE_FILE_OPEN(filename,\
- filedescriptor,\
- TARGET_NATIVE_FILE_FILEFLAG_CREATE_FORCE, \
- TARGET_NATIVE_FILE_FILEPERMISSION_NORMAL, \
- result \
- )
-#endif
-
-/***********************************************************************\
-* Name : TARGET_NATIVE_FILE_OPEN_READ
-* Purpose : open an existing file for reading
-* Input : -
-* Output : -
-* Return : -
-* Side-effect: unknown
-* Notes : -
-\***********************************************************************/
-
-#ifndef TARGET_NATIVE_FILE_OPEN_READ
- #define TARGET_NATIVE_FILE_OPEN_READ(filename,filedescriptor,result) \
- TARGET_NATIVE_FILE_OPEN(filename, \
- filedescriptor,\
- TARGET_NATIVE_FILE_FILEFLAG_READ, \
- TARGET_NATIVE_FILE_FILEPERMISSION_NORMAL, \
- result \
- )
-#endif
-
-/***********************************************************************\
-* Name : TARGET_NATIVE_FILE_OPEN_WRITE
-* Purpose : open an existing file for writing
-* Input : -
-* Output : -
-* Return : -
-* Side-effect: unknown
-* Notes : -
-\***********************************************************************/
-
-#ifndef TARGET_NATIVE_FILE_OPEN_WRITE
- #define TARGET_NATIVE_FILE_OPEN_WRITE(filename,filedescriptor,result) \
- TARGET_NATIVE_FILE_OPEN(filename, \
- filedescriptor, \
- TARGET_NATIVE_FILE_FILEFLAG_WRITE, \
- TARGET_NATIVE_FILE_FILEPERMISSION_NORMAL, \
- result \
- )
-#endif
-
-/***********************************************************************\
-* Name : TARGET_NATIVE_FILE_OPEN_READWRITE
-* Purpose : create/open a file for reading/writing
-* Input : -
-* Output : -
-* Return : -
-* Side-effect: unknown
-* Notes : file is created if it does not exist
-\***********************************************************************/
-
-#ifndef TARGET_NATIVE_FILE_OPEN_READWRITE
- #define TARGET_NATIVE_FILE_OPEN_READWRITE(filename,filedescriptor,result) \
- TARGET_NATIVE_FILE_OPEN(filename, \
- filedescriptor, \
- TARGET_NATIVE_FILE_FILEFLAG_READWRITE, \
- TARGET_NATIVE_FILE_FILEPERMISSION_NORMAL, \
- result \
- )
-#endif
-
-/***********************************************************************\
-* Name : TARGET_NATIVE_FILE_OPEN_READWRITE
-* Purpose : create/open a file for append
-* Input : -
-* Output : -
-* Return : -
-* Side-effect: unknown
-* Notes : file is created if it does not exist
-\***********************************************************************/
-
-#ifndef TARGET_NATIVE_FILE_OPEN_APPEND
- #define TARGET_NATIVE_FILE_OPEN_APPEND(filename,filedescriptor,result) \
- TARGET_NATIVE_FILE_OPEN_APPEND(filename, \
- filedescriptor, \
- TARGET_NATIVE_FILE_FILEFLAG_CREATE_FORCE|TARGET_NATIVE_FILE_FILEFLAG_APPEND, \
- TARGET_NATIVE_FILE_FILEPERMISSION_NORMAL, \
- result \
- )
-#endif
-
-/***********************************************************************\
-* Name : TARGET_NATIVE_FILE_CLOSE
-* Purpose : close a file
-* Input : -
-* Output : -
-* Return : -
-* Side-effect: unknown
-* Notes : -
-\***********************************************************************/
-
-#ifndef TARGET_NATIVE_FILE_CLOSE
- #include <unistd.h>
- #define TARGET_NATIVE_FILE_CLOSE(filedescriptor,result) \
- do { \
- result=(close(filedescriptor)==0)?TARGET_NATIVE_OK:TARGET_NATIVE_ERROR; \
- } while (0)
-#endif
-
-/***********************************************************************\
-* Name : TARGET_NATIVE_FILE_VALID_FILE_DESCRIPTOR
-* Purpose : check if file-descriptor is valid
-* Input : -
-* Output : -
-* Return : -
-* Side-effect: unknown
-* Notes : -
-\***********************************************************************/
-
-#ifndef TARGET_NATIVE_FILE_VALID_FILE_DESCRIPTOR
- #if defined(HAVE_FCNTL)
- #include <unistd.h>
- #include <fcntl.h>
- #define TARGET_NATIVE_FILE_VALID_FILE_DESCRIPTOR(filedescriptor,result) \
- do { \
- result=(fcntl(filedescriptor,F_GETFL,0)!=-1)?TARGET_NATIVE_OK:TARGET_NATIVE_ERROR; \
- } while(0)
- #elif defined(HAVE_FSTAT)
- #include <sys/types.h>
- #include <sys/stat.h>
- #include <unistd.h>
- #define TARGET_NATIVE_FILE_VALID_FILE_DESCRIPTOR(filedescriptor,result) \
- do { \
- struct stat __stat; \
- \
- result=(fstat(filedescriptor,&__stat)==0)?TARGET_NATIVE_OK:TARGET_NATIVE_ERROR; \
- } while(0)
- #else
- #error fcntl() nor fstat() available for checking if file descriptor is valid
- #endif
-#endif
-
-/***********************************************************************\
-* Name : TARGET_NATIVE_FILE_TELL
-* Purpose : get current file position
-* Input : -
-* Output : -
-* Return : -
-* Side-effect: unknown
-* Notes : -
-\***********************************************************************/
-
-#ifndef TARGET_NATIVE_FILE_TELL
- #include <sys/types.h>
- #include <unistd.h>
- #define TARGET_NATIVE_FILE_TELL(filedescriptor,offset,result) \
- do { \
- offset=lseek(filedescriptor,TARGET_NATIVE_MATH_INT_INT64_CONST_0,SEEK_CUR); \
- result=((offset)!=(off_t)-1)?TARGET_NATIVE_OK:TARGET_NATIVE_ERROR; \
- } while (0)
-#endif
-
-/***********************************************************************\
-* Name : TARGET_NATIVE_FILE_SEEK_BEGIN|CURRENT|END
-* Purpose : set file position relativ to begin/current/end
-* Input : -
-* Output : -
-* Return : -
-* Side-effect: unknown
-* Notes : -
-\***********************************************************************/
-
-#ifndef TARGET_NATIVE_FILE_SEEK_BEGIN
- #include <sys/types.h>
- #include <unistd.h>
- #define TARGET_NATIVE_FILE_SEEK_BEGIN(filedescriptor,offset,newoffset,result) \
- do { \
- newoffset=lseek(filedescriptor,offset,SEEK_SET); \
- result=((newoffset)!=(off_t)-1)?TARGET_NATIVE_OK:TARGET_NATIVE_ERROR; \
- } while (0)
-#endif
-#ifndef TARGET_NATIVE_FILE_SEEK_CURRENT
- #include <sys/types.h>
- #include <unistd.h>
- #define TARGET_NATIVE_FILE_SEEK_CURRENT(filedescriptor,offset,newoffset,result) \
- do { \
- newoffset=lseek(filedescriptor,offset,SEEK_CUR); \
- result=((newoffset)!=(off_t)-1)?TARGET_NATIVE_OK:TARGET_NATIVE_ERROR; \
- } while (0)
-#endif
-#ifndef TARGET_NATIVE_FILE_SEEK_END
- #include <sys/types.h>
- #include <unistd.h>
- #define TARGET_NATIVE_FILE_SEEK_END(filedescriptor,offset,newoffset,result) \
- do { \
- newoffset=lseek(filedescriptor,offset,SEEK_END); \
- result=((newoffset)!=(off_t)-1)?TARGET_NATIVE_OK:TARGET_NATIVE_ERROR; \
- } while (0)
-#endif
-
-/***********************************************************************\
-* Name : TARGET_NATIVE_FILE_TRUNCATE
-* Purpose : truncate a file
-* Input : -
-* Output : -
-* Return : -
-* Side-effect: unknown
-* Notes : -
-\***********************************************************************/
-
-#ifndef TARGET_NATIVE_FILE_TRUNCATE
- #include <unistd.h>
- #define TARGET_NATIVE_FILE_TRUNCATE(filedescriptor,offset,result) \
- do { \
- result=(ftruncate(filedescriptor,offset)==0)?TARGET_NATIVE_OK:TARGET_NATIVE_ERROR; \
- } while (0)
-#endif
-
-/***********************************************************************\
-* Name : TARGET_NATIVE_FILE_SIZE
-* Purpose : get size of file (in bytes)
-* Input : -
-* Output : -
-* Return : -
-* Side-effect: unknown
-* Notes : -
-\***********************************************************************/
-
-#ifndef TARGET_NATIVE_FILE_SIZE
- #include <sys/types.h>
- #include <sys/stat.h>
- #include <unistd.h>
- #define TARGET_NATIVE_FILE_SIZE(filedescriptor,length,result) \
- do { \
- struct stat __statBuffer; \
- \
- result=(fstat(filedescriptor,&__statBuffer)==0)?TARGET_NATIVE_OK:TARGET_NATIVE_ERROR; \
- length=TARGET_NATIVE_MATH_INT_INT32_TO_INT64(__statBuffer.st_size); \
- } while (0)
-#endif
-
-/***********************************************************************\
-* Name : TARGET_NATIVE_FILE_AVAILABLE
-* Purpose : get available bytes for read
-* Input : -
-* Output : -
-* Return : -
-* Side-effect: unknown
-* Notes : -
-\***********************************************************************/
-
-#ifndef TARGET_NATIVE_FILE_AVAILABLE
- #ifdef HAVE_SYS_IOCTL_H
- #define BSD_COMP /* Get FIONREAD on Solaris2 */
- #include <sys/ioctl.h>
- #endif
- #ifdef HAVE_SYS_FILIO_H /* Get FIONREAD on Solaris 2.5 */
- #include <sys/filio.h>
- #endif
- #if defined (FIONREAD)
- #define TARGET_NATIVE_FILE_AVAILABLE(filedescriptor,length,result) \
- do { \
- ssize_t __n; \
- \
- result=(ioctl(filedescriptor,FIONREAD,(char*)&__n)==0)?TARGET_NATIVE_OK:TARGET_NATIVE_ERROR; \
- length=TARGET_NATIVE_MATH_INT_INT32_TO_INT64(__n); \
- } while (0)
- #elif defined(HAVE_FSTAT)
- #include <sys/types.h>
- #include <sys/stat.h>
- #include <unistd.h>
- #define TARGET_NATIVE_FILE_AVAILABLE(filedescriptor,length,result) \
- do { \
- struct stat __statBuffer; \
- off_t __n; \
- \
- length=0; \
- \
- if ((fstat(filedescriptor,&__statBuffer)==0) && S_ISREG(__statBuffer.st_mode)) \
- { \
- __n=(lseek(filedescriptor,0,SEEK_CUR)); \
- if (__n!=-1) \
- { \
- length=TARGET_NATIVE_MATH_INT_INT32_TO_INT64(__statBuffer.st_size-__n); \
- result=TARGET_NATIVE_OK; \
- } \
- else \
- { \
- result=TARGET_NATIVE_ERROR; \
- } \
- } \
- else \
- { \
- result=TARGET_NATIVE_ERROR; \
- } \
- } while (0)
- #elif defined(HAVE_SELECT)
- #include <string.h>
- #include <sys/select.h>
- #define TARGET_NATIVE_FILE_AVAILABLE(filedescriptor,length,result) \
- do { \
- fd_set __filedescriptset; \
- struct timeval __timeval; \
- \
- length=0; \
- \
- FD_ZERO(&__filedescriptset); \
- FD_SET(filedescriptor,&__filedescriptset); \
- memset(&__timeval,0,sizeof(__timeval)); \
- switch (select(filedescriptor+1,&__filedescriptset,NULL,NULL,&__timeval)==0) \
- { \
- case -1: result=TARGET_NATIVE_ERROR; break; \
- case 0: length=JNI_JLONG_CONST_0; result=TARGET_NATIVE_OK; break; \
- default: length=JNI_JLONG_CONST_1; result=TARGET_NATIVE_OK; break; \
- } \
- } while (0)
- #else
- #define TARGET_NATIVE_FILE_AVAILABLE(filedescriptor,length,result) \
- do { \
- errno=TARGET_NATIVE_ERROR_OPERATION_NOT_PERMITTED; \
- length=0; \
- result=TARGET_NATIVE_ERROR; \
- } while (0)
- #endif
-#endif
-
-/***********************************************************************\
-* Name : TARGET_NATIVE_FILE_READ|WRITE
-* Purpose : read/write from/to frile
-* Input : -
-* Output : -
-* Return : -
-* Side-effect: unknown
-* Notes : -
-\***********************************************************************/
-
-#ifndef TARGET_NATIVE_FILE_READ
- #include <unistd.h>
- #define TARGET_NATIVE_FILE_READ(filedescriptor,buffer,length,bytesRead,result) \
- do { \
- bytesRead=read(filedescriptor,buffer,length); \
- result=(bytesRead!=-1)?TARGET_NATIVE_OK:TARGET_NATIVE_ERROR; \
- } while (0)
-#endif
-#ifndef TARGET_NATIVE_FILE_WRITE
- #include <unistd.h>
- #define TARGET_NATIVE_FILE_WRITE(filedescriptor,buffer,length,bytesWritten,result) \
- do { \
- bytesWritten=write(filedescriptor,buffer,length); \
- result=(bytesWritten!=-1)?TARGET_NATIVE_OK:TARGET_NATIVE_ERROR; \
- } while (0)
-#endif
-
-/***********************************************************************\
-* Name : TARGET_NATIVE_FILE_SET_MODE_READONLY
-* Purpose : set file mode to read-only
-* Input : -
-* Output : -
-* Return : -
-* Side-effect: unknown
-* Notes : -
-\***********************************************************************/
-
-#ifndef TARGET_NATIVE_FILE_SET_MODE_READONLY
- #include <sys/types.h>
- #include <sys/stat.h>
- #include <unistd.h>
- #define TARGET_NATIVE_FILE_SET_MODE_READONLY(filename,result) \
- do { \
- struct stat __statBuffer; \
- \
- if (stat(filename,&__statBuffer)==0) { \
- result=(chmod(filename,__statBuffer.st_mode & TARGET_NATIVE_FILE_FILEPERMISSION_READONLY)==0)?TARGET_NATIVE_OK:TARGET_NATIVE_ERROR; \
- } else { \
- result=TARGET_NATIVE_ERROR; \
- } \
- } while (0)
-#endif
-
-/***********************************************************************\
-* Name : TARGET_NATIVE_FILE_EXISTS
-* Purpose : check if file exists
-* Input : -
-* Output : -
-* Return : -
-* Side-effect: unknown
-* Notes : -
-\***********************************************************************/
-
-#ifndef TARGET_NATIVE_FILE_EXISTS
- #include <sys/types.h>
- #include <sys/stat.h>
- #include <unistd.h>
- #define TARGET_NATIVE_FILE_EXISTS(filename,result) \
- do { \
- struct stat __statBuffer; \
- \
- result=(stat(filename,&__statBuffer)==0)?TARGET_NATIVE_OK:TARGET_NATIVE_ERROR; \
- } while (0)
-#endif
-
-/***********************************************************************\
-* Name : TARGET_NATIVE_FILE_IS_FILE
-* Purpose : check if directory entry is a file
-* Input : -
-* Output : -
-* Return : -
-* Side-effect: unknown
-* Notes : -
-\***********************************************************************/
-
-#ifndef TARGET_NATIVE_FILE_IS_FILE
- #include <sys/types.h>
- #include <sys/stat.h>
- #include <unistd.h>
- #define TARGET_NATIVE_FILE_IS_FILE(filename,result) \
- do { \
- struct stat __statBuffer; \
- \
- result=((stat(filename,&__statBuffer)==0) && (S_ISREG(__statBuffer.st_mode)))?TARGET_NATIVE_OK:TARGET_NATIVE_ERROR; \
- } while (0)
-#endif
-
-/***********************************************************************\
-* Name : TARGET_NATIVE_FILE_IS_DIRECTORY
-* Purpose : check if directory entry is a directory
-* Input : -
-* Output : -
-* Return : -
-* Side-effect: unknown
-* Notes : -
-\***********************************************************************/
-
-#ifndef TARGET_NATIVE_FILE_IS_DIRECTORY
- #include <sys/types.h>
- #include <sys/stat.h>
- #include <unistd.h>
- #define TARGET_NATIVE_FILE_IS_DIRECTORY(filename,result) \
- do { \
- struct stat __statBuffer; \
- \
- result=((stat(filename,&__statBuffer)==0) && (S_ISDIR(__statBuffer.st_mode)))?TARGET_NATIVE_OK:TARGET_NATIVE_ERROR; \
- } while (0)
-#endif
-
-/***********************************************************************\
-* Name : TARGET_NATIVE_FILE_GET_LAST_MODIFIED
-* Purpose : get last modification time of file (milliseconds)
-* Input : -
-* Output : -
-* Return : -
-* Side-effect: unknown
-* Notes : -
-\***********************************************************************/
-
-#ifndef TARGET_NATIVE_FILE_GET_LAST_MODIFIED
- #include <sys/types.h>
- #include <sys/stat.h>
- #include <unistd.h>
- #define TARGET_NATIVE_FILE_GET_LAST_MODIFIED(filename,time,result) \
- do { \
- struct stat __statBuffer; \
- \
- time=TARGET_NATIVE_MATH_INT_INT64_CONST_0; \
- if (stat(filename,&__statBuffer)==0) { \
- time=TARGET_NATIVE_MATH_INT_INT64_MUL(TARGET_NATIVE_MATH_INT_INT32_TO_INT64(__statBuffer.st_mtime), \
- TARGET_NATIVE_MATH_INT_INT32_TO_INT64(1000) \
- ); \
- result=TARGET_NATIVE_OK; \
- } else { \
- result=TARGET_NATIVE_ERROR; \
- } \
- } while (0)
-#endif
-
-/***********************************************************************\
-* Name : TARGET_NATIVE_FILE_SET_LAST_MODIFIED
-* Purpose : set last modification time of file (milliseconds)
-* Input : -
-* Output : -
-* Return : -
-* Side-effect: unknown
-* Notes : -
-\***********************************************************************/
-
-#ifndef TARGET_NATIVE_FILE_SET_LAST_MODIFIED
- #include <sys/types.h>
- #include <sys/stat.h>
- #include <unistd.h>
- #ifdef HAVE_UTIME_H
- #include <utime.h>
- #elif HAVE_SYS_UTIME_H
- #include <sys/utime.h>
- #else
- #error utime.h not found. Please check configuration.
- #endif
- #define TARGET_NATIVE_FILE_SET_LAST_MODIFIED(filename,time,result) \
- do { \
- struct stat __statBuffer; \
- struct utimbuf __utimeBuffer; \
- \
- if (stat(filename,&__statBuffer)==0) { \
- __utimeBuffer.actime =__statBuffer.st_atime; \
- __utimeBuffer.modtime=TARGET_NATIVE_MATH_INT_INT64_TO_INT32(TARGET_NATIVE_MATH_INT_INT64_DIV(time, \
- TARGET_NATIVE_MATH_INT_INT32_TO_INT64(1000) \
- ) \
- ); \
- result=(utime(filename,&__utimeBuffer)==0)?TARGET_NATIVE_OK:TARGET_NATIVE_ERROR; \
- } else { \
- result=TARGET_NATIVE_ERROR; \
- } \
- } while (0)
-#endif
-
-/***********************************************************************\
-* Name : TARGET_NATIVE_FILE_DELETE
-* Purpose : delete a file,link or directory
-* Input : -
-* Output : -
-* Return : -
-* Side-effect: unknown
-* Notes : -
-\***********************************************************************/
-
-#ifndef TARGET_NATIVE_FILE_DELETE
- #define TARGET_NATIVE_FILE_DELETE(filename,result) \
- do { \
- result=((unlink(filename)==0) || (rmdir(filename)==0))?TARGET_NATIVE_OK:TARGET_NATIVE_ERROR; \
- } while (0)
-#endif
-
-/***********************************************************************\
-* Name : TARGET_NATIVE_FILE_RENAME
-* Purpose : delete a file, link or directory
-* Input : -
-* Output : -
-* Return : -
-* Side-effect: unknown
-* Notes : -
-\***********************************************************************/
-
-#ifndef TARGET_NATIVE_FILE_RENAME
- #define TARGET_NATIVE_FILE_RENAME(oldfilename,newfilename,result) \
- do { \
- result=(rename(oldfilename,newfilename)==0)?TARGET_NATIVE_OK:TARGET_NATIVE_ERROR; \
- } while (0)
-#endif
-
-/***********************************************************************\
-* Name : TARGET_NATIVE_FILE_MAKE_DIR
-* Purpose : create new directory
-* Input : name - directory name
-* Output : result - 1 if successful, 0 otherwise
-* Return : -
-* Side-effect: unknown
-* Notes : -
-\***********************************************************************/
-
-#ifndef TARGET_NATIVE_FILE_MAKE_DIR
- #include <sys/stat.h>
- #define TARGET_NATIVE_FILE_MAKE_DIR(name,result) \
- do { \
- result=((mkdir(name,(S_IRWXO|S_IRWXG|S_IRWXU))==0)?TARGET_NATIVE_OK:TARGET_NATIVE_ERROR); \
- } while (0)
-#endif
-
-/***********************************************************************\
-* Name : TARGET_NATIVE_FILE_GET_CWD
-* Purpose : get current working directory
-* Input : -
-* Output : -
-* Return : -
-* Side-effect: unknown
-* Notes : -
-\***********************************************************************/
-
-#ifndef TARGET_NATIVE_FILE_GET_CWD
- #include <unistd.h>
- #define TARGET_NATIVE_FILE_GET_CWD(path,maxPathLength,result) \
- do {\
- result=(getcwd(path,maxPathLength)!=NULL)?TARGET_NATIVE_OK:TARGET_NATIVE_ERROR; \
- } while (0)
-#endif
-
-/***********************************************************************\
-* Name : TARGET_NATIVE_FILE_OPEN_DIR
-* Purpose : open directory for reading entries.
-* Input : -
-* Output : handle - handle if not error, NULL otherwise
-* Return : -
-* Side-effect: unknown
-* Notes : -
-\***********************************************************************/
-
-#ifndef TARGET_NATIVE_FILE_OPEN_DIR
- #include <sys/types.h>
- #include <dirent.h>
- #define TARGET_NATIVE_FILE_OPEN_DIR(filename,handle,result) \
- do { \
- handle=(void*)opendir(filename); \
- result=(handle!=NULL)?TARGET_NATIVE_OK:TARGET_NATIVE_ERROR; \
- } while(0)
-#endif
-
-/***********************************************************************\
-* Name : TARGET_NATIVE_FILE_CLOSE_DIR
-* Purpose : close directory
-* Input : -
-* Output : -
-* Return : -
-* Side-effect: unknown
-* Notes : -
-\***********************************************************************/
-
-#ifndef TARGET_NATIVE_FILE_CLOSE_DIR
- #include <sys/types.h>
- #include <dirent.h>
- #define TARGET_NATIVE_FILE_CLOSE_DIR(handle,result) \
- do { \
- closedir((DIR*)handle); \
- result=TARGET_NATIVE_OK; \
- } while(0)
-#endif
-
-/***********************************************************************\
-* Name : TARGET_NATIVE_FILE_READ_DIR
-* Purpose : read directory entry
-* Input : -
-* Output : -
-* Return : -
-* Side-effect: unknown
-* Notes : -
-\***********************************************************************/
-
-/* XXX ??? name als buffer? */
-#ifndef TARGET_NATIVE_FILE_READ_DIR
- #include <sys/types.h>
- #include <dirent.h>
- #define TARGET_NATIVE_FILE_READ_DIR(handle,name,result) \
- do { \
- struct dirent *__direntBuffer; \
- \
- name=NULL; \
- \
- __direntBuffer=readdir((DIR*)handle); \
- if (__direntBuffer!=NULL) { \
- name=__direntBuffer->d_name; \
- result=TARGET_NATIVE_OK; \
- } else { \
- result=TARGET_NATIVE_ERROR; \
- } \
- } while (0)
-#endif
-
-/***********************************************************************\
-* Name : TARGET_NATIVE_FILE_FSYNC
-* Purpose : do filesystem sync
-* Input : -
-* Output : -
-* Return : -
-* Side-effect: unknown
-* Notes : -
-\***********************************************************************/
-
-#ifndef TARGET_NATIVE_FILE_FSYNC
- #define TARGET_NATIVE_FILE_FSYNC(filedescriptor,result) \
- do { \
- result=(fsync(filedescriptor)==0)?TARGET_NATIVE_OK:TARGET_NATIVE_ERROR; \
- } while(0)
-#endif
-
-/***************************** Functions *******************************/
-
-#ifdef __cplusplus
-}
-#endif
-
-#endif /* __TARGET_GENERIC_FILE__ */
-
-/* end of file */
-
diff --git a/native/target/generic/target_generic_io.h b/native/target/generic/target_generic_io.h
deleted file mode 100644
index cc24915ab..000000000
--- a/native/target/generic/target_generic_io.h
+++ /dev/null
@@ -1,82 +0,0 @@
-/* generic_math_int64.h - Native methods for 64bit math operations
- Copyright (C) 1998 Free Software Foundation, Inc.
-
-This file is part of GNU Classpath.
-
-GNU Classpath is free software; you can redistribute it and/or modify
-it under the terms of the GNU General Public License as published by
-the Free Software Foundation; either version 2, or (at your option)
-any later version.
-
-GNU Classpath is distributed in the hope that it will be useful, but
-WITHOUT ANY WARRANTY; without even the implied warranty of
-MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
-General Public License for more details.
-
-You should have received a copy of the GNU General Public License
-along with GNU Classpath; see the file COPYING. If not, write to the
-Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA
-02110-1301 USA.
-
-Linking this library statically or dynamically with other modules is
-making a combined work based on this library. Thus, the terms and
-conditions of the GNU General Public License cover the whole
-combination.
-
-As a special exception, the copyright holders of this library give you
-permission to link this library with independent modules to produce an
-executable, regardless of the license terms of these independent
-modules, and to copy and distribute the resulting executable under
-terms of your choice, provided that you also meet, for each linked
-independent module, the terms and conditions of the license of that
-module. An independent module is a module which is not derived from
-or based on this library. If you modify this library, you may extend
-this exception to your version of the library, but you are not
-obligated to do so. If you do not wish to do so, delete this
-exception statement from your version. */
-
-/*
-Description: generic target defintions of miscellaneous functions
-Systems : all
-*/
-
-#ifndef __TARGET_GENERIC_IO__
-#define __TARGET_GENERIC_IO__
-
-/* check if target_native_io.h included */
-#ifndef __TARGET_NATIVE_IO__
- #error Do NOT INCLUDE generic target files! Include the corresponding native target files instead!
-#endif
-
-/****************************** Includes *******************************/
-/* do not move; needed here because of some macro definitions */
-#include "config.h"
-
-#include <stdlib.h>
-#include <assert.h>
-
-#include "target_native.h"
-
-/****************** Conditional compilation switches *******************/
-
-/***************************** Constants *******************************/
-
-/***************************** Datatypes *******************************/
-
-/***************************** Variables *******************************/
-
-/****************************** Macros *********************************/
-
-/***************************** Functions *******************************/
-
-#ifdef __cplusplus
-extern "C"
-#endif
-
-#ifdef __cplusplus
-}
-#endif
-
-#endif /* __TARGET_GENERIC_IO__ */
-
-/* end of file */
diff --git a/native/target/generic/target_generic_math_float.h b/native/target/generic/target_generic_math_float.h
deleted file mode 100644
index e2085e080..000000000
--- a/native/target/generic/target_generic_math_float.h
+++ /dev/null
@@ -1,130 +0,0 @@
-/* generic_math_int64.h - Native methods for 64bit math operations
- Copyright (C) 1998 Free Software Foundation, Inc.
-
-This file is part of GNU Classpath.
-
-GNU Classpath is free software; you can redistribute it and/or modify
-it under the terms of the GNU General Public License as published by
-the Free Software Foundation; either version 2, or (at your option)
-any later version.
-
-GNU Classpath is distributed in the hope that it will be useful, but
-WITHOUT ANY WARRANTY; without even the implied warranty of
-MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
-General Public License for more details.
-
-You should have received a copy of the GNU General Public License
-along with GNU Classpath; see the file COPYING. If not, write to the
-Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA
-02110-1301 USA.
-
-Linking this library statically or dynamically with other modules is
-making a combined work based on this library. Thus, the terms and
-conditions of the GNU General Public License cover the whole
-combination.
-
-As a special exception, the copyright holders of this library give you
-permission to link this library with independent modules to produce an
-executable, regardless of the license terms of these independent
-modules, and to copy and distribute the resulting executable under
-terms of your choice, provided that you also meet, for each linked
-independent module, the terms and conditions of the license of that
-module. An independent module is a module which is not derived from
-or based on this library. If you modify this library, you may extend
-this exception to your version of the library, but you are not
-obligated to do so. If you do not wish to do so, delete this
-exception statement from your version. */
-
-/*
-Description: generic target defintions of float/double constants/
- macros/functions
-Systems : all
-*/
-
-#ifndef __TARGET_GENERIC_MATH_FLOAT__
-#define __TARGET_GENERIC_MATH_FLOAT__
-
-/* check if target_native_math_float.h included */
-#ifndef __TARGET_NATIVE_MATH_FLOAT__
- #error Do NOT INCLUDE generic target files! Include the corresponding native target files instead!
-#endif
-
-/****************************** Includes *******************************/
-/* do not move; needed here because of some macro definitions */
-#include "config.h"
-
-#include <stdlib.h>
-#include <assert.h>
-
-#include <jni.h>
-
-/****************** Conditional compilation switches *******************/
-
-/***************************** Constants *******************************/
-
-/***************************** Datatypes *******************************/
-
-/***************************** Variables *******************************/
-
-/****************************** Macros *********************************/
-
-/* test float/double values for NaN,Inf */
-#ifndef TARGET_NATIVE_MATH_FLOAT_FLOAT_ISNAN
- #include <math.h>
- #define TARGET_NATIVE_MATH_FLOAT_FLOAT_ISNAN(f) isnan(f)
-#endif
-#ifndef TARGET_NATIVE_MATH_FLOAT_FLOAT_ISINF
- #include <math.h>
- #define TARGET_NATIVE_MATH_FLOAT_FLOAT_ISINF(f) isinf(f)
-#endif
-#ifndef TARGET_NATIVE_MATH_FLOAT_FLOAT_FINITE
- #include <math.h>
- #define TARGET_NATIVE_MATH_FLOAT_FLOAT_FINITE(f) finite(f)
-#endif
-
-#ifndef TARGET_NATIVE_MATH_FLOAT_DOUBLE_ISNAN
- #include <math.h>
- #define TARGET_NATIVE_MATH_FLOAT_DOUBLE_ISNAN(d) isnan(d)
-#endif
-#ifndef TARGET_NATIVE_MATH_FLOAT_DOUBLE_ISINF
- #include <math.h>
- #define TARGET_NATIVE_MATH_FLOAT_DOUBLE_ISINF(d) isinf(d)
-#endif
-#ifndef TARGET_NATIVE_MATH_FLOAT_DOUBLE_FINITE
- #include <math.h>
- #define TARGET_NATIVE_MATH_FLOAT_DOUBLE_FINITE(d) finite(d)
-#endif
-
-/* division, modulo operations (used to avoid unexcepted exceptions on some
- targets; generic codes are direct operations without checks)
-*/
-#ifndef TARGET_NATIVE_MATH_FLOAT_FLOAT_DIV
- #define TARGET_NATIVE_MATH_FLOAT_FLOAT_DIV(f0,f1) ((f0)/(f1))
-#endif
-#ifndef TARGET_NATIVE_MATH_FLOAT_FLOAT_MOD
- #include <math.h>
- #define TARGET_NATIVE_MATH_FLOAT_FLOAT_MOD(f0,f1) ((jfloat)fmod((jdouble)(f0),(jdouble)(f1)))
-#endif
-
-#ifndef TARGET_NATIVE_MATH_FLOAT_DOUBLE_DIV
- #define TARGET_NATIVE_MATH_FLOAT_DOUBLE_DIV(d0,d1) ((d0)/(d1))
-#endif
-#ifndef TARGET_NATIVE_MATH_FLOAT_DOUBLE_MOD
- #include <math.h>
- #define TARGET_NATIVE_MATH_FLOAT_DOUBLE_MOD(d0,d1) fmod(d0,d1)
-#endif
-
-/***************************** Functions *******************************/
-
-#ifdef __cplusplus
-extern "C"
-#endif
-
-#ifdef __cplusplus
-}
-#endif
-
-#endif /* __TARGET_GENERIC_MATH_FLOAT__ */
-
-/* end of file */
-
diff --git a/native/target/generic/target_generic_math_int.h b/native/target/generic/target_generic_math_int.h
deleted file mode 100644
index c6861487e..000000000
--- a/native/target/generic/target_generic_math_int.h
+++ /dev/null
@@ -1,260 +0,0 @@
-/* generic_math_int64.h - Native methods for 64bit math operations
- Copyright (C) 1998 Free Software Foundation, Inc.
-
-This file is part of GNU Classpath.
-
-GNU Classpath is free software; you can redistribute it and/or modify
-it under the terms of the GNU General Public License as published by
-the Free Software Foundation; either version 2, or (at your option)
-any later version.
-
-GNU Classpath is distributed in the hope that it will be useful, but
-WITHOUT ANY WARRANTY; without even the implied warranty of
-MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
-General Public License for more details.
-
-You should have received a copy of the GNU General Public License
-along with GNU Classpath; see the file COPYING. If not, write to the
-Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA
-02110-1301 USA.
-
-Linking this library statically or dynamically with other modules is
-making a combined work based on this library. Thus, the terms and
-conditions of the GNU General Public License cover the whole
-combination.
-
-As a special exception, the copyright holders of this library give you
-permission to link this library with independent modules to produce an
-executable, regardless of the license terms of these independent
-modules, and to copy and distribute the resulting executable under
-terms of your choice, provided that you also meet, for each linked
-independent module, the terms and conditions of the license of that
-module. An independent module is a module which is not derived from
-or based on this library. If you modify this library, you may extend
-this exception to your version of the library, but you are not
-obligated to do so. If you do not wish to do so, delete this
-exception statement from your version. */
-
-/*
-Description: generic target defintions of int/int64 constants/
- macros/functions
-Systems : all
-*/
-
-#ifndef __TARGET_GENERIC_MATH_INT__
-#define __TARGET_GENERIC_MATH_INT__
-
-/* check if target_native_math_int.h included */
-#ifndef __TARGET_NATIVE_MATH_INT__
- #error Do NOT INCLUDE generic target files! Include the corresponding native target files instead!
-#endif
-
-/****************************** Includes *******************************/
-/* do not move; needed here because of some macro definitions */
-#include "config.h"
-
-#include <stdlib.h>
-#include <assert.h>
-
-/****************** Conditional compilation switches *******************/
-
-/***************************** Constants *******************************/
-#ifndef TARGET_NATIVE_MATH_INT_INT64_CONST_0
- #define TARGET_NATIVE_MATH_INT_INT64_CONST_0 0LL
-#endif
-#ifndef TARGET_NATIVE_MATH_INT_INT64_CONST_1
- #define TARGET_NATIVE_MATH_INT_INT64_CONST_1 1LL
-#endif
-#ifndef TARGET_NATIVE_MATH_INT_INT64_CONST_MINUS_1
- #define TARGET_NATIVE_MATH_INT_INT64_CONST_MINUS_1 -1LL
-#endif
-
-/***************************** Datatypes *******************************/
-
-/***************************** Variables *******************************/
-
-/****************************** Macros *********************************/
-
-/* math operations */
-#ifndef TARGET_NATIVE_MATH_INT_INT64_ADD
- #define TARGET_NATIVE_MATH_INT_INT64_ADD(v1,v2) ((v1)+(v2))
-#endif
-#ifndef TARGET_NATIVE_MATH_INT_INT64_SUB
- #define TARGET_NATIVE_MATH_INT_INT64_SUB(v1,v2) ((v1)-(v2))
-#endif
-#ifndef TARGET_NATIVE_MATH_INT_INT64_MUL
- #define TARGET_NATIVE_MATH_INT_INT64_MUL(v1,v2) ((v1)*(v2))
-#endif
-#ifndef TARGET_NATIVE_MATH_INT_INT64_DIV
- #define TARGET_NATIVE_MATH_INT_INT64_DIV(v1,v2) ((v1)/(v2))
-#endif
-#ifndef TARGET_NATIVE_MATH_INT_INT64_MOD
- #define TARGET_NATIVE_MATH_INT_INT64_MOD(v1,v2) ((v1)%(v2))
-#endif
-
-#ifndef TARGET_NATIVE_MATH_INT_UINT64_ADD
- #define TARGET_NATIVE_MATH_INT_UINT64_ADD(v1,v2) ((v1)+(v2))
-#endif
-#ifndef TARGET_NATIVE_MATH_INT_UINT64_SUB
- #define TARGET_NATIVE_MATH_INT_UINT64_SUB(v1,v2) ((v1)-(v2))
-#endif
-#ifndef TARGET_NATIVE_MATH_INT_UINT64_MUL
- #define TARGET_NATIVE_MATH_INT_UINT64_MUL(v1,v2) ((v1)*(v2))
-#endif
-#ifndef TARGET_NATIVE_MATH_INT_UINT64_DIV
- #define TARGET_NATIVE_MATH_INT_UINT64_DIV(v1,v2) ((v1)/(v2))
-#endif
-#ifndef TARGET_NATIVE_MATH_INT_UINT64_MOD
- #define TARGET_NATIVE_MATH_INT_UINT64_MOD(v1,v2) ((v1)%(v2))
-#endif
-
-/* bit operations */
-#ifndef TARGET_NATIVE_MATH_INT_INT64_AND
- #define TARGET_NATIVE_MATH_INT_INT64_AND(v1,v2) ((v1)&(v2))
-#endif
-#ifndef TARGET_NATIVE_MATH_INT_INT64_OR
- #define TARGET_NATIVE_MATH_INT_INT64_OR(v1,v2) ((v1)|(v2))
-#endif
-#ifndef TARGET_NATIVE_MATH_INT_INT64_XOR
- #define TARGET_NATIVE_MATH_INT_INT64_XOR(v1,v2) ((v1)^(v2))
-#endif
-
-#ifndef TARGET_NATIVE_MATH_INT_UINT64_AND
- #define TARGET_NATIVE_MATH_INT_UINT64_AND(v1,v2) ((v1)&(v2))
-#endif
-#ifndef TARGET_NATIVE_MATH_INT_UINT64_OR
- #define TARGET_NATIVE_MATH_INT_UINT64_OR(v1,v2) ((v1)|(v2))
-#endif
-#ifndef TARGET_NATIVE_MATH_INT_UINT64_XOR
- #define TARGET_NATIVE_MATH_INT_UINT64_XOR(v1,v2) ((v1)^(v2))
-#endif
-
-/* shift operations */
-#ifndef TARGET_NATIVE_MATH_INT_INT64_SHIFTL
- #define TARGET_NATIVE_MATH_INT_INT64_SHIFTL(v,l) ((v)<<(l))
-#endif
-#ifndef TARGET_NATIVE_MATH_INT_INT64_SHIFTR
- #define TARGET_NATIVE_MATH_INT_INT64_SHIFTR(v,l) (((v)>>(l)) | (((v)>=0) ? 0 : (0xffffFFFFffffFFFFLL << (64-(l)))))
-#endif
-#ifndef TARGET_NATIVE_MATH_INT_UINT64_SHIFTR
- #define TARGET_NATIVE_MATH_INT_UINT64_SHIFTR(v,l) (((v)>>(l)) & ~(((v)>=0) ? 0 : (0xffffFFFFffffFFFFLL << (64-(l)))))
-#endif
-
-/* negation */
-#ifndef TARGET_NATIVE_MATH_INT_INT64_NEG
- #define TARGET_NATIVE_MATH_INT_INT64_NEG(v) (-(v))
-#endif
-
-/* increment/decrement routines */
-#ifndef TARGET_NATIVE_MATH_INT_INT64_INC
- #define TARGET_NATIVE_MATH_INT_INT64_INC(v) { v++; }
-#endif
-#ifndef TARGET_NATIVE_MATH_INT_INT64_DEC
- #define TARGET_NATIVE_MATH_INT_INT64_DEC(v) { v--; }
-#endif
-
-#ifndef TARGET_NATIVE_MATH_INT_UINT64_INC
- #define TARGET_NATIVE_MATH_INT_UINT64_INC(v) { v++; }
-#endif
-#ifndef TARGET_NATIVE_MATH_INT_UINT64_DEC
- #define TARGET_NATIVE_MATH_INT_UINT64_DEC(v) { v--; }
-#endif
-
-/* comparison routines */
-#ifndef TARGET_NATIVE_MATH_INT_INT64_EQ
- #define TARGET_NATIVE_MATH_INT_INT64_EQ(v1,v2) ((v1) == (v2))
-#endif
-#ifndef TARGET_NATIVE_MATH_INT_INT64_NE
- #define TARGET_NATIVE_MATH_INT_INT64_NE(v1,v2) ((v1) != (v2))
-#endif
-#ifndef TARGET_NATIVE_MATH_INT_INT64_LT
- #define TARGET_NATIVE_MATH_INT_INT64_LT(v1,v2) ((v1) < (v2))
-#endif
-#ifndef TARGET_NATIVE_MATH_INT_INT64_LE
- #define TARGET_NATIVE_MATH_INT_INT64_LE(v1,v2) ((v1) <= (v2))
-#endif
-#ifndef TARGET_NATIVE_MATH_INT_INT64_GT
- #define TARGET_NATIVE_MATH_INT_INT64_GT(v1,v2) ((v1) > (v2))
-#endif
-#ifndef TARGET_NATIVE_MATH_INT_INT64_GE
- #define TARGET_NATIVE_MATH_INT_INT64_GE(v1,v2) ((v1) >= (v2))
-#endif
-
-#ifndef TARGET_NATIVE_MATH_INT_UINT64_EQ
- #define TARGET_NATIVE_MATH_INT_UINT64_EQ(v1,v2) ((v1) == (v2))
-#endif
-#ifndef TARGET_NATIVE_MATH_INT_UINT64_NE
- #define TARGET_NATIVE_MATH_INT_UINT64_NE(v1,v2) ((v1) != (v2))
-#endif
-#ifndef TARGET_NATIVE_MATH_INT_UINT64_LT
- #define TARGET_NATIVE_MATH_INT_UINT64_LT(v1,v2) ((v1) < (v2))
-#endif
-#ifndef TARGET_NATIVE_MATH_INT_UINT64_LE
- #define TARGET_NATIVE_MATH_INT_UINT64_LE(v1,v2) ((v1) <= (v2))
-#endif
-#ifndef TARGET_NATIVE_MATH_INT_UINT64_GT
- #define TARGET_NATIVE_MATH_INT_UINT64_GT(v1,v2) ((v1) > (v2))
-#endif
-#ifndef TARGET_NATIVE_MATH_INT_UINT64_GE
- #define TARGET_NATIVE_MATH_INT_UINT64_GE(v1,v2) ((v1) >= (v2))
-#endif
-
-/* type conversion routines */
-#ifndef TARGET_NATIVE_MATH_INT_INT32_TO_INT64
- #define TARGET_NATIVE_MATH_INT_INT32_TO_INT64(v) ((jlong)(v))
-#endif
-#ifndef TARGET_NATIVE_MATH_INT_UINT32_TO_UINT64
- #define TARGET_NATIVE_MATH_INT_UINT32_TO_UINT64(v) ((jlong)(v))
-#endif
-#ifndef TARGET_NATIVE_MATH_INT_INT64_TO_INT32
- #define TARGET_NATIVE_MATH_INT_INT64_TO_INT32(v) ((jint )(v))
-#endif
-#ifndef TARGET_NATIVE_MATH_INT_UINT64_TO_UINT32
- #define TARGET_NATIVE_MATH_INT_UINT64_TO_UINT32(v) ((jint)(v))
-#endif
-#ifndef TARGET_NATIVE_MATH_INT_INT64_TO_DOUBLE
- #define TARGET_NATIVE_MATH_INT_INT64_TO_DOUBLE(v) ((jdouble)(v))
-#endif
-
-/* combine/split int32 low/high values <-> int64 values */
-#ifndef TARGET_NATIVE_MATH_INT_INT32_LOW_HIGH_TO_INT64
- #define TARGET_NATIVE_MATH_INT_INT32_LOW_HIGH_TO_INT64(low,high,v) \
- do { \
- (v)=((((jlong)(high)) << 32) | ((((jlong)(low)) << 0) & 0x00000000ffffFFFFLL)); \
- } while (0)
-#endif
-#ifndef TARGET_NATIVE_MATH_INT_UINT32_LOW_HIGH_TO_UINT64
- #define TARGET_NATIVE_MATH_INT_UINT32_LOW_HIGH_TO_UINT64(low,high,v) \
- do { \
- (v)=((((jlong)(high)) << 32) | ((((jlong)(low)) << 0) & 0x00000000ffffFFFFLL)); \
- } while (0)
-#endif
-#ifndef TARGET_NATIVE_MATH_INT_INT64_TO_INT32_LOW_HIGH
- #define TARGET_NATIVE_MATH_INT_INT64_TO_INT32_LOW_HIGH(v,low,high) \
- do { \
- (high)=((v) & 0xFFFFffff00000000L) >> 32; \
- (low) =((v) & 0x00000000FFFFffffL) >> 0; \
- } while (0)
-#endif
-#ifndef TARGET_NATIVE_MATH_INT_UINT64_TO_UINT32_LOW_HIGH
- #define TARGET_NATIVE_MATH_INT_UINT64_TO_UINT32_LOW_HIGH(v,low,high) \
- do { \
- (high)=((v) & 0xFFFFffff00000000L) >> 32; \
- (low) =((v) & 0x00000000FFFFffffL) >> 0; \
- } while (0)
-#endif
-
-/***************************** Functions *******************************/
-
-#ifdef __cplusplus
-extern "C"
-#endif
-
-#ifdef __cplusplus
-}
-#endif
-
-#endif /* __TARGET_GENERIC_MATH_INT__ */
-
-/* end of file */
-
diff --git a/native/target/generic/target_generic_misc.h b/native/target/generic/target_generic_misc.h
deleted file mode 100644
index 1174aa83c..000000000
--- a/native/target/generic/target_generic_misc.h
+++ /dev/null
@@ -1,203 +0,0 @@
-/* generic_math_int64.h - Native methods for 64bit math operations
- Copyright (C) 1998 Free Software Foundation, Inc.
-
-This file is part of GNU Classpath.
-
-GNU Classpath is free software; you can redistribute it and/or modify
-it under the terms of the GNU General Public License as published by
-the Free Software Foundation; either version 2, or (at your option)
-any later version.
-
-GNU Classpath is distributed in the hope that it will be useful, but
-WITHOUT ANY WARRANTY; without even the implied warranty of
-MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
-General Public License for more details.
-
-You should have received a copy of the GNU General Public License
-along with GNU Classpath; see the file COPYING. If not, write to the
-Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA
-02110-1301 USA.
-
-Linking this library statically or dynamically with other modules is
-making a combined work based on this library. Thus, the terms and
-conditions of the GNU General Public License cover the whole
-combination.
-
-As a special exception, the copyright holders of this library give you
-permission to link this library with independent modules to produce an
-executable, regardless of the license terms of these independent
-modules, and to copy and distribute the resulting executable under
-terms of your choice, provided that you also meet, for each linked
-independent module, the terms and conditions of the license of that
-module. An independent module is a module which is not derived from
-or based on this library. If you modify this library, you may extend
-this exception to your version of the library, but you are not
-obligated to do so. If you do not wish to do so, delete this
-exception statement from your version. */
-
-/*
-Description: generic target defintions of miscellaneous functions
-Systems : all
-*/
-
-#ifndef __TARGET_GENERIC_MISC__
-#define __TARGET_GENERIC_MISC__
-
-/* check if target_native_misc.h included */
-#ifndef __TARGET_NATIVE_MISC__
- #error Do NOT INCLUDE generic target files! Include the corresponding native target files instead!
-#endif
-
-/****************************** Includes *******************************/
-/* do not move; needed here because of some macro definitions */
-#include "config.h"
-
-#include <stdlib.h>
-#include <assert.h>
-
-#include "target_native.h"
-
-/****************** Conditional compilation switches *******************/
-
-/***************************** Constants *******************************/
-
-/***************************** Datatypes *******************************/
-
-/***************************** Variables *******************************/
-
-/****************************** Macros *********************************/
-
-/***********************************************************************\
-* Name : TARGET_NATIVE_MISC_FORMAT_STRING<n>
-* Purpose : format a string (with a fixed number of) arguments
-* Input : buffer - buffer for string
-* bufferSize - size of buffer
-* format - format string (like printf)
-* args - optional arguments (GNU CPP only!)
-* Output : -
-* Return : -
-* Side-effect: unknown
-* Notes : - this is a "safe" macro to format string; buffer-
-* overflows will be avoided. Direct usage of e. g.
-* snprintf() is not permitted because it is not ANSI C
-* (not portable!)
-* - do not use this routine in a function without
-* variable number of arguments (ellipses), because
-* va_list/va_start/va_end is used!
-\***********************************************************************/
-
-#ifndef TARGET_NATIVE_MISC_FORMAT_STRING0
- #include <stdarg.h>
- #define TARGET_NATIVE_MISC_FORMAT_STRING0(buffer,bufferSize,format) \
- do { \
- snprintf(buffer,bufferSize,format); \
- } while (0)
-#endif
-#ifndef TARGET_NATIVE_MISC_FORMAT_STRING1
- #include <stdarg.h>
- #define TARGET_NATIVE_MISC_FORMAT_STRING1(buffer,bufferSize,format,arg1) \
- do { \
- snprintf(buffer,bufferSize,format,arg1); \
- } while (0)
-#endif
-#ifndef TARGET_NATIVE_MISC_FORMAT_STRING2
- #include <stdarg.h>
- #define TARGET_NATIVE_MISC_FORMAT_STRING2(buffer,bufferSize,format,arg1,arg2) \
- do { \
- snprintf(buffer,bufferSize,format,arg1,arg2); \
- } while (0)
-#endif
-#ifndef TARGET_NATIVE_MISC_FORMAT_STRING3
- #include <stdarg.h>
- #define TARGET_NATIVE_MISC_FORMAT_STRING3(buffer,bufferSize,format,arg1,arg2,arg3) \
- do { \
- snprintf(buffer,bufferSize,format,arg1,arg2,arg3); \
- } while (0)
-#endif
-#ifndef TARGET_NATIVE_MISC_FORMAT_STRING4
- #include <stdarg.h>
- #define TARGET_NATIVE_MISC_FORMAT_STRING4(buffer,bufferSize,format,arg1,arg2,arg3,arg4) \
- do { \
- snprintf(buffer,bufferSize,format,arg1,arg2,arg3,arg4); \
- } while (0)
-#endif
-#ifndef TARGET_NATIVE_MISC_FORMAT_STRING5
- #include <stdarg.h>
- #define TARGET_NATIVE_MISC_FORMAT_STRING5(buffer,bufferSize,format,arg1,arg2,arg3,arg4,arg5) \
- do { \
- snprintf(buffer,bufferSize,format,arg1,arg2,arg3,arg4,arg5); \
- } while (0)
-#endif
-#ifndef TARGET_NATIVE_MISC_FORMAT_STRING6
- #include <stdarg.h>
- #define TARGET_NATIVE_MISC_FORMAT_STRING6(buffer,bufferSize,format,arg1,arg2,arg3,arg4,arg5,arg6) \
- do { \
- snprintf(buffer,bufferSize,format,arg1,arg2,arg3,arg4,arg5,arg6); \
- } while (0)
-#endif
-#ifndef TARGET_NATIVE_MISC_FORMAT_STRING7
- #include <stdarg.h>
- #define TARGET_NATIVE_MISC_FORMAT_STRING7(buffer,bufferSize,format,arg1,arg2,arg3,arg14,arg5,arg6,arg7) \
- do { \
- snprintf(buffer,bufferSize,format,arg1,arg2,arg3,arg4,arg5,arg6,arg7); \
- } while (0)
-#endif
-#ifndef TARGET_NATIVE_MISC_FORMAT_STRING8
- #include <stdarg.h>
- #define TARGET_NATIVE_MISC_FORMAT_STRING8(buffer,bufferSize,format,arg1,arg2,arg3,arg4,arg5,arg6,arg7,arg8) \
- do { \
- snprintf(buffer,bufferSize,format,arg1,arg2,arg3,arg4,arg5,arg6,arg7,arg8); \
- } while (0)
-#endif
-#ifndef TARGET_NATIVE_MISC_FORMAT_STRING9
- #include <stdarg.h>
- #define TARGET_NATIVE_MISC_FORMAT_STRING9(buffer,bufferSize,format,arg1,arg2,arg3,arg4,arg5,arg6,arg7,arg8,arg9) \
- do { \
- snprintf(buffer,bufferSize,format,arg1,arg2,arg3,arg4,arg5,arg6,arg7,arg8,arg9); \
- } while (0)
-#endif
-
-/***********************************************************************\
-* Name : TARGET_NATIVE_FORMAT_STRING_ELLIPSE
-* Purpose : format a string with arguments
-* Input : buffer - buffer for string
-* bufferSize - size of buffer
-* format - format string (like printf)
-* Output : -
-* Return : -
-* Side-effect: unknown
-* Notes : - this is a "safe" macro to format string; buffer-
-* overflows will be avoided. Direct usage of e. g.
-* snprintf() is not permitted because it is not ANSI C
-* (not portable!)
-* - do not use this routine in a function without
-* variable number of arguments (ellipses), because
-* va_list/va_start/va_end is used!
-\***********************************************************************/
-
-#ifndef TARGET_NATIVE_MISC_FORMAT_STRING_ELLIPSE
- #include <stdarg.h>
- #define TARGET_NATIVE_FORMAT_STRING_ELLIPSE(buffer,bufferSize,format) \
- do { \
- va_list __arguments; \
- \
- va_start(__arguments,format); \
- vsnprintf(buffer,bufferSize,format,__arguments); \
- va_end(__arguments); \
- } while (0)
-#endif
-
-/***************************** Functions *******************************/
-
-#ifdef __cplusplus
-extern "C" {
-#endif
-
-#ifdef __cplusplus
-}
-#endif
-
-#endif /* __TARGET_GENERIC_MISC__ */
-
-/* end of file */
-
diff --git a/native/target/generic/target_generic_network.h b/native/target/generic/target_generic_network.h
deleted file mode 100644
index 4488ea876..000000000
--- a/native/target/generic/target_generic_network.h
+++ /dev/null
@@ -1,1288 +0,0 @@
-/* target_generic_network.h - Native methods for network operations.
- Copyright (C) 1998, 2004, 2005 Free Software Foundation, Inc.
-
-This file is part of GNU Classpath.
-
-GNU Classpath is free software; you can redistribute it and/or modify
-it under the terms of the GNU General Public License as published by
-the Free Software Foundation; either version 2, or (at your option)
-any later version.
-
-GNU Classpath is distributed in the hope that it will be useful, but
-WITHOUT ANY WARRANTY; without even the implied warranty of
-MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
-General Public License for more details.
-
-You should have received a copy of the GNU General Public License
-along with GNU Classpath; see the file COPYING. If not, write to the
-Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA
-02110-1301 USA.
-
-Linking this library statically or dynamically with other modules is
-making a combined work based on this library. Thus, the terms and
-conditions of the GNU General Public License cover the whole
-combination.
-
-As a special exception, the copyright holders of this library give you
-permission to link this library with independent modules to produce an
-executable, regardless of the license terms of these independent
-modules, and to copy and distribute the resulting executable under
-terms of your choice, provided that you also meet, for each linked
-independent module, the terms and conditions of the license of that
-module. An independent module is a module which is not derived from
-or based on this library. If you modify this library, you may extend
-this exception to your version of the library, but you are not
-obligated to do so. If you do not wish to do so, delete this
-exception statement from your version. */
-
-/*
-Description: generic target defintions of network functions
-Systems : all
-*/
-
-#ifndef __TARGET_GENERIC_NETWORK__
-#define __TARGET_GENERIC_NETWORK__
-
-/* check if target_native_network.h included */
-#ifndef __TARGET_NATIVE_NETWORK__
- #error Do NOT INCLUDE generic target files! Include the corresponding native target files instead!
-#endif
-
-/****************************** Includes *******************************/
-/* do not move; needed here because of some macro definitions */
-#include "config.h"
-
-#include <stdlib.h>
-
-#include "target_native.h"
-
-/****************** Conditional compilation switches *******************/
-
-/***************************** Constants *******************************/
-
-/***************************** Datatypes *******************************/
-
-/***************************** Variables *******************************/
-
-/****************************** Macros *********************************/
-
-/***********************************************************************\
-* Name : TARGET_NATIVE_NETWORK_IPADDRESS_BYTES_TO_INT
-* Purpose : convert IP adddress (4 parts) into integer (host-format
-* 32bit)
-* Input : n0,n1,n2,n3 - IP address parts
-* Output : i - integer with IP address in host-format
-* Return : -
-* Side-effect: unknown
-* Notes : -
-\***********************************************************************/
-
-#ifndef TARGET_NATIVE_NETWORK_IPADDRESS_BYTES_TO_INT
- #define TARGET_NATIVE_NETWORK_IPADDRESS_BYTES_TO_INT(n0,n1,n2,n3,i) \
- do { \
- i=(((unsigned char)n0) << 24) | \
- (((unsigned char)n1) << 16) | \
- (((unsigned char)n2) << 8) | \
- (((unsigned char)n3) << 0); \
- } while (0)
-#endif
-
-/***********************************************************************\
-* Name : TARGET_NATIVE_NETWORK_INT_TO_IPADDRESS_BYTES
-* Purpose : convert IP adddress (4 parts) into integer (host-format
-* 32bit)
-* Input : n0,n1,n2,n3 - IP address parts
-* Output : i - integer with IP address in host-format
-* Return : -
-* Side-effect: unknown
-* Notes : -
-\***********************************************************************/
-
-#ifndef TARGET_NATIVE_NETWORK_INT_TO_IPADDRESS_BYTES
- #define TARGET_NATIVE_NETWORK_INT_TO_IPADDRESS_BYTES(i,n0,n1,n2,n3) \
- do { \
- n0=(i & 0xFF000000) >> 24; \
- n1=(i & 0x00FF0000) >> 16; \
- n2=(i & 0x0000FF00) >> 8; \
- n3=(i & 0x000000FF) >> 0; \
- } while (0)
-#endif
-
-/***********************************************************************\
-* Name : TARGET_NATIVE_NETWORK_GET_HOSTNAME
-* Purpose : get hostname
-* Input : maxNameLen - max. length of name
-* Output : name - name (NUL terminated)
-* result - TARGET_NATIVE_OK if no error occurred,
-* TARGET_NATIVE_ERROR otherwise
-* Return : -
-* Side-effect: unknown
-* Notes : -
-\***********************************************************************/
-
-#ifndef TARGET_NATIVE_NETWORK_GET_HOSTNAME
- #include <unistd.h>
- #define TARGET_NATIVE_NETWORK_GET_HOSTNAME(name,maxNameLen,result) \
- do { \
- result=(gethostname(name,maxNameLen-1)==0)?TARGET_NATIVE_OK:TARGET_NATIVE_ERROR; \
- name[maxNameLen-1]='\0'; \
- } while (0)
-#endif
-
-/***********************************************************************\
-* Name : TARGET_NATIVE_NETWORK_GET_HOSTNAME_BY_ADDRESS
-* Purpose : get hostname by address
-* Input : address - IP address (32bit, NOT network byte order!)
-* maxNameLen - max. length of name
-* Output : name - name (NUL terminated)
-* result - TARGET_NATIVE_OK if no error occurred,
-* TARGET_NATIVE_ERROR otherwise
-* Return : -
-* Side-effect: unknown
-* Notes : -
-\***********************************************************************/
-
-/* XXX NYI??? reentrant? */
-#ifndef TARGET_NATIVE_NETWORK_GET_HOSTNAME_BY_ADDRESS
- #include <netdb.h>
- #define TARGET_NATIVE_NETWORK_GET_HOSTNAME_BY_ADDRESS(address,name,maxNameLen,result) \
- do { \
- int __networkAddress; \
- struct hostent *__hostEntry; \
- \
- __networkAddress=htonl(address); \
- __hostEntry = gethostbyaddr((char*)&__networkAddress,sizeof(__networkAddress),AF_INET); \
- if (__hostEntry!=NULL) \
- { \
- strncpy(name,__hostEntry->h_name,maxNameLen-1); \
- name[maxNameLen]='\0'; \
- result=TARGET_NATIVE_OK; \
- } \
- else \
- { \
- result=TARGET_NATIVE_ERROR; \
- } \
- } while (0)
-#endif
-
-/***********************************************************************\
-* Name : TARGET_NATIVE_NETWORK_GET_HOSTNAME_BY_NAME
-* Purpose : get hostname by name
-* Input : name - hostname
-* maxAddressSize - max. size of address array
-* Output : addresses - host adddresses (array, NOT in network
-* byte order!)
-* addressCount - number of entries in address array
-* result - TARGET_NATIVE_OK if no error occurred,
-* TARGET_NATIVE_ERROR otherwise
-* Return : -
-* Side-effect: unknown
-* Notes : -
-\***********************************************************************/
-
-/* XXX NYI??? reentrant? */
-#ifndef TARGET_NATIVE_NETWORK_GET_HOSTNAME_BY_NAME
- #include <netdb.h>
- #define TARGET_NATIVE_NETWORK_GET_HOSTNAME_BY_NAME(name,addresses,maxAddressSize,addressCount,result) \
- do { \
- struct hostent *__hostEntry; \
- \
- addressCount=0; \
- \
- __hostEntry = gethostbyname(name); \
- if (__hostEntry!=NULL) \
- { \
- while ((addressCount<maxAddressSize) && (__hostEntry->h_addr_list[addressCount]!=NULL)) \
- { \
- addresses[addressCount]=ntohl(*(int*)(__hostEntry->h_addr_list[addressCount])); \
- addressCount++; \
- } \
- result=TARGET_NATIVE_OK; \
- } \
- else \
- { \
- result=TARGET_NATIVE_ERROR; \
- } \
- } while (0)
-#endif
-
-/***********************************************************************\
-* Name : TARGET_NATIVE_NETWORK_SOCKET_OPEN_STREAM
-* Purpose : open stream socket
-* Input : -
-* Output : socketDescriptor - socket descriptor
-* result - TARGET_NATIVE_OK if no error occurred,
-* TARGET_NATIVE_ERROR otherwise
-* Return : -
-* Side-effect: unknown
-* Notes : -
-\***********************************************************************/
-
-#ifndef TARGET_NATIVE_NETWORK_SOCKET_OPEN_STREAM
- #include <sys/types.h>
- #include <sys/socket.h>
- #include <fcntl.h>
- #define TARGET_NATIVE_NETWORK_SOCKET_OPEN_STREAM(socketDescriptor,result) \
- do { \
- socketDescriptor=socket(AF_INET,SOCK_STREAM,0); \
- fcntl(socketDescriptor,F_SETFD,FD_CLOEXEC); \
- result=(socketDescriptor!=-1)?TARGET_NATIVE_OK:TARGET_NATIVE_ERROR; \
- } while (0)
-#endif
-
-/***********************************************************************\
-* Name : TARGET_NATIVE_NETWORK_SOCKET_OPEN_DATAGRAM
-* Purpose : open datagram socket
-* Input : -
-* Output : socketDescriptor - socket descriptor
-* result - TARGET_NATIVE_OK if no error occurred,
-* TARGET_NATIVE_ERROR otherwise
-* Return : -
-* Side-effect: unknown
-* Notes : -
-\***********************************************************************/
-
-#ifndef TARGET_NATIVE_NETWORK_SOCKET_OPEN_DATAGRAM
- #include <sys/types.h>
- #include <sys/socket.h>
- #include <fcntl.h>
- #define TARGET_NATIVE_NETWORK_SOCKET_OPEN_DATAGRAM(socketDescriptor,result) \
- do { \
- socketDescriptor=socket(AF_INET,SOCK_DGRAM,0); \
- fcntl(socketDescriptor,F_SETFD,FD_CLOEXEC); \
- result=(socketDescriptor!=-1)?TARGET_NATIVE_OK:TARGET_NATIVE_ERROR; \
- } while (0)
-#endif
-
-/***********************************************************************\
-* Name : TARGET_NATIVE_NETWORK_SOCKET_CLOSE
-* Purpose : close socket
-* Input : socketDescriptor - socket descriptor
-* Output : result - TARGET_NATIVE_OK if no error occurred,
-* TARGET_NATIVE_ERROR otherwise
-* Return : -
-* Side-effect: unknown
-* Notes : -
-\***********************************************************************/
-
-#ifndef TARGET_NATIVE_NETWORK_SOCKET_CLOSE
- #include <unistd.h>
- #define TARGET_NATIVE_NETWORK_SOCKET_CLOSE(socketDescriptor,result) \
- do { \
- result=(close(socketDescriptor)==0)?TARGET_NATIVE_OK:TARGET_NATIVE_ERROR; \
- } while (0)
-#endif
-
-/***********************************************************************\
-* Name : TARGET_NATIVE_NETWORK_SOCKET_CONNECT
-* Purpose : connect socket
-* Input : socketDescriptor - socket descriptor
-* address - address (network format???)
-* port - port number (NOT in network byte order!)
-* Output : result - TARGET_NATIVE_OK if no error occurred,
-* TARGET_NATIVE_ERROR otherwise
-* Return : -
-* Side-effect: unknown
-* Notes : -
-\***********************************************************************/
-
-#ifndef TARGET_NATIVE_NETWORK_SOCKET_CONNECT
- #include <sys/types.h>
- #include <sys/socket.h>
- #include <netinet/in.h>
- #define TARGET_NATIVE_NETWORK_SOCKET_CONNECT(socketDescriptor,address,port,result) \
- do { \
- struct sockaddr_in __socketAddress; \
- \
- memset(&__socketAddress,0,sizeof(__socketAddress)); \
- __socketAddress.sin_family = AF_INET; \
- __socketAddress.sin_addr.s_addr = htonl(address); \
- __socketAddress.sin_port = htons(((short)port)); \
- \
- result=(connect(socketDescriptor,(struct sockaddr*)&__socketAddress,sizeof(__socketAddress))==0)?TARGET_NATIVE_OK:TARGET_NATIVE_ERROR; \
- } while (0)
-#endif
-
-/***********************************************************************\
-* Name : TARGET_NATIVE_NETWORK_SOCKET_BIND
-* Purpose : bind socket
-* Input : socketDescriptor - socket descriptor
-* address - address (NOT ??? in network byte order!)
-* port - port (NOT in network byte order!)
-* Output : result - TARGET_NATIVE_OK if no error occurred,
-* TARGET_NATIVE_ERROR otherwise
-* Return : -
-* Side-effect: unknown
-* Notes : -
-\***********************************************************************/
-
-/* XXX ??? address in network byte order? */
-#ifndef TARGET_NATIVE_NETWORK_SOCKET_BIND
- #include <sys/types.h>
- #include <sys/socket.h>
- #include <netinet/in.h>
- #define TARGET_NATIVE_NETWORK_SOCKET_BIND(socketDescriptor,address,port,result) \
- do { \
- struct sockaddr_in __socketAddress; \
- \
- memset(&__socketAddress,0,sizeof(__socketAddress)); \
- __socketAddress.sin_family = AF_INET; \
- __socketAddress.sin_addr.s_addr = htonl(address); \
- __socketAddress.sin_port = htons(((short)port)); \
- \
- result=(bind(socketDescriptor,(struct sockaddr*)&__socketAddress,sizeof(__socketAddress))==0)?TARGET_NATIVE_OK:TARGET_NATIVE_ERROR; \
- } while (0)
-#endif
-
-/***********************************************************************\
-* Name : TARGET_NATIVE_NETWORK_SOCKET_LISTEN
-* Purpose : listen socket
-* Input : socketDescriptor - socket descriptor
-* maxQueueLength - max. number of pending connections
-* Output : result - TARGET_NATIVE_OK if no error occurred,
-* TARGET_NATIVE_ERROR otherwise
-* Return : -
-* Side-effect: unknown
-* Notes : -
-\***********************************************************************/
-
-/* XXX ??? address in network byte order? */
-#ifndef TARGET_NATIVE_NETWORK_SOCKET_LISTEN
- #include <sys/socket.h>
- #define TARGET_NATIVE_NETWORK_SOCKET_LISTEN(socketDescriptor,maxQueueLength,result) \
- do { \
- result=(listen(socketDescriptor,maxQueueLength)==0)?TARGET_NATIVE_OK:TARGET_NATIVE_ERROR; \
- } while (0)
-#endif
-
-/***********************************************************************\
-* Name : TARGET_NATIVE_NETWORK_SOCKET_ACCEPT
-* Purpose : accept socket
-* Input : socketDescriptor - socket descriptor
-* Output : result - TARGET_NATIVE_OK if no error occurred,
-* TARGET_NATIVE_ERROR otherwise
-* Return : -
-* Side-effect: unknown
-* Notes : -
-\***********************************************************************/
-
-/* XXX ??? address in network byte order? */
-#ifndef TARGET_NATIVE_NETWORK_SOCKET_ACCEPT
- #include <sys/types.h>
- #include <sys/socket.h>
- #include <netinet/in.h>
- #define TARGET_NATIVE_NETWORK_SOCKET_ACCEPT(socketDescriptor,newSocketDescriptor,result) \
- do { \
- struct sockaddr_in __socketAddress; \
- socklen_t __socketAddressLength; \
- \
- memset(&__socketAddress,0,sizeof(__socketAddress)); \
- __socketAddressLength=sizeof(__socketAddress); \
- newSocketDescriptor=accept(socketDescriptor,(struct sockaddr*)&__socketAddress,&__socketAddressLength); \
- result=(newSocketDescriptor!=-1)?TARGET_NATIVE_OK:TARGET_NATIVE_ERROR; \
- } while (0)
-#endif
-
-/***********************************************************************\
-* Name : TARGET_NATIVE_NETWORK_SOCKET_GET_LOCAL_INFO
-* Purpose : get local socket data info
-* Input : socketDescriptor - socket descriptor
-* Output : localAddress - local address (NOT in network byte order!)
-* localPort - local port number (NOT in network byte order!)
-* result - TARGET_NATIVE_OK if no error occurred,
-* TARGET_NATIVE_ERROR otherwise
-* Return : -
-* Side-effect: unknown
-* Notes : -
-\***********************************************************************/
-
-#ifndef TARGET_NATIVE_NETWORK_SOCKET_GET_LOCAL_INFO
- #include <sys/socket.h>
- #include <netinet/in.h>
- #define TARGET_NATIVE_NETWORK_SOCKET_GET_LOCAL_INFO(socketDescriptor,localAddress,localPort,result) \
- do { \
- struct sockaddr_in __socketAddress; \
- socklen_t __socketAddressLength; \
- \
- localAddress=0; \
- localPort =0; \
- \
- __socketAddressLength=sizeof(__socketAddress); \
- result=(getsockname(socketDescriptor,(struct sockaddr*)&__socketAddress,&__socketAddressLength)==0)?TARGET_NATIVE_OK:TARGET_NATIVE_ERROR; \
- if (result==TARGET_NATIVE_OK) \
- { \
- localAddress=ntohl(__socketAddress.sin_addr.s_addr); \
- localPort =ntohs(__socketAddress.sin_port); \
- } \
- } while (0)
-#endif
-
-/***********************************************************************\
-* Name : TARGET_NATIVE_NETWORK_SOCKET_GET_REMOTE_INFO
-* Purpose : get remote socket data info
-* Input : socketDescriptor - socket descriptor
-* Output : remoteAddress - remote address (NOT in network byte order!)
-* remotePort - remote port number (NOT in network byte order!)
-* : result - TARGET_NATIVE_OK if no error occurred,
-* TARGET_NATIVE_ERROR otherwise
-* Return : -
-* Side-effect: unknown
-* Notes : -
-\***********************************************************************/
-
-#ifndef TARGET_NATIVE_NETWORK_SOCKET_GET_REMOTE_INFO
- #include <sys/socket.h>
- #include <netinet/in.h>
- #define TARGET_NATIVE_NETWORK_SOCKET_GET_REMOTE_INFO(socketDescriptor,remoteAddress,remotePort,result) \
- do { \
- struct sockaddr_in __socketAddress; \
- socklen_t __socketAddressLength; \
- \
- remoteAddress=0; \
- remotePort =0; \
- \
- __socketAddressLength=sizeof(__socketAddress); \
- result=(getpeername(socketDescriptor,(struct sockaddr*)&__socketAddress,&__socketAddressLength)==0)?TARGET_NATIVE_OK:TARGET_NATIVE_ERROR; \
- if (result==TARGET_NATIVE_OK) \
- { \
- remoteAddress=ntohl(__socketAddress.sin_addr.s_addr); \
- remotePort =ntohs(__socketAddress.sin_port); \
- } \
- } while (0)
-#endif
-
-/***********************************************************************\
-* Name : TARGET_NATIVE_NETWORK_SOCKET_RECEIVE_AVAILABLE
-* Purpose : get number of available bytes for receive
-* Input : socketDescriptor - socket descriptor
-* Output : bytesAvailable - available bytes for receive
-* : result - TARGET_NATIVE_OK if no error occurred,
-* TARGET_NATIVE_ERROR otherwise
-* Return : -
-* Side-effect: unknown
-* Notes : -
-\***********************************************************************/
-
-#ifndef TARGET_NATIVE_NETWORK_SOCKET_RECEIVE_AVAILABLE
- #include <sys/ioctl.h>
- #define TARGET_NATIVE_NETWORK_SOCKET_RECEIVE_AVAILABLE(socketDescriptor,bytesAvailable,result) \
- do { \
- int __value; \
- \
- bytesAvailable=0; \
- \
- result=(ioctl(socketDescriptor,FIONREAD,&__value)==0)?TARGET_NATIVE_OK:TARGET_NATIVE_ERROR; \
- if (result==TARGET_NATIVE_OK) \
- { \
- bytesAvailable=__value; \
- } \
- } while (0)
-#endif
-
-/***********************************************************************\
-* Name : TARGET_NATIVE_NETWORK_SOCKET_RECEIVE
-* Purpose : receive data from socket
-* Input : socketDescriptor - socket descriptor
-* maxLength - max. size of bfufer
-* Output : buffer - received data
-* bytesReceive - length of received data
-* Return : -
-* Side-effect: unknown
-* Notes : -
-\***********************************************************************/
-
-#ifndef TARGET_NATIVE_NETWORK_SOCKET_RECEIVE
- #include <sys/types.h>
- #include <sys/socket.h>
- #include <netinet/in.h>
- #define TARGET_NATIVE_NETWORK_SOCKET_RECEIVE(socketDescriptor,buffer,maxLength,bytesReceived) \
- do { \
- struct sockaddr_in __socketAddress; \
- socklen_t __socketAddressLength; \
- \
- memset(&__socketAddress,0,sizeof(__socketAddress)); \
- __socketAddressLength=sizeof(__socketAddress); \
- bytesReceived=recv(socketDescriptor,buffer,maxLength,0); \
- } while (0)
-#endif
-
-/***********************************************************************\
-* Name : TARGET_NATIVE_NETWORK_SOCKET_RECEIVE_WITH_ADDRESS_PORT
-* Purpose : receive data from socket
-* Input : socketDescriptor - socket descriptor
-* maxLength - max. size of bfufer
-* Output : buffer - received data
-* address - from address (NOT in network byte order!)
-* port - from port (NOT in network byte order!)
-* bytesReceive - length of received data
-* Return : -
-* Side-effect: unknown
-* Notes : -
-\***********************************************************************/
-
-#ifndef TARGET_NATIVE_NETWORK_SOCKET_RECEIVE_WITH_ADDRESS_PORT
- #include <sys/types.h>
- #include <sys/socket.h>
- #include <netinet/in.h>
- #define TARGET_NATIVE_NETWORK_SOCKET_RECEIVE_WITH_ADDRESS_PORT(socketDescriptor,buffer,maxLength,address,port,bytesReceived) \
- do { \
- struct sockaddr_in __socketAddress; \
- socklen_t __socketAddressLength; \
- \
- port=0; \
- \
- memset(&__socketAddress,0,sizeof(__socketAddress)); \
- __socketAddressLength=sizeof(__socketAddress); \
- bytesReceived=recvfrom(socketDescriptor,buffer,maxLength,0,(struct sockaddr*)&__socketAddress,&__socketAddressLength); \
- if (__socketAddressLength==sizeof(__socketAddress)) \
- { \
- address=ntohl(__socketAddress.sin_addr.s_addr); \
- port =ntohs(__socketAddress.sin_port); \
- } \
- } while (0)
-#endif
-
-/***********************************************************************\
-* Name : TARGET_NATIVE_NETWORK_SOCKET_SEND
-* Purpose : send data to socket
-* Input : socketDescriptor - socket descriptor
-* : buffer - data to send
-* length - length of data to send
-* Output : bytesSent - number of bytes sent, -1 otherwise
-* Side-effect: unknown
-* Notes : -
-\***********************************************************************/
-
-#ifndef TARGET_NATIVE_NETWORK_SOCKET_SEND
- #include <sys/types.h>
- #include <sys/socket.h>
- #include <netinet/in.h>
- #define TARGET_NATIVE_NETWORK_SOCKET_SEND(socketDescriptor,buffer,length,bytesSent) \
- do { \
- bytesSent=send(socketDescriptor,buffer,length,0); \
- } while (0)
-#endif
-
-/***********************************************************************\
-* Name : TARGET_NATIVE_NETWORK_SOCKET_SEND_WITH_ADDRESS_PORT
-* Purpose : send data to socket
-* Input : socketDescriptor - socket descriptor
-* : buffer - data to send
-* length - length of data to send
-* Address - to address (NOT in network byte order!)
-* Port - to port (NOT in network byte order!)
-* Output : bytesSent - number of bytes sent, -1 otherwise
-* Side-effect: unknown
-* Notes : -
-\***********************************************************************/
-
-#ifndef TARGET_NATIVE_NETWORK_SOCKET_SEND_WITH_ADDRESS_PORT
- #include <sys/types.h>
- #include <sys/socket.h>
- #include <netinet/in.h>
- #define TARGET_NATIVE_NETWORK_SOCKET_SEND_WITH_ADDRESS_PORT(socketDescriptor,buffer,length,address,port,bytesSent) \
- do { \
- struct sockaddr_in __socketAddress; \
- \
- memset(&__socketAddress,0,sizeof(__socketAddress)); \
- __socketAddress.sin_family = AF_INET; \
- __socketAddress.sin_addr.s_addr = htonl(address); \
- __socketAddress.sin_port = htons((short)port); \
- bytesSent=sendto(socketDescriptor,buffer,length,0,(struct sockaddr*)&__socketAddress,sizeof(__socketAddress)); \
- } while (0)
-#endif
-
-/***********************************************************************\
-* Name : TARGET_NATIVE_NETWORK_SOCKET_SET_OPTION_TCP_NODELAY
-* Purpose : set socket option TCP_NODELAY
-* Input : socketDescriptor - socket descriptor
-* flag - 1 or 0
-* Output : result - TARGET_NATIVE_OK if no error occurred,
-* TARGET_NATIVE_ERROR otherwise
-* Return : -
-* Side-effect: unknown
-* Notes : -
-\***********************************************************************/
-
-#ifndef TARGET_NATIVE_NETWORK_SOCKET_SET_OPTION_TCP_NODELAY
- #include <sys/types.h>
- #include <sys/socket.h>
- #include <netinet/tcp.h>
- #define TARGET_NATIVE_NETWORK_SOCKET_SET_OPTION_TCP_NODELAY(socketDescriptor,flag,result) \
- do { \
- int __value; \
- \
- __value=flag; \
- result=(setsockopt(socketDescriptor,IPPROTO_TCP,TCP_NODELAY,&__value,sizeof(__value))==0)?TARGET_NATIVE_OK:TARGET_NATIVE_ERROR; \
- } while (0)
-#endif
-
-/***********************************************************************\
-* Name : TARGET_NATIVE_NETWORK_SOCKET_SET_OPTION_SO_LINGER
-* Purpose : set socket option SO_LINGER
-* Input : socketDescriptor - socket descriptor
-* flag - 1 or 0
-* value - linger value
-* Output : result - TARGET_NATIVE_OK if no error occurred,
-* TARGET_NATIVE_ERROR otherwise
-* Return : -
-* Side-effect: unknown
-* Notes : -
-\***********************************************************************/
-
-#ifndef TARGET_NATIVE_NETWORK_SOCKET_SET_OPTION_SO_LINGER
- #include <sys/types.h>
- #include <sys/socket.h>
- #define TARGET_NATIVE_NETWORK_SOCKET_SET_OPTION_SO_LINGER(socketDescriptor,flag,value,result) \
- do { \
- struct linger __linger; \
- \
- memset(&__linger,0,sizeof(__linger)); \
- if (flag) \
- { \
- __linger.l_onoff=0; \
- } \
- else \
- { \
- __linger.l_linger=value; \
- __linger.l_onoff =1; \
- } \
- result=(setsockopt(socketDescriptor,SOL_SOCKET,SO_LINGER,&__linger,sizeof(__linger))==0)?TARGET_NATIVE_OK:TARGET_NATIVE_ERROR; \
- } while (0)
-#endif
-
-/***********************************************************************\
-* Name : TARGET_NATIVE_NETWORK_SOCKET_SET_OPTION_SO_TIMEOUT
-* Purpose : set socket option SO_TIMEOUT
-* Input : socketDescriptor - socket descriptor
-* flag - 1 or 0
-* Output : result - TARGET_NATIVE_OK if no error occurred,
-* TARGET_NATIVE_ERROR otherwise
-* Return : -
-* Side-effect: unknown
-* Notes : -
-\***********************************************************************/
-
-#ifndef TARGET_NATIVE_NETWORK_SOCKET_SET_OPTION_SO_TIMEOUT
- #include <sys/types.h>
- #include <sys/socket.h>
-#if TIME_WITH_SYS_TIME
-# include <sys/time.h>
-# include <time.h>
-#else
-# if HAVE_SYS_TIME_H
-# include <sys/time.h>
-# else
-# include <time.h>
-# endif
-#endif
- #define TARGET_NATIVE_NETWORK_SOCKET_SET_OPTION_SO_TIMEOUT(socketDescriptor,flag,result) \
- do { \
- struct timeval __value; \
- \
- __value.tv_sec = flag / 1000; \
- __value.tv_usec = (flag % 1000) * 1000; \
- result=(setsockopt(socketDescriptor,SOL_SOCKET,SO_TIMEOUT,&__value,sizeof(__value))==0)?TARGET_NATIVE_OK:TARGET_NATIVE_ERROR; \
- } while (0)
-#endif
-
-/***********************************************************************\
-* Name : TARGET_NATIVE_NETWORK_SOCKET_SET_OPTION_SO_SNDBUF
-* Purpose : set socket option SO_SNDBUF
-* Input : socketDescriptor - socket descriptor
-* size - size of send buffer
-* Output : result - TARGET_NATIVE_OK if no error occurred,
-* TARGET_NATIVE_ERROR otherwise
-* Return : -
-* Side-effect: unknown
-* Notes : -
-\***********************************************************************/
-
-#ifndef TARGET_NATIVE_NETWORK_SOCKET_SET_OPTION_SO_SNDBUF
- #include <sys/types.h>
- #include <sys/socket.h>
- #define TARGET_NATIVE_NETWORK_SOCKET_SET_OPTION_SO_SNDBUF(socketDescriptor,size,result) \
- do { \
- int __value; \
- \
- __value=size; \
- result=(setsockopt(socketDescriptor,SOL_SOCKET,SO_SNDBUF,&__value,sizeof(__value))==0)?TARGET_NATIVE_OK:TARGET_NATIVE_ERROR; \
- } while (0)
-#endif
-
-/***********************************************************************\
-* Name : TARGET_NATIVE_NETWORK_SOCKET_SET_OPTION_SO_RCDBUF
-* Purpose : set socket option SO_RCDBUF
-* Input : socketDescriptor - socket descriptor
-* size - size of receive buffer
-* Output : result - TARGET_NATIVE_OK if no error occurred,
-* TARGET_NATIVE_ERROR otherwise
-* Return : -
-* Side-effect: unknown
-* Notes : -
-\***********************************************************************/
-
-#ifndef TARGET_NATIVE_NETWORK_SOCKET_SET_OPTION_SO_RCDBUF
- #include <sys/types.h>
- #include <sys/socket.h>
- #define TARGET_NATIVE_NETWORK_SOCKET_SET_OPTION_SO_RCDBUF(socketDescriptor,size,result) \
- do { \
- int __value; \
- \
- __value=size; \
- result=(setsockopt(socketDescriptor,SOL_SOCKET,SO_RCVBUF,&__value,sizeof(__value))==0)?TARGET_NATIVE_OK:TARGET_NATIVE_ERROR; \
- } while (0)
-#endif
-
-/***********************************************************************\
-* Name : TARGET_NATIVE_NETWORK_SOCKET_SET_OPTION_IP_TTL
-* Purpose : set socket option IP_TTL
-* Input : socketDescriptor - socket descriptor
-* value - value
-* Output : result - TARGET_NATIVE_OK if no error occurred,
-* TARGET_NATIVE_ERROR otherwise
-* Return : -
-* Side-effect: unknown
-* Notes : -
-\***********************************************************************/
-
-#ifndef TARGET_NATIVE_NETWORK_SOCKET_SET_OPTION_IP_TTL
- #include <sys/types.h>
- #include <sys/socket.h>
- #include <netinet/in.h>
- #define TARGET_NATIVE_NETWORK_SOCKET_SET_OPTION_IP_TTL(socketDescriptor,value,result) \
- do { \
- int __value; \
- \
- __value=value; \
- result=(setsockopt(socketDescriptor,IPPROTO_IP,IP_TTL,&__value,sizeof(__value))==0)?TARGET_NATIVE_OK:TARGET_NATIVE_ERROR; \
- } while (0)
-#endif
-
-/***********************************************************************\
-* Name : TARGET_NATIVE_NETWORK_SOCKET_SET_OPTION_IP_MULTICAST_IF
-* Purpose : set socket option IP_MULTICAST_IF
-* Input : socketDescriptor - socket descriptor
-* address - integer with IP address in host-format
-* Output : result - TARGET_NATIVE_OK if no error occurred,
-* TARGET_NATIVE_ERROR otherwise
-* Return : -
-* Side-effect: unknown
-* Notes : -
-\***********************************************************************/
-
-#ifndef TARGET_NATIVE_NETWORK_SOCKET_SET_OPTION_IP_MULTICAST_IF
- #include <sys/types.h>
- #include <sys/socket.h>
- #include <netinet/in.h>
- #define TARGET_NATIVE_NETWORK_SOCKET_SET_OPTION_IP_MULTICAST_IF(socketDescriptor,address,result) \
- do { \
- struct sockaddr_in __socketAddress; \
- \
- memset(&__socketAddress,0,sizeof(__socketAddress)); \
- __socketAddress.sin_family = AF_INET; \
- __socketAddress.sin_addr.s_addr = htonl(address); \
- result=(setsockopt(socketDescriptor,IPPROTO_IP,IP_MULTICAST_IF,&__socketAddress,sizeof(__socketAddress))==0)?TARGET_NATIVE_OK:TARGET_NATIVE_ERROR; \
- } while (0)
-#endif
-
-/***********************************************************************\
-* Name : TARGET_NATIVE_NETWORK_SOCKET_SET_OPTION_REUSE_ADDRESS
-* Purpose : set socket option REUSE_ADDRESS
-* Input : socketDescriptor - socket descriptor
-* flag - 1 or 0
-* Output : result - TARGET_NATIVE_OK if no error occurred,
-* TARGET_NATIVE_ERROR otherwise
-* Return : -
-* Side-effect: unknown
-* Notes : -
-\***********************************************************************/
-
-#ifndef TARGET_NATIVE_NETWORK_SOCKET_SET_OPTION_REUSE_ADDRESS
- #include <sys/types.h>
- #include <sys/socket.h>
- #include <netinet/in.h>
- #define TARGET_NATIVE_NETWORK_SOCKET_SET_OPTION_REUSE_ADDRESS(socketDescriptor,flag,result) \
- do { \
- int __value; \
- \
- __value=flag; \
- result=(setsockopt(socketDescriptor,SOL_SOCKET,SO_REUSEADDR,&__value,sizeof(__value))==0)?TARGET_NATIVE_OK:TARGET_NATIVE_ERROR; \
- } while (0)
-#endif
-
-/***********************************************************************\
-* Name : TARGET_NATIVE_NETWORK_SOCKET_SET_OPTION_ADD_MEMBERSHIP
-* Purpose : set socket option IP_ADD_MEMBERSHIP
-* Input : socketDescriptor - socket descriptor
-* address - network address (host-format)
-* Output : result - TARGET_NATIVE_OK if no error occurred,
-* TARGET_NATIVE_ERROR otherwise
-* Return : -
-* Side-effect: unknown
-* Notes : -
-\***********************************************************************/
-
-#ifndef TARGET_NATIVE_NETWORK_SOCKET_SET_OPTION_ADD_MEMBERSHIP
- #include <sys/types.h>
- #include <sys/socket.h>
- #include <netinet/in.h>
- #define TARGET_NATIVE_NETWORK_SOCKET_SET_OPTION_ADD_MEMBERSHIP(socketDescriptor,address,result) \
- do { \
- struct ip_mreq __request; \
- \
- memset(&__request,0,sizeof(__request)); \
- __request.imr_multiaddr.s_addr=htonl(address); \
- __request.imr_interface.s_addr=INADDR_ANY; \
- result=(setsockopt(socketDescriptor,IPPROTO_IP,IP_ADD_MEMBERSHIP,&__request,sizeof(__request))==0)?TARGET_NATIVE_OK:TARGET_NATIVE_ERROR; \
- } while (0)
-#endif
-
-/***********************************************************************\
-* Name : TARGET_NATIVE_NETWORK_SOCKET_SET_OPTION_DROP_MEMBERSHIP
-* Purpose : set socket option IP_DROP_MEMBERSHIP
-* Input : socketDescriptor - socket descriptor
-* address - network address (host-format)
-* Output : result - TARGET_NATIVE_OK if no error occurred,
-* TARGET_NATIVE_ERROR otherwise
-* Return : -
-* Side-effect: unknown
-* Notes : -
-\***********************************************************************/
-
-#ifndef TARGET_NATIVE_NETWORK_SOCKET_SET_OPTION_DROP_MEMBERSHIP
- #include <sys/types.h>
- #include <sys/socket.h>
- #include <netinet/in.h>
- #define TARGET_NATIVE_NETWORK_SOCKET_SET_OPTION_DROP_MEMBERSHIP(socketDescriptor,address,result) \
- do { \
- struct ip_mreq __request; \
- \
- memset(&__request,0,sizeof(__request)); \
- __request.imr_multiaddr.s_addr=htonl(address); \
- __request.imr_interface.s_addr=INADDR_ANY; \
- result=(setsockopt(socketDescriptor,IPPROTO_IP,IP_DROP_MEMBERSHIP,&__request,sizeof(__request))==0)?TARGET_NATIVE_OK:TARGET_NATIVE_ERROR; \
- } while (0)
-#endif
-
-/***********************************************************************\
-* Name : TARGET_NATIVE_NETWORK_SOCKET_SET_OPTION_KEEP_ALIVE
-* Purpose : set socket option KEEP_ALIVE
-* Input : socketDescriptor - socket descriptor
-* flag - 1 or 0
-* Output : result - TARGET_NATIVE_OK if no error occurred,
-* TARGET_NATIVE_ERROR otherwise
-* Return : -
-* Side-effect: unknown
-* Notes : -
-\***********************************************************************/
-
-#ifndef TARGET_NATIVE_NETWORK_SOCKET_SET_OPTION_KEEP_ALIVE
- #include <sys/types.h>
- #include <sys/socket.h>
- #include <netinet/in.h>
- #define TARGET_NATIVE_NETWORK_SOCKET_SET_OPTION_KEEP_ALIVE(socketDescriptor,flag,result) \
- do { \
- int __value; \
- \
- __value=flag; \
- result=(setsockopt(socketDescriptor,SOL_SOCKET,SO_KEEPALIVE,&__value,sizeof(__value))==0)?TARGET_NATIVE_OK:TARGET_NATIVE_ERROR; \
- } while (0)
-#endif
-
-/***********************************************************************\
-* Name : TARGET_NATIVE_NETWORK_SOCKET_SET_OPTION_BROADCAST
-* Purpose : set socket option SO_BROADCAST
-* Input : socketDescriptor - socket descriptor
-* flag - 1 or 0
-* Output : result - TARGET_NATIVE_OK if no error occurred,
-* TARGET_NATIVE_ERROR otherwise
-* Return : -
-* Side-effect: unknown
-* Notes : -
-\***********************************************************************/
-
-#ifndef TARGET_NATIVE_NETWORK_SOCKET_SET_OPTION_BROADCAST
- #include <sys/types.h>
- #include <sys/socket.h>
- #include <netinet/tcp.h>
- #define TARGET_NATIVE_NETWORK_SOCKET_SET_OPTION_BROADCAST(socketDescriptor,flag,result) \
- do { \
- int __value; \
- \
- __value=flag; \
- result=(setsockopt(socketDescriptor,SOL_SOCKET,SO_BROADCAST,&__value,sizeof(__value))==0)?TARGET_NATIVE_OK:TARGET_NATIVE_ERROR; \
- } while (0)
-#endif
-
-/*---------------------------------------------------------------------*/
-
-/***********************************************************************\
-* Name : TARGET_NATIVE_NETWORK_SOCKET_GET_OPTION_TCP_NODELAY
-* Purpose : get socket option TCP_NODELAY
-* Input : socketDescriptor - socket descriptor
-* Output : flag - 1 or 0
-* result - TARGET_NATIVE_OK if no error occurred,
-* TARGET_NATIVE_ERROR otherwise
-* Return : -
-* Side-effect: unknown
-* Notes : -
-\***********************************************************************/
-
-#ifndef TARGET_NATIVE_NETWORK_SOCKET_GET_OPTION_TCP_NODELAY
- #include <sys/types.h>
- #include <sys/socket.h>
- #include <netinet/tcp.h>
- #define TARGET_NATIVE_NETWORK_SOCKET_GET_OPTION_TCP_NODELAY(socketDescriptor,flag,result) \
- do { \
- int __value; \
- socklen_t __len; \
- \
- flag=0; \
- \
- __len=sizeof(__value); \
- result=(getsockopt(socketDescriptor,IPPROTO_TCP,TCP_NODELAY,&__value,&__len)==0)?TARGET_NATIVE_OK:TARGET_NATIVE_ERROR; \
- if (result==TARGET_NATIVE_OK) \
- { \
- flag=__value; \
- } \
- } while (0)
-#endif
-
-/***********************************************************************\
-* Name : TARGET_NATIVE_NETWORK_SOCKET_GET_OPTION_SO_LINGER
-* Purpose : get socket option SO_LINGER
-* Input : socketDescriptor - socket descriptor
-* Output : flag - 1 or 0
-* value - linger value
-* result - TARGET_NATIVE_OK if no error occurred,
-* TARGET_NATIVE_ERROR otherwise
-* Return : -
-* Side-effect: unknown
-* Notes : -
-\***********************************************************************/
-
-#ifndef TARGET_NATIVE_NETWORK_SOCKET_GET_OPTION_SO_LINGER
- #include <sys/types.h>
- #include <sys/socket.h>
- #define TARGET_NATIVE_NETWORK_SOCKET_GET_OPTION_SO_LINGER(socketDescriptor,flag,value,result) \
- do { \
- struct linger __linger; \
- socklen_t __len; \
- \
- flag =0; \
- value=0; \
- \
- __len=sizeof(__linger); \
- result=(getsockopt(socketDescriptor,SOL_SOCKET,SO_LINGER,&__linger,&__len)==0)?TARGET_NATIVE_OK:TARGET_NATIVE_ERROR; \
- if (result==TARGET_NATIVE_OK) \
- { \
- flag =__linger.l_onoff; \
- value=__linger.l_linger; \
- } \
- } while (0)
-#endif
-
-/***********************************************************************\
-* Name : TARGET_NATIVE_NETWORK_SOCKET_GET_OPTION_SO_TIMEOUT
-* Purpose : get socket option SO_TIMEOUT
-* Input : socketDescriptor - socket descriptor
-* Output : flag - 1 or 0
-* result - TARGET_NATIVE_OK if no error occurred,
-* TARGET_NATIVE_ERROR otherwise
-* Return : -
-* Side-effect: unknown
-* Notes : -
-\***********************************************************************/
-
-#ifndef TARGET_NATIVE_NETWORK_SOCKET_GET_OPTION_SO_TIMEOUT
- #include <sys/types.h>
- #include <sys/socket.h>
- #define TARGET_NATIVE_NETWORK_SOCKET_GET_OPTION_SO_TIMEOUT(socketDescriptor,flag,result) \
- do { \
- struct timeval __value; \
- socklen_t __len; \
- \
- flag=0; \
- \
- __len=sizeof(__value); \
- result=(getsockopt(socketDescriptor,SOL_SOCKET,SO_TIMEOUT,&__value,&__len)==0)?TARGET_NATIVE_OK:TARGET_NATIVE_ERROR; \
- if (result==TARGET_NATIVE_OK) \
- { \
- flag = (__value.tv_sec * 1000LL) + (__value.tv_usec / 1000LL); \
- } \
- } while (0)
-#endif
-
-/***********************************************************************\
-* Name : TARGET_NATIVE_NETWORK_SOCKET_GET_OPTION_SO_SNDBUF
-* Purpose : get socket option SO_SNDBUF
-* Input : socketDescriptor - socket descriptor
-* Output : size - size of send buffer
-* result - TARGET_NATIVE_OK if no error occurred,
-* TARGET_NATIVE_ERROR otherwise
-* Return : -
-* Side-effect: unknown
-* Notes : -
-\***********************************************************************/
-
-#ifndef TARGET_NATIVE_NETWORK_SOCKET_GET_OPTION_SO_SNDBUF
- #include <sys/types.h>
- #include <sys/socket.h>
- #define TARGET_NATIVE_NETWORK_SOCKET_GET_OPTION_SO_SNDBUF(socketDescriptor,size,result) \
- do { \
- int __value; \
- socklen_t __len; \
- \
- size=0; \
- \
- __len=sizeof(__value); \
- result=(getsockopt(socketDescriptor,SOL_SOCKET,SO_SNDBUF,&__value,&__len)==0)?TARGET_NATIVE_OK:TARGET_NATIVE_ERROR; \
- if (result==TARGET_NATIVE_OK) \
- { \
- size=__value; \
- } \
- } while (0)
-#endif
-
-/***********************************************************************\
-* Name : TARGET_NATIVE_NETWORK_SOCKET_GET_OPTION_SO_RCDBUF
-* Purpose : get socket option SO_RCDBUF
-* Input : socketDescriptor - socket descriptor
-* Output : size - size of receive buffer
-* result - TARGET_NATIVE_OK if no error occurred,
-* TARGET_NATIVE_ERROR otherwise
-* Return : -
-* Side-effect: unknown
-* Notes : -
-\***********************************************************************/
-
-#ifndef TARGET_NATIVE_NETWORK_SOCKET_GET_OPTION_SO_RCDBUF
- #include <sys/types.h>
- #include <sys/socket.h>
- #define TARGET_NATIVE_NETWORK_SOCKET_GET_OPTION_SO_RCDBUF(socketDescriptor,size,result) \
- do { \
- int __value; \
- socklen_t __len; \
- \
- size=0; \
- \
- __len=sizeof(__value); \
- result=(getsockopt(socketDescriptor,SOL_SOCKET,SO_RCVBUF,&__value,&__len)==0)?TARGET_NATIVE_OK:TARGET_NATIVE_ERROR; \
- if (result==TARGET_NATIVE_OK) \
- { \
- size=__value; \
- } \
- } while (0)
-#endif
-
-/***********************************************************************\
-* Name : TARGET_NATIVE_NETWORK_SOCKET_GET_OPTION_IP_TTL
-* Purpose : get socket option IP_TTL
-* Input : socketDescriptor - socket descriptor
-* Output : flag - 1 or 0
-* result - TARGET_NATIVE_OK if no error occurred,
-* TARGET_NATIVE_ERROR otherwise
-* Return : -
-* Side-effect: unknown
-* Notes : -
-\***********************************************************************/
-
-#ifndef TARGET_NATIVE_NETWORK_SOCKET_GET_OPTION_IP_TTL
- #include <sys/types.h>
- #include <sys/socket.h>
- #include <netinet/in.h>
- #define TARGET_NATIVE_NETWORK_SOCKET_GET_OPTION_IP_TTL(socketDescriptor,flag,result) \
- do { \
- int __value; \
- socklen_t __len; \
- \
- flag=0; \
- \
- __len=sizeof(__value); \
- result=(getsockopt(socketDescriptor,IPPROTO_IP,IP_TTL,&__value,&__len)==0)?TARGET_NATIVE_OK:TARGET_NATIVE_ERROR; \
- if (result==TARGET_NATIVE_OK) \
- { \
- flag=__value; \
- } \
- } while (0)
-#endif
-
-/***********************************************************************\
-* Name : TARGET_NATIVE_NETWORK_SOCKET_GET_OPTION_IP_MULTICAST_IF
-* Purpose : get socket option IP_MULTICAST_IF
-* Input : socketDescriptor - socket descriptor
-* Output : address - integer with IP address in host-format
-* result - TARGET_NATIVE_OK if no error occurred,
-* TARGET_NATIVE_ERROR otherwise
-* Return : -
-* Side-effect: unknown
-* Notes : -
-\***********************************************************************/
-
-#ifndef TARGET_NATIVE_NETWORK_SOCKET_GET_OPTION_IP_MULTICAST_IF
- #include <sys/types.h>
- #include <sys/socket.h>
- #include <netinet/in.h>
- #define TARGET_NATIVE_NETWORK_SOCKET_GET_OPTION_IP_MULTICAST_IF(socketDescriptor,address,result) \
- do { \
- struct sockaddr_in __socketAddress; \
- socklen_t __socketAddressLength; \
- \
- address=0;\
- \
- memset(&__socketAddress,0,sizeof(__socketAddress)); \
- __socketAddress.sin_family = AF_INET; \
- __socketAddress.sin_addr.s_addr = htonl(address); \
- __socketAddressLength=sizeof(__socketAddress); \
- result=(getsockopt(socketDescriptor,IPPROTO_IP,IP_MULTICAST_IF,&__socketAddress,&__socketAddressLength)==0)?TARGET_NATIVE_OK:TARGET_NATIVE_ERROR; \
- if (result==TARGET_NATIVE_OK) \
- { \
- address=ntohl(__socketAddress.sin_addr.s_addr); \
- } \
- } while (0)
-#endif
-
-/***********************************************************************\
-* Name : TARGET_NATIVE_NETWORK_SOCKET_GET_OPTION_BIND_ADDRESS
-* Purpose : get socket option SOCKOPT_SO_BINDADDR
-* Input : socketDescriptor - socket descriptor
-* Output : address - integer with IP address in host-format
-* result - TARGET_NATIVE_OK if no error occurred,
-* TARGET_NATIVE_ERROR otherwise
-* Return : -
-* Side-effect: unknown
-* Notes : -
-\***********************************************************************/
-
-#ifndef TARGET_NATIVE_NETWORK_SOCKET_GET_OPTION_BIND_ADDRESS
- #include <sys/types.h>
- #include <sys/socket.h>
- #include <netinet/in.h>
- #define TARGET_NATIVE_NETWORK_SOCKET_GET_OPTION_BIND_ADDRESS(socketDescriptor,address,result) \
- do { \
- struct sockaddr_in __socketAddress; \
- socklen_t __socketAddressLength; \
- \
- address=0;\
- \
- memset(&__socketAddress,0,sizeof(__socketAddress)); \
- __socketAddressLength=sizeof(__socketAddress); \
- result=(getsockname(socketDescriptor,(struct sockaddr*)&__socketAddress,&__socketAddressLength)==0)?TARGET_NATIVE_OK:TARGET_NATIVE_ERROR; \
- if (result==TARGET_NATIVE_OK) \
- { \
- address=ntohl(__socketAddress.sin_addr.s_addr); \
- } \
- } while (0)
-#endif
-
-/***********************************************************************\
-* Name : TARGET_NATIVE_NETWORK_SOCKET_GET_OPTION_REUSE_ADDRESS
-* Purpose : get socket option REUSE_ADDRESS
-* Input : socketDescriptor - socket descriptor
-* Output : flag - 1 or 0
-* result - TARGET_NATIVE_OK if no error occurred,
-* TARGET_NATIVE_ERROR otherwise
-* Return : -
-* Side-effect: unknown
-* Notes : -
-\***********************************************************************/
-
-#ifndef TARGET_NATIVE_NETWORK_SOCKET_GET_OPTION_REUSE_ADDRESS
- #include <sys/types.h>
- #include <sys/socket.h>
- #include <netinet/in.h>
- #define TARGET_NATIVE_NETWORK_SOCKET_GET_OPTION_REUSE_ADDRESS(socketDescriptor,flag,result) \
- do { \
- int __value; \
- socklen_t __len; \
- \
- flag=0; \
- \
- __len=sizeof(__value); \
- result=(getsockopt(socketDescriptor,SOL_SOCKET,SO_REUSEADDR,&__value,&__len)==0)?TARGET_NATIVE_OK:TARGET_NATIVE_ERROR; \
- if (result==TARGET_NATIVE_OK) \
- { \
- flag=__value; \
- } \
- } while (0)
-#endif
-
-/***********************************************************************\
-* Name : TARGET_NATIVE_NETWORK_SOCKET_GET_OPTION_KEEP_ALIVE
-* Purpose : get socket option KEEP_ALIVE
-* Input : socketDescriptor - socket descriptor
-* Output : flag - 1 or 0
-* result - TARGET_NATIVE_OK if no error occurred,
-* TARGET_NATIVE_ERROR otherwise
-* Return : -
-* Side-effect: unknown
-* Notes : -
-\***********************************************************************/
-
-#ifndef TARGET_NATIVE_NETWORK_SOCKET_GET_OPTION_KEEP_ALIVE
- #include <sys/types.h>
- #include <sys/socket.h>
- #include <netinet/in.h>
- #define TARGET_NATIVE_NETWORK_SOCKET_GET_OPTION_KEEP_ALIVE(socketDescriptor,flag,result) \
- do { \
- int __value; \
- socklen_t __len; \
- \
- flag=0; \
- \
- __len=sizeof(__value); \
- result=(getsockopt(socketDescriptor,SOL_SOCKET,SO_KEEPALIVE,&__value,&__len)==0)?TARGET_NATIVE_OK:TARGET_NATIVE_ERROR; \
- if (result==TARGET_NATIVE_OK) \
- { \
- flag=__value; \
- } \
- } while (0)
-#endif
-
-/***********************************************************************\
-* Name : TARGET_NATIVE_NETWORK_SOCKET_GET_OPTION_BROADCAST
-* Purpose : get socket option SO_BROADCAST
-* Input : socketDescriptor - socket descriptor
-* Output : flag - 1 or 0
-* result - TARGET_NATIVE_OK if no error occurred,
-* TARGET_NATIVE_ERROR otherwise
-* Return : -
-* Side-effect: unknown
-* Notes : -
-\***********************************************************************/
-
-#ifndef TARGET_NATIVE_NETWORK_SOCKET_GET_OPTION_BROADCAST
- #include <sys/types.h>
- #include <sys/socket.h>
- #include <netinet/tcp.h>
- #define TARGET_NATIVE_NETWORK_SOCKET_GET_OPTION_BROADCAST(socketDescriptor,flag,result) \
- do { \
- int __value; \
- socklen_t __len; \
- \
- flag=0; \
- \
- __len=sizeof(__value); \
- result=(getsockopt(socketDescriptor,SOL_SOCKET,SO_BROADCAST,&__value,&__len)==0)?TARGET_NATIVE_OK:TARGET_NATIVE_ERROR; \
- if (result==TARGET_NATIVE_OK) \
- { \
- flag=__value; \
- } \
- } while (0)
-#endif
-
-/***************************** Functions *******************************/
-
-#ifdef __cplusplus
-extern "C" {
-#endif
-
-#ifdef __cplusplus
-}
-#endif
-
-#endif /* __TARGET_GENERIC_NETWORK__ */
-
-/* end of file */
-
diff --git a/native/target/readme.txt b/native/target/readme.txt
deleted file mode 100644
index 6fee79eba..000000000
--- a/native/target/readme.txt
+++ /dev/null
@@ -1,149 +0,0 @@
-The GNU classpath native layer
-~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
-
-To enable GNU classpath to run on a diverse array of different hardware
-platforms, a new native software layer has been added. This layer hide all
-machine and hardware dependent issues except common available definitions,
-which are ANSI C functions. For each targets system where the GNU classpath
-library is to be used, a specific set of native layer functions have to be
-provided. A generic set of functions is provided for Unix like systems
-(currently tested only with Linux). For a new target system, some or
-all native layer functions have to be rewritten. The following scheme
-illustrate the native layer.
-
- Java API
- ----------------------
- | Java classes |
- | -------------------- |
- | C native functions |
- | -------------------- |
- >> | C native layer | <<
- | -------------------- |
- | operating system |
- | -------------------- |
- | hardware |
- ----------------------
-
-The C native layer is implemented as a set of C pre-processor native macros.
-These macros expand to the appropriated native code. Macros are used
-instead function calls to give optimal performance and small code size.
-Of course in special cases, a macro can also expand to a function call
-if this is needed. This approach provide a flexible and efficient
-implementation of the native layer.
-
-The naming pattern for native macros is like follows:
-
- TARGET_NATIVE_<module name>_<macro name>
-
-where <module name> is a name of a module, e. g. FILE; <macro name> is
-the name of the specific native macro, e. g. OPEN_READ.
-
-The parameters for the macro use in general (with a few exceptions) the
-scheme
-
- <parameter>,<parameter>,...,<result>
-
-where <parameter> is input/output parameter and <result> is the result
-code TARGET_NATIVE_OK or TARGET_NATIVE_ERROR. Specific error codes
-and error strings can be gotten with
-
- TARGET_NATIVE_LAST_ERROR and
- TARGET_NATIVE_LAST_ERROR_STRING
-
-(see also file target_generic.h).
-
-For a single target system there exists two sets of native macros in
-the files
-
- a) <target name>/target_native_<module name>.h
- b) generic/target_generic_<module name>.h
-
-The macros in "a" are target specific implementations of native
-functions, the macros in "b" are generic implementations (for Unix) of
-the same native functions. If a native macro is not defined in the file
-"a", then the definition in file "b" is used (there is a check to see if
-a native macros is already defined elsewhere). This technique enables
-"a" to 'overwrite' single generic native macros with specific native
-macros for a specific target. In the default case, where only the
-generic implementation of the native macros is used, the files in the
-directory '<target name>' are empty except for the mandatory include of the
-generic header file in the directory 'generic' at the end. Please
-look at the existing Linux target specific files.
-
-The directory and file structure is as follows.
-
- native
- ...
- |
- |--- target
- | |
- | |--- Linux
- | | |--- target_native_<module name>.h
- | | |--- ...
- | | ...
- | |--- ...
- | |--- generic
- | | |--- target_generic_<module name>.h
- | | |--- ...
- ... ... ...
-
-
-Include hierarchy is as follows.
-
- native file <name>
- --> include 'target_native_<module name>.h'
- ...
- <target specific definitions>
- ...
- --> include 'target_generic_<module name>.h'
- ...
- <generic definitions>
- ...
-
-When writing native code, please take care with the following.
-
- - Use _only_ ANSI C specific functions directly which are available
- on all target systems with the same parameters, e. g. strdup() is
- not an ANSI C function, thus is is not available on all systems; mkdir()
- expect on some systems different parameters.
-
- !!!Do NOT use this functions in your native code!!!
-
- Instead
-
- * if a function is not available, create a native macro in the file
-
- <target name>/target_native_<module name>.h
-
- * if it is a generic function, include a generic implementation in
-
- generic/target_generic_<module name>.h
-
- * Then use this macro in your native code.
-
- - Avoid _all_ OS specific data types and constants, e. g. structures or error
- numbers. Instead, wrap them in a native macro and convert the values to
- basic scalar types like char, int, double or long.
-
- - Take care with 64 bit values; the are machine dependent. Not all
- target system support 64 bit operations. The macros in
- target_generic_math_int.h give a set of macros implementing 64 bit
- operations and constants.
-
- - Avoid - if possible - non-reentrant functions. Non-reentrant functions
- cause strange problems on some multitasking systems.
-
- - Avoid - if possible - dynamic data types created by malloc() and similar
- functions. Instead use (local) static variables to avoid stack usage.
- On some target systems, dynamic memory management is either slow or even
- dangerous. Moreover malloc()-calls can cause fragmentation of the system
- memory, which could result in a system crash or an application failure.
-
-For some examples, please look in the current implementation for
-Linux in the directory 'target/Linux' and the generic implementation in
-the directory 'target/generic'.
-
-
- aicas GmbH, February 2003
-
-