/*
* routines that must be linked into the core for Lisp to work
+ *
+ * but note this is only the BSD version, as per the FIXME
+ *
+ * FIXME: It's tedious and error-prone having to edit both this file and
+ * the analogous ldso-stubs.S file when we change the references to
+ * functions, enough so that it would probably be good to rewrite
+ * both files in terms of a shared list of function names.
+ * E.g. the function names could be in shared-function-names.h
+ * SHARED_FUNCTION(cos)
+ * SHARED_FUNCTION(sinh)
+ * SHARED_FUNCTION(strlen)
+ * etc. and the per-OS files could look like
+ * #define SHARED_FUNCTION(f) ....
+ * #include "shared-function-names.h"
+ * ...then going on to do OS-specific things
+ * "Once and only once."
*/
/*
* files for more information.
*/
-/*
- * $Header$
- */
-
/* Pick up all the syscalls. */
F(accept)
F(access)
F(acct)
-#ifndef hpux
-F(adjtime)
-#endif
F(bind)
F(brk)
#if defined(hpux) \
|| defined(SVR4) \
|| defined(__FreeBSD__) \
- || defined(__OpenBSD__)
+ || defined(__OpenBSD__) \
+ || defined(__NetBSD__)
F(cfgetospeed)
F(cfsetospeed)
F(cfgetispeed)
F(dup2)
F(execve)
F(exit)
+F(_exit)
F(fchmod)
F(fchown)
F(fcntl)
F(geteuid)
F(getgid)
F(getgroups)
-#if !defined (SOLARIS) || defined(SOLARIS25)
-F(gethostid)
-#endif
F(gethostname)
F(getitimer)
#if !defined(hpux) && !defined(SVR4) || defined(SOLARIS25)
#endif
F(setitimer)
F(setpgrp)
+F(setsid)
#if !defined(SVR4) || defined(SOLARIS25)
F(setpriority)
#endif
-#if !defined(mach) \
- && !defined(SOLARIS) \
- && !defined(__FreeBSD__) \
- && !defined(__OpenBSD__) \
- && !defined(SUNOS) \
- && !defined(osf1) \
- && !defined(irix) \
- && !defined(hpux)
-F(setquota)
-#endif
-#if !defined(hpux) && !defined(SVR4) || defined(SOLARIS25)
-F(setregid)
-F(setreuid)
-#endif
F(setrlimit)
F(setsockopt)
F(settimeofday)
F(shutdown)
-#ifndef SVR4
-F(sigblock)
-#endif
-F(sigpause)
-#if !defined(ibmrt) && !defined(hpux) && !defined(SVR4) && !defined(__i386__)
+#if !defined(hpux) && !defined(SVR4) && !defined(LISP_FEATURE_X86)
F(sigreturn)
#endif
-#if !defined(SVR4) && !defined(__FreeBSD__) && !defined(__OpenBSD__)
+#if !defined(SVR4)
F(sigsetmask)
+#endif
+#if !defined(SVR4) && !defined(__FreeBSD__) && !defined(__OpenBSD__) && !defined(__NetBSD__)
F(sigstack)
F(sigvec)
#endif
F(socket)
F(socketpair)
F(stat)
-#ifndef SVR4
+#if !defined(SVR4) && !defined(__OpenBSD__)
F(swapon)
#endif
F(symlink)
F(sync)
F(syscall)
-#if defined(hpux) || defined(SVR4)
+#if defined(hpux) || defined(SVR4) || defined(__linux__)
F(closedir)
F(opendir)
+#if defined(readdir)
+#undef reddir
+#endif
F(readdir)
#endif
#if defined(hpux) \
|| defined(SVR4) \
|| defined(__FreeBSD__) \
|| defined(__OpenBSD__) \
+ || defined(__NetBSD__) \
|| defined(__linux__)
F(tcgetattr)
F(tcsetattr)
&& !defined(parisc) \
&& !defined(SOLARIS) \
&& !defined(__OpenBSD__) \
- && !defined(__FreeBSD__)
+ && !defined(__FreeBSD__) \
+ && !defined(__NetBSD__)
F(umount)
#endif
F(unlink)
#ifndef irix
F(vfork)
#endif
-#if !defined(osf1) && !defined(__FreeBSD__) && !defined(__OpenBSD__)
+#if !defined(osf1) && !defined(__FreeBSD__) && !defined(__OpenBSD__) && !defined(__NetBSD__)
F(vhangup)
#endif
F(wait)
+F(waitpid)
#if !defined(SOLARIS) || defined(SOLARIS25)
F(wait3)
#endif
F(write)
F(writev)
-/* Math routines. */
+/* math routines */
F(cos)
F(sin)
F(tan)
#ifndef hpux
F(cbrt)
#endif
-#ifndef __i386__
+#ifndef LISP_FEATURE_X86
F(sqrt)
#endif
F(hypot)
-/* Network support. */
+/* string things */
+F(strlen)
+
+/* network support */
F(gethostbyname)
F(gethostbyaddr)
-/* Other miscellaneous things. */
+/* other miscellaneous things */
+/* FIXME: NetBSD plays some renaming games, and so cannot simply
+ reference symbols here. "NetBSD needs to get fixed here too PEM
+ 2004-03-27" */
#if defined(SVR4) || defined(__FreeBSD__)
F(setpgid)
F(getpgid)
D(daylight)
#endif
D(tzname)
-F(dlopen)
-F(dlsym)
-F(dlclose)
-F(dlerror)
-#endif
-#if !defined (SOLARIS) || defined(SOLARIS25)
-F(getwd)
#endif
+F(getcwd)
F(ttyname)
#ifdef irix
F(_getpty)
#endif
+
+F(dlopen)
+F(dlsym)
+F(dlclose)
+F(dlerror)