Remove _THREAD_SAFE depenendancies. Create weakly associated stubs for
authorMatthew Dillon <dillon@dragonflybsd.org>
Mon, 31 Jan 2005 22:29:48 +0000 (22:29 +0000)
committerMatthew Dillon <dillon@dragonflybsd.org>
Mon, 31 Jan 2005 22:29:48 +0000 (22:29 +0000)
posix threading calls used by libc and weak associations for procedures that
a threading library would otherwise have to override.  This allows a program
to be linked with libc, or linked with libc + a threading library.  libc_r
will be deprecated over time.

Traditionally libc_r had to be linked against a threading library rather then
libc.  Linux, FreeBSD, and other UNIXes have moved either t oa thread-safe
libc or a thread-capable libc.  The threading capability is accomplished by
making the appropriate thread locking calls and providing weakly referenced
dummy stub functions for the case where a threading library is not linked in.
Certain third party software, namely XFree/XOrg, also assume threading
stubs in libc.

This is precursor work to a port of David Xu's 1:1 threading library and is
also intended as a basis to allow DragonFly to support multiple threading
libraries.

Ported-by: David Rhodus <sdrhodus@gmail.com>
Primarily-ported-from: FreeBSD
Testing and bug fixes by David Xu and Matt Dillon

160 files changed:
include/dirent.h
include/stdio.h
lib/libc/Makefile
lib/libc/Makefile.inc
lib/libc/compat-43/creat.c
lib/libc/compat-43/sigcompat.c
lib/libc/db/btree/bt_close.c
lib/libc/db/btree/bt_open.c
lib/libc/db/hash/hash.c
lib/libc/db/hash/hash_page.c
lib/libc/db/mpool/mpool.c
lib/libc/db/recno/rec_close.c
lib/libc/db/recno/rec_open.c
lib/libc/gen/Makefile.inc
lib/libc/gen/_pthread_stubs.c [new file with mode: 0644]
lib/libc/gen/_spinlock_stub.c
lib/libc/gen/_thread_init.c [new file with mode: 0644]
lib/libc/gen/arc4random.c
lib/libc/gen/closedir.c
lib/libc/gen/daemon.c
lib/libc/gen/devname.c
lib/libc/gen/exec.c
lib/libc/gen/fstab.c
lib/libc/gen/fts.c
lib/libc/gen/getcap.c
lib/libc/gen/getcwd.c
lib/libc/gen/getlogin.c
lib/libc/gen/getpwent.c
lib/libc/gen/isatty.c
lib/libc/gen/lockf.c
lib/libc/gen/nlist.c
lib/libc/gen/opendir.c
lib/libc/gen/pause.c
lib/libc/gen/popen.c
lib/libc/gen/posixshm.c
lib/libc/gen/psignal.c
lib/libc/gen/readdir.c
lib/libc/gen/scandir.c
lib/libc/gen/seekdir.c
lib/libc/gen/setjmperr.c
lib/libc/gen/setmode.c
lib/libc/gen/siginterrupt.c
lib/libc/gen/signal.c
lib/libc/gen/sleep.c
lib/libc/gen/syslog.c
lib/libc/gen/telldir.c
lib/libc/gen/termios.c
lib/libc/gen/ttyname.c
lib/libc/gen/usleep.c
lib/libc/gen/wait.c
lib/libc/gen/wait3.c
lib/libc/gen/waitpid.c
lib/libc/gmon/gmon.c
lib/libc/i386/SYS.h
lib/libc/i386/gen/_setjmp.S
lib/libc/i386/gen/setjmp.S
lib/libc/i386/gen/sigsetjmp.S
lib/libc/i386/sys/setlogin.S
lib/libc/include/libc_private.h
lib/libc/include/namespace.h [new file with mode: 0644]
lib/libc/include/spinlock.h
lib/libc/include/un-namespace.h [new file with mode: 0644]
lib/libc/locale/collate.c
lib/libc/locale/rune.c
lib/libc/net/getaddrinfo.c
lib/libc/net/gethostbyht.c
lib/libc/net/gethostnamadr.c
lib/libc/net/getifaddrs.c
lib/libc/net/herror.c
lib/libc/net/name6.c
lib/libc/net/rcmd.c
lib/libc/net/recv.c
lib/libc/net/res_send.c
lib/libc/net/send.c
lib/libc/nls/msgcat.c
lib/libc/rpc/auth_time.c
lib/libc/rpc/bindresvport.c
lib/libc/rpc/clnt_generic.c
lib/libc/rpc/clnt_simple.c
lib/libc/rpc/clnt_tcp.c
lib/libc/rpc/clnt_udp.c
lib/libc/rpc/clnt_unix.c
lib/libc/rpc/get_myaddress.c
lib/libc/rpc/key_call.c
lib/libc/rpc/pmap_clnt.c
lib/libc/rpc/pmap_getmaps.c
lib/libc/rpc/pmap_getport.c
lib/libc/rpc/pmap_rmt.c
lib/libc/rpc/rpc_dtablesize.c
lib/libc/rpc/rtime.c
lib/libc/rpc/svc_auth_des.c
lib/libc/rpc/svc_run.c
lib/libc/rpc/svc_tcp.c
lib/libc/rpc/svc_udp.c
lib/libc/rpc/svc_unix.c
lib/libc/stdio/_flock_stub.c
lib/libc/stdio/clrerr.c
lib/libc/stdio/fclose.c
lib/libc/stdio/fdopen.c
lib/libc/stdio/fflush.c
lib/libc/stdio/fgetc.c
lib/libc/stdio/fgetpos.c
lib/libc/stdio/fgets.c
lib/libc/stdio/findfp.c
lib/libc/stdio/flags.c
lib/libc/stdio/fopen.c
lib/libc/stdio/fpurge.c
lib/libc/stdio/fputc.c
lib/libc/stdio/fputs.c
lib/libc/stdio/fread.c
lib/libc/stdio/freopen.c
lib/libc/stdio/fscanf.c
lib/libc/stdio/fseek.c
lib/libc/stdio/ftell.c
lib/libc/stdio/fvwrite.c
lib/libc/stdio/fwalk.c
lib/libc/stdio/fwrite.c
lib/libc/stdio/getc.c
lib/libc/stdio/getchar.c
lib/libc/stdio/gets.c
lib/libc/stdio/glue.h
lib/libc/stdio/local.h
lib/libc/stdio/makebuf.c
lib/libc/stdio/mktemp.c
lib/libc/stdio/perror.c
lib/libc/stdio/putc.c
lib/libc/stdio/putchar.c
lib/libc/stdio/puts.c
lib/libc/stdio/putw.c
lib/libc/stdio/refill.c
lib/libc/stdio/rewind.c
lib/libc/stdio/scanf.c
lib/libc/stdio/setvbuf.c
lib/libc/stdio/stdio.c
lib/libc/stdio/tmpfile.c
lib/libc/stdio/ungetc.c
lib/libc/stdio/vasprintf.c
lib/libc/stdio/vfprintf.c
lib/libc/stdio/vfscanf.c
lib/libc/stdio/vscanf.c
lib/libc/stdio/vsnprintf.c
lib/libc/stdio/vsprintf.c
lib/libc/stdio/wbuf.c
lib/libc/stdlib/abort.c
lib/libc/stdlib/exit.c
lib/libc/stdlib/malloc.c
lib/libc/stdlib/random.c
lib/libc/stdlib/realpath.c
lib/libc/stdlib/system.c
lib/libc/stdtime/asctime.c
lib/libc/stdtime/difftime.c
lib/libc/stdtime/localtime.c
lib/libc/stdtime/strftime.c
lib/libc/stdtime/strptime.c
lib/libc/stdtime/timelocal.c
lib/libc/sys/ftruncate.c
lib/libc/sys/lseek.c
lib/libc/sys/stack_protector.c
lib/libc/yp/yplib.c
lib/libc_r/uthread/uthread_spinlock.c

index 0ee086b..6b2491c 100644 (file)
@@ -32,7 +32,7 @@
  *
  *     @(#)dirent.h    8.2 (Berkeley) 7/28/94
  * $FreeBSD: src/include/dirent.h,v 1.7 1999/12/29 05:01:20 peter Exp $
- * $DragonFly: src/include/dirent.h,v 1.3 2003/11/14 01:01:43 dillon Exp $
+ * $DragonFly: src/include/dirent.h,v 1.4 2005/01/31 22:28:58 dillon Exp $
  */
 
 #ifndef _DIRENT_H_
@@ -63,6 +63,7 @@ typedef struct _dirdesc {
        long    dd_seek;        /* magic cookie returned by getdirentries */
        long    dd_rewind;      /* magic cookie for rewinding */
        int     dd_flags;       /* flags for readdir */
+       void    *dd_lock;       /* hack to avoid include <pthread.h> */
 } DIR;
 
 #define        dirfd(dirp)     ((dirp)->dd_fd)
@@ -91,7 +92,9 @@ int closedir (DIR *);
 #ifndef _POSIX_SOURCE
 DIR *__opendir2 (const char *, int);
 long telldir (const DIR *);
-void seekdir (DIR *, long);
+struct dirent *_readdir_unlocked(DIR *);
+void _reclaim_telldir(DIR *);
+void _seekdir (DIR *, long);
 int scandir (const char *, struct dirent ***,
     int (*)(struct dirent *), int (*)(const void *, const void *));
 int alphasort (const void *, const void *);
index 56b3702..8adfc8c 100644 (file)
@@ -35,7 +35,7 @@
  *
  *     @(#)stdio.h     8.5 (Berkeley) 4/29/95
  * $FreeBSD: src/include/stdio.h,v 1.24.2.5 2002/11/09 08:07:20 imp Exp $
- * $DragonFly: src/include/stdio.h,v 1.5 2003/11/15 19:28:42 asmodai Exp $
+ * $DragonFly: src/include/stdio.h,v 1.6 2005/01/31 22:28:58 dillon Exp $
  */
 
 #ifndef        _STDIO_H_
@@ -330,10 +330,10 @@ __END_DECLS
 
 /*
  * This is a #define because the function is used internally and
- * (unlike vfscanf) the name __svfscanf is guaranteed not to collide
+ * (unlike vfscanf) the name __vfscanf is guaranteed not to collide
  * with a user function when _ANSI_SOURCE or _POSIX_SOURCE is defined.
  */
-#define         vfscanf        __svfscanf
+#define         vfscanf        __vfscanf
 
 /*
  * Stdio function-access interface.
@@ -354,6 +354,7 @@ __END_DECLS
  */
 __BEGIN_DECLS
 int    __srget (FILE *);
+int    __vfscanf (FILE *, const char *, __va_list);
 int    __svfscanf (FILE *, const char *, __va_list);
 int    __swbuf (int, FILE *);
 __END_DECLS
@@ -401,60 +402,10 @@ static __inline int __sputc(int _c, FILE *_p) {
 #define        fileno_unlocked(p)      __sfileno(p)
 #endif
 
-#ifndef  _THREAD_SAFE
-#define        feof(p)         feof_unlocked(p)
-#define        ferror(p)       ferror_unlocked(p)
-#define        clearerr(p)     clearerr_unlocked(p)
+#define getc_unlocked(fp)      __sgetc(fp)
+#define        putc_unlocked(x, fp)    __sputc(x, fp)
 
-#ifndef _ANSI_SOURCE
-#define        fileno(p)       fileno_unlocked(p)
-#endif
-#endif
-
-#ifndef lint
-#define        getc_unlocked(fp)       __sgetc(fp)
-#define putc_unlocked(x, fp)   __sputc(x, fp)
-#ifdef _THREAD_SAFE
-void   _flockfile_debug (FILE *, char *, int);
-#ifdef _FLOCK_DEBUG
-#define _FLOCKFILE(x)  _flockfile_debug(x, __FILE__, __LINE__)
-#else
-#define _FLOCKFILE(x)  flockfile(x)
-#endif
-extern int __isthreaded;
-static __inline int                    \
-__getc_locked(FILE *_fp)               \
-{                                      \
-       int _ret;                       \
-       if (__isthreaded)               \
-               _FLOCKFILE(_fp);        \
-       _ret = getc_unlocked(_fp);      \
-       if (__isthreaded)               \
-               funlockfile(_fp);       \
-       return (_ret);                  \
-}
-static __inline int                    \
-__putc_locked(int _x, FILE *_fp)       \
-{                                      \
-       int _ret;                       \
-       if (__isthreaded)               \
-               _FLOCKFILE(_fp);        \
-       _ret = putc_unlocked(_x, _fp);  \
-       if (__isthreaded)               \
-               funlockfile(_fp);       \
-       return (_ret);                  \
-}
-#define        getc(fp)        __getc_locked(fp)
-#define        putc(x, fp)     __putc_locked(x, fp)
-#else
-#define        getc(fp)        getc_unlocked(fp)
-#define putc(x, fp)    putc_unlocked(x, fp)
-#endif
-#endif /* lint */
-
-#define        getchar()               getc(stdin)
 #define        getchar_unlocked()      getc_unlocked(stdin)
-#define        putchar(x)              putc(x, stdout)
 #define        putchar_unlocked(x)     putc_unlocked(x, stdout)
 
 #endif /* !_STDIO_H_ */
index b349bfe..e3dec5f 100644 (file)
@@ -1,6 +1,6 @@
 #      @(#)Makefile    8.2 (Berkeley) 2/3/94
 # $FreeBSD: src/lib/libc/Makefile,v 1.24 1999/09/29 15:18:29 marcel Exp $
-# $DragonFly: src/lib/libc/Makefile,v 1.4 2004/06/06 22:44:34 dillon Exp $
+# $DragonFly: src/lib/libc/Makefile,v 1.5 2005/01/31 22:29:01 dillon Exp $
 #
 # All library objects contain rcsid strings by default; they may be
 # excluded as a space-saving measure.  To produce a library that does
@@ -19,7 +19,17 @@ PRECIOUSLIB= yes
 #
 # Don't bother hiding any syscalls (like libc_r does).
 #
-HIDDEN_SYSCALLS=
+HIDDEN_SYSCALLS= _exit.o accept.o aio_suspend.o bind.o close.o connect.o \
+       dup.o dup2.o execve.o fchflags.o fchmod.o fchown.o fcntl.o \
+       flock.o fpathconf.o fstat.o fstatfs.o fsync.o getdirentries.o \
+       getpeername.o getsockname.o getsockopt.o ioctl.o \
+       kevent.o listen.o \
+       msync.o nanosleep.o nfssvc.o open.o poll.o read.o readv.o recvfrom.o \
+       recvmsg.o sched_yield.o select.o sendfile.o sendmsg.o sendto.o \
+       setsockopt.o shutdown.o sigaction.o sigaltstack.o \
+       sigpending.o sigprocmask.o sigreturn.o \
+       sigsuspend.o socket.o \
+       socketpair.o wait4.o write.o writev.o
 
 #
 # Include make rules that are shared with libc_r.
index 6319621..016bf4b 100644 (file)
@@ -1,5 +1,5 @@
 # $FreeBSD: src/lib/libc/Makefile.inc,v 1.5 1999/08/27 23:58:06 peter Exp $
-# $DragonFly: src/lib/libc/Makefile.inc,v 1.2 2003/06/17 04:26:41 dillon Exp $
+# $DragonFly: src/lib/libc/Makefile.inc,v 1.3 2005/01/31 22:29:01 dillon Exp $
 #
 # This file contains make rules that are shared by libc and libc_r.
 #
@@ -11,6 +11,8 @@ MDASM=
 MIASM=
 NOASM=
 
+WARNS=6
+
 #
 # If there is a machine dependent makefile, use it:
 #
index ca791e6..163a693 100644 (file)
  * SUCH DAMAGE.
  *
  * $FreeBSD: src/lib/libc/compat-43/creat.c,v 1.4.2.2 2001/03/05 07:28:35 obrien Exp $
- * $DragonFly: src/lib/libc/compat-43/creat.c,v 1.2 2003/06/17 04:26:41 dillon Exp $
+ * $DragonFly: src/lib/libc/compat-43/creat.c,v 1.3 2005/01/31 22:29:03 dillon Exp $
  *
  * @(#)creat.c 8.1 (Berkeley) 6/2/93
  */
 
+#include "namespace.h"
 #include <fcntl.h>
+#include "un-namespace.h"
 
 int
 __creat(const char *path, mode_t mode)
@@ -44,6 +46,6 @@ __creat(const char *path, mode_t mode)
        return(_open(path, O_WRONLY|O_CREAT|O_TRUNC, mode));
 }
 
-#ifndef _THREAD_SAFE
 __weak_reference(__creat, creat);
-#endif
+__weak_reference(__creat, _creat);
+
index 5bf6619..00eb721 100644 (file)
  * SUCH DAMAGE.
  *
  * $FreeBSD: src/lib/libc/compat-43/sigcompat.c,v 1.7 2000/01/27 23:06:04 jasone Exp $
- * $DragonFly: src/lib/libc/compat-43/sigcompat.c,v 1.2 2003/06/17 04:26:41 dillon Exp $
- *
- * @(#)sigcompat.c     8.1 (Berkeley) 6/2/93
- * $FreeBSD: src/lib/libc/compat-43/sigcompat.c,v 1.7 2000/01/27 23:06:04 jasone Exp $
+ * $DragonFly: src/lib/libc/compat-43/sigcompat.c,v 1.3 2005/01/31 22:29:03 dillon Exp $
  */
 
+#include "namespace.h"
 #include <sys/param.h>
 #include <signal.h>
+#include "un-namespace.h"
+#include "libc_private.h"
 
 int
-sigvec(signo, sv, osv)
-       int signo;
-       struct sigvec *sv, *osv;
+sigvec(int signo, struct sigvec *sv, struct sigvec *osv)
 {
        struct sigaction sa, osa;
        struct sigaction *sap, *osap;
@@ -58,7 +56,7 @@ sigvec(signo, sv, osv)
        } else
                sap = NULL;
        osap = osv != NULL ? &osa : NULL;
-       ret = sigaction(signo, sap, osap);
+       ret = _sigaction(signo, sap, osap);
        if (ret == 0 && osv != NULL) {
                osv->sv_handler = osa.sa_handler;
                osv->sv_flags = osa.sa_flags ^ SV_INTERRUPT;
@@ -68,38 +66,35 @@ sigvec(signo, sv, osv)
 }
 
 int
-sigsetmask(mask)
-       int mask;
+sigsetmask(int mask)
 {
        sigset_t set, oset;
        int n;
 
        sigemptyset(&set);
        set.__bits[0] = mask;
-       n = sigprocmask(SIG_SETMASK, &set, &oset);
+       n = _sigprocmask(SIG_SETMASK, &set, &oset);
        if (n)
                return (n);
        return (oset.__bits[0]);
 }
 
 int
-sigblock(mask)
-       int mask;
+sigblock(int mask)
 {
        sigset_t set, oset;
        int n;
 
        sigemptyset(&set);
        set.__bits[0] = mask;
-       n = sigprocmask(SIG_BLOCK, &set, &oset);
+       n = _sigprocmask(SIG_BLOCK, &set, &oset);
        if (n)
                return (n);
        return (oset.__bits[0]);
 }
 
 int
-sigpause(mask)
-       int mask;
+sigpause(int mask)
 {
        sigset_t set;
 
index 2c9bb1e..8ec5acb 100644 (file)
  * SUCH DAMAGE.
  *
  * $FreeBSD: src/lib/libc/db/btree/bt_close.c,v 1.5 2000/01/27 23:06:05 jasone Exp $
- * $DragonFly: src/lib/libc/db/btree/bt_close.c,v 1.3 2003/11/12 20:21:22 eirikn Exp $
+ * $DragonFly: src/lib/libc/db/btree/bt_close.c,v 1.4 2005/01/31 22:29:07 dillon Exp $
  *
  * @(#)bt_close.c      8.7 (Berkeley) 8/17/94
  */
 
+#include "namespace.h"
 #include <sys/param.h>
 
 #include <errno.h>
@@ -46,6 +47,7 @@
 #include <stdlib.h>
 #include <string.h>
 #include <unistd.h>
+#include "un-namespace.h"
 
 #include <db.h>
 #include "btree.h"
@@ -62,8 +64,7 @@ static int bt_meta (BTREE *);
  *     RET_ERROR, RET_SUCCESS
  */
 int
-__bt_close(dbp)
-       DB *dbp;
+__bt_close(DB *dbp)
 {
        BTREE *t;
        int fd;
@@ -117,9 +118,7 @@ __bt_close(dbp)
  *     RET_SUCCESS, RET_ERROR.
  */
 int
-__bt_sync(dbp, flags)
-       const DB *dbp;
-       u_int flags;
+__bt_sync(const DB *dbp, u_int flags)
 {
        BTREE *t;
        int status;
@@ -160,8 +159,7 @@ __bt_sync(dbp, flags)
  *     RET_ERROR, RET_SUCCESS
  */
 static int
-bt_meta(t)
-       BTREE *t;
+bt_meta(BTREE *t)
 {
        BTMETA m;
        void *p;
index 1083e9f..e04857e 100644 (file)
@@ -34,7 +34,7 @@
  * SUCH DAMAGE.
  *
  * $FreeBSD: src/lib/libc/db/btree/bt_open.c,v 1.7.2.1 2000/11/02 10:30:07 kris Exp $
- * $DragonFly: src/lib/libc/db/btree/bt_open.c,v 1.3 2003/11/12 20:21:22 eirikn Exp $
+ * $DragonFly: src/lib/libc/db/btree/bt_open.c,v 1.4 2005/01/31 22:29:07 dillon Exp $
  *
  * @(#)bt_open.c       8.10 (Berkeley) 8/17/94
  */
@@ -47,6 +47,7 @@
  * is wholly independent of the Postgres code.
  */
 
+#include "namespace.h"
 #include <sys/param.h>
 #include <sys/stat.h>
 
@@ -58,6 +59,7 @@
 #include <stdlib.h>
 #include <string.h>
 #include <unistd.h>
+#include "un-namespace.h"
 
 #include <db.h>
 #include "btree.h"
@@ -216,7 +218,7 @@ __bt_open(fname, flags, mode, openinfo, dflags)
        if (_fcntl(t->bt_fd, F_SETFD, 1) == -1)
                goto err;
 
-       if (fstat(t->bt_fd, &sb))
+       if (_fstat(t->bt_fd, &sb))
                goto err;
        if (sb.st_size) {
                if ((nr = _read(t->bt_fd, &m, sizeof(BTMETA))) < 0)
@@ -398,10 +400,10 @@ tmp()
            sizeof(path), "%s/bt.XXXXXXXXXX", envtmp ? envtmp : "/tmp");
 
        (void)sigfillset(&set);
-       (void)sigprocmask(SIG_BLOCK, &set, &oset);
+       (void)_sigprocmask(SIG_BLOCK, &set, &oset);
        if ((fd = mkstemp(path)) != -1)
                (void)unlink(path);
-       (void)sigprocmask(SIG_SETMASK, &oset, NULL);
+       (void)_sigprocmask(SIG_SETMASK, &oset, NULL);
        return(fd);
 }
 
index 7d05478..329d10b 100644 (file)
  * SUCH DAMAGE.
  *
  * $FreeBSD: src/lib/libc/db/hash/hash.c,v 1.8 2000/01/27 23:06:08 jasone Exp $
- * $DragonFly: src/lib/libc/db/hash/hash.c,v 1.4 2004/10/25 19:38:01 drhodus Exp $
+ * $DragonFly: src/lib/libc/db/hash/hash.c,v 1.5 2005/01/31 22:29:09 dillon Exp $
  *
  * @(#)hash.c  8.9 (Berkeley) 6/16/94
  */
 
+#include "namespace.h"
 #include <sys/param.h>
 #include <sys/stat.h>
 
@@ -51,6 +52,7 @@
 #ifdef DEBUG
 #include <assert.h>
 #endif
+#include "un-namespace.h"
 
 #include <db.h>
 #include "hash.h"
@@ -135,7 +137,7 @@ __hash_open(file, flags, mode, info, dflags)
                /* if the .db file is empty, and we had permission to create
                   a new .db file, then reinitialize the database */
                if ((flags & O_CREAT) &&
-                    fstat(hashp->fp, &statbuf) == 0 && statbuf.st_size == 0)
+                    _fstat(hashp->fp, &statbuf) == 0 && statbuf.st_size == 0)
                        new_table = 1;
 
                (void)_fcntl(hashp->fp, F_SETFD, 1);
@@ -544,7 +546,8 @@ hash_get(dbp, key, data, flag)
 
        hashp = (HTAB *)dbp->internal;
        if (flag) {
-               hashp->error = errno = EINVAL;
+               hashp->error = EINVAL;
+               errno = EINVAL;
                return (ERROR);
        }
        return (hash_access(hashp, HASH_GET, (DBT *)key, data));
index b42f30f..2cbac96 100644 (file)
@@ -34,7 +34,7 @@
  * SUCH DAMAGE.
  *
  * $FreeBSD: src/lib/libc/db/hash/hash_page.c,v 1.5 2000/01/27 23:06:08 jasone Exp $
- * $DragonFly: src/lib/libc/db/hash/hash_page.c,v 1.4 2004/10/25 19:38:01 drhodus Exp $
+ * $DragonFly: src/lib/libc/db/hash/hash_page.c,v 1.5 2005/01/31 22:29:09 dillon Exp $
  *
  * @(#)hash_page.c     8.7 (Berkeley) 8/16/94
  */
@@ -55,6 +55,7 @@
  *     open_temp
  */
 
+#include "namespace.h"
 #include <sys/types.h>
 
 #include <errno.h>
@@ -67,6 +68,7 @@
 #ifdef DEBUG
 #include <assert.h>
 #endif
+#include "un-namespace.h"
 
 #include <db.h>
 #include "hash.h"
@@ -865,12 +867,12 @@ open_temp(hashp)
 
        /* Block signals; make sure file goes away at process exit. */
        (void)sigfillset(&set);
-       (void)sigprocmask(SIG_BLOCK, &set, &oset);
+       (void)_sigprocmask(SIG_BLOCK, &set, &oset);
        if ((hashp->fp = mkstemp(namestr)) != -1) {
                (void)unlink(namestr);
                (void)_fcntl(hashp->fp, F_SETFD, 1);
        }
-       (void)sigprocmask(SIG_SETMASK, &oset, (sigset_t *)NULL);
+       (void)_sigprocmask(SIG_SETMASK, &oset, (sigset_t *)NULL);
        return (hashp->fp != -1 ? 0 : -1);
 }
 
index 488c773..22889c6 100644 (file)
  * SUCH DAMAGE.
  *
  * $FreeBSD: src/lib/libc/db/mpool/mpool.c,v 1.5.2.1 2001/03/05 23:05:01 obrien Exp $
- * $DragonFly: src/lib/libc/db/mpool/mpool.c,v 1.3 2003/11/12 20:21:23 eirikn Exp $
+ * $DragonFly: src/lib/libc/db/mpool/mpool.c,v 1.4 2005/01/31 22:29:11 dillon Exp $
  *
  * @(#)mpool.c 8.5 (Berkeley) 7/26/94
  */
 
+#include "namespace.h"
 #include <sys/param.h>
 #include <sys/queue.h>
 #include <sys/stat.h>
@@ -45,6 +46,7 @@
 #include <stdlib.h>
 #include <string.h>
 #include <unistd.h>
+#include "un-namespace.h"
 
 #include <db.h>
 
@@ -75,7 +77,7 @@ mpool_open(key, fd, pagesize, maxcache)
         * XXX
         * We don't currently handle pipes, although we should.
         */
-       if (fstat(fd, &sb))
+       if (_fstat(fd, &sb))
                return (NULL);
        if (!S_ISREG(sb.st_mode)) {
                errno = ESPIPE;
index fb4c5df..cc3ef22 100644 (file)
  *
  * @(#)rec_close.c     8.6 (Berkeley) 8/18/94
  * $FreeBSD: src/lib/libc/db/recno/rec_close.c,v 1.4 2000/01/27 23:06:11 jasone Exp $
- * $DragonFly: src/lib/libc/db/recno/rec_close.c,v 1.2 2003/06/17 04:26:42 dillon Exp $
+ * $DragonFly: src/lib/libc/db/recno/rec_close.c,v 1.3 2005/01/31 22:29:13 dillon Exp $
  */
 
+#include "namespace.h"
 #include <sys/types.h>
 #include <sys/uio.h>
 #include <sys/mman.h>
@@ -43,6 +44,7 @@
 #include <limits.h>
 #include <stdio.h>
 #include <unistd.h>
+#include "un-namespace.h"
 
 #include <db.h>
 #include "recno.h"
@@ -163,7 +165,7 @@ __rec_sync(dbp, flags)
                while (status == RET_SUCCESS) {
                        iov[0].iov_base = data.data;
                        iov[0].iov_len = data.size;
-                       if (writev(t->bt_rfd, iov, 2) != data.size + 1)
+                       if (_writev(t->bt_rfd, iov, 2) != data.size + 1)
                                return (RET_ERROR);
                        status = (dbp->seq)(dbp, &key, &data, R_NEXT);
                }
index 5ab519f..07812df 100644 (file)
  *
  * @(#)rec_open.c      8.10 (Berkeley) 9/1/94
  * $FreeBSD: src/lib/libc/db/recno/rec_open.c,v 1.4 2000/01/27 23:06:11 jasone Exp $
- * $DragonFly: src/lib/libc/db/recno/rec_open.c,v 1.2 2003/06/17 04:26:42 dillon Exp $
+ * $DragonFly: src/lib/libc/db/recno/rec_open.c,v 1.3 2005/01/31 22:29:13 dillon Exp $
  */
 
+#include "namespace.h"
 #include <sys/types.h>
 #include <sys/mman.h>
 #include <sys/stat.h>
@@ -48,6 +49,7 @@
 #include <stddef.h>
 #include <stdio.h>
 #include <unistd.h>
+#include "un-namespace.h"
 
 #include <db.h>
 #include "recno.h"
@@ -144,7 +146,7 @@ slow:                       if ((t->bt_rfp = fdopen(rfd, "r")) == NULL)
                                goto einval;
                        }
 
-                       if (fstat(rfd, &sb))
+                       if (_fstat(rfd, &sb))
                                goto err;
                        /*
                         * Kluge -- we'd like to test to see if the file is too
index 7d7b138..7a32a81 100644 (file)
@@ -1,12 +1,12 @@
 #      @(#)Makefile.inc        8.6 (Berkeley) 5/4/95
 # $FreeBSD: src/lib/libc/gen/Makefile.inc,v 1.62.2.19 2003/02/21 13:46:16 phantom Exp $
-# $DragonFly: src/lib/libc/gen/Makefile.inc,v 1.5 2004/12/16 22:55:29 joerg Exp $
+# $DragonFly: src/lib/libc/gen/Makefile.inc,v 1.6 2005/01/31 22:29:15 dillon Exp $
 
 # machine-independent gen sources
 .PATH: ${.CURDIR}/../libc/${MACHINE_ARCH}/gen ${.CURDIR}/../libc/gen
 
-SRCS+=  _rand48.c _spinlock_stub.c alarm.c arc4random.c assert.c \
-       basename.c \
+SRCS+=  _pthread_stubs.c _rand48.c _spinlock_stub.c _thread_init.c \
+       alarm.c arc4random.c assert.c basename.c \
        clock.c closedir.c confstr.c \
        crypt.c ctermid.c daemon.c devname.c dirname.c disklabel.c \
        dlfcn.c drand48.c erand48.c err.c errlst.c \
diff --git a/lib/libc/gen/_pthread_stubs.c b/lib/libc/gen/_pthread_stubs.c
new file mode 100644 (file)
index 0000000..0f6341e
--- /dev/null
@@ -0,0 +1,133 @@
+/*
+ * Copyright (c) 2001 Daniel Eischen <deischen@FreeBSD.org>.
+ * All rights reserved.
+ *
+ * Redistribution and use in source and binary forms, with or without
+ * modification, are permitted provided that the following conditions
+ * are met:
+ * 1. Redistributions of source code must retain the above copyright
+ *    notice, this list of conditions and the following disclaimer.
+ * 2. Redistributions in binary form must reproduce the above copyright
+ *    notice, this list of conditions and the following disclaimer in the
+ *    documentation and/or other materials provided with the distribution.
+ *
+ * THIS SOFTWARE IS PROVIDED BY DANIEL EISCHEN AND CONTRIBUTORS ``AS IS''
+ * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
+ * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
+ * ARE DISCLAIMED.  IN NO EVENT SHALL THE AUTHOR OR CONTRIBUTORS BE LIABLE
+ * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
+ * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
+ * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
+ * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
+ * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
+ * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
+ * SUCH DAMAGE.
+ *
+ * $FreeBSD: /repoman/r/ncvs/src/lib/libc/gen/_pthread_stubs.c,v 1.1 2001/01/24 12:59:20 deischen Exp $
+ * $DragonFly: src/lib/libc/gen/_pthread_stubs.c,v 1.1 2005/01/31 22:29:15 dillon Exp $
+ */
+
+#include <pthread.h>
+
+/*
+ * Weak symbols: All libc internal usage of these functions should
+ * use the weak symbol versions (_pthread_XXX).  If libpthread is
+ * linked, it will override these functions with (non-weak) routines.
+ * The _pthread_XXX functions are provided solely for internal libc
+ * usage to avoid unwanted cancellation points and to differentiate
+ * between application locks and libc locks (threads holding the
+ * latter can't be allowed to exit/terminate).
+ */
+#pragma weak   _pthread_getspecific=_pthread_getspecific_stub
+#pragma weak   _pthread_key_create=_pthread_key_create_stub
+#pragma weak   _pthread_key_delete=_pthread_key_delete_stub
+#pragma weak   _pthread_mutex_destroy=_pthread_mutex_destroy_stub
+#pragma weak   _pthread_mutex_init=_pthread_mutex_init_stub
+#pragma weak   _pthread_mutex_lock=_pthread_mutex_lock_stub
+#pragma weak   _pthread_mutex_trylock=_pthread_mutex_trylock_stub
+#pragma weak   _pthread_mutex_unlock=_pthread_mutex_unlock_stub
+#pragma weak   _pthread_mutexattr_init=_pthread_mutexattr_init_stub
+#pragma weak   _pthread_mutexattr_destroy=_pthread_mutexattr_destroy_stub
+#pragma weak   _pthread_mutexattr_settype=_pthread_mutexattr_settype_stub
+#pragma weak   _pthread_once=_pthread_once_stub
+#pragma weak   _pthread_setspecific=_pthread_setspecific_stub
+
+
+void *
+_pthread_getspecific_stub(pthread_key_t key)
+{
+       return (NULL);
+}
+
+int
+_pthread_key_create_stub(pthread_key_t *key, void (*destructor) (void *))
+{
+       return (0);
+}
+
+int
+_pthread_key_delete_stub(pthread_key_t key)
+{
+       return (0);
+}
+
+int
+_pthread_mutex_destroy_stub(pthread_mutex_t *mattr)
+{
+       return (0);
+}
+
+int
+_pthread_mutex_init_stub(pthread_mutex_t *mutex, const pthread_mutexattr_t *mattr)
+{
+       return (0);
+}
+
+int
+_pthread_mutex_lock_stub(pthread_mutex_t *mutex)
+{
+       return (0);
+}
+
+int
+_pthread_mutex_trylock_stub(pthread_mutex_t *mutex)
+{
+       return (0);
+}
+
+int
+_pthread_mutex_unlock_stub(pthread_mutex_t *mutex)
+{
+       return (0);
+}
+
+int
+_pthread_mutexattr_init_stub(pthread_mutexattr_t *mattr)
+{
+       return (0);
+}
+
+int
+_pthread_mutexattr_destroy_stub(pthread_mutexattr_t *mattr)
+{
+       return (0);
+}
+
+int
+_pthread_mutexattr_settype_stub(pthread_mutexattr_t *mattr, int type)
+{
+       return (0);
+}
+
+int
+_pthread_once_stub(pthread_once_t *once_control, void (*init_routine) (void))
+{
+       return (0);
+}
+
+int
+_pthread_setspecific_stub(pthread_key_t key, const void *value)
+{
+       return (0);
+}
+
index 344b98f..454233e 100644 (file)
  * SUCH DAMAGE.
  *
  * $FreeBSD: src/lib/libc/gen/_spinlock_stub.c,v 1.4 1999/08/27 23:58:27 peter Exp $
- * $DragonFly: src/lib/libc/gen/_spinlock_stub.c,v 1.3 2004/01/23 11:30:27 joerg Exp $
+ * $DragonFly: src/lib/libc/gen/_spinlock_stub.c,v 1.4 2005/01/31 22:29:15 dillon Exp $
  *
  */
 
 #include <stdio.h>
 
 /* Don't build these stubs into libc_r: */
-#ifndef        _THREAD_SAFE
 #include "spinlock.h"
 
 /*
- * Declare weak references in case the application is not linked
+ * Declare weak definitions in case the application is not linked
  * with libpthread.
  */
+#pragma weak _atomic_lock=_atomic_lock_stub
 #pragma weak _spinlock=_spinlock_stub
 #pragma weak _spinlock_debug=_spinlock_debug_stub
+#pragma weak _spinunlock=_spinunlock_stub
 
 void   _spinlock(spinlock_t *);
 void   _spinlock_debug(spinlock_t *, char *, int);
 
+/*
+ * This function is a stub for the _atomic_lock function in libpthread.
+ */
+long
+_atomic_lock_stub(volatile long *lck)
+{
+       return (0L);
+}
+
 /*
  * This function is a stub for the spinlock function in libpthread.
  */
@@ -58,6 +68,14 @@ _spinlock_stub(spinlock_t *lck)
 {
 }
 
+/*
+ * This function is a stub for the spinunlock function in libpthread.
+ */
+void
+_spinunlock_stub(spinlock_t *lck)
+{
+}
+
 /*
  * This function is a stub for the debug spinlock function in libpthread.
  */
@@ -65,4 +83,3 @@ void
 _spinlock_debug_stub(spinlock_t *lck, char *fname, int lineno)
 {
 }
-#endif
diff --git a/lib/libc/gen/_thread_init.c b/lib/libc/gen/_thread_init.c
new file mode 100644 (file)
index 0000000..1eba8ad
--- /dev/null
@@ -0,0 +1,42 @@
+/*
+ * Copyright (c) 2001 Daniel Eischen <deischen@FreeBSD.org>
+ * All rights reserved.
+ *
+ * Redistribution and use in source and binary forms, with or without
+ * modification, are permitted provided that the following conditions
+ * are met:
+ * 1. Redistributions of source code must retain the above copyright
+ *    notice, this list of conditions and the following disclaimer.
+ * 2. Neither the name of the author nor the names of any co-contributors
+ *    may be used to endorse or promote products derived from this software
+ *    without specific prior written permission.
+ *
+ * THIS SOFTWARE IS PROVIDED BY DANIEL EISCHEN AND CONTRIBUTORS ``AS IS''
+ * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
+ * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
+ * ARE DISCLAIMED.  IN NO EVENT SHALL THE AUTHOR OR CONTRIBUTORS BE LIABLE
+ * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
+ * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
+ * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
+ * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
+ * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
+ * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
+ * SUCH DAMAGE.
+ *
+ * $DragonFly: src/lib/libc/gen/_thread_init.c,v 1.1 2005/01/31 22:29:15 dillon Exp $
+ */
+
+#include <sys/cdefs.h>
+
+#include <sys/types.h>
+
+__weak_reference(_thread_init_stub, _thread_init);
+__weak_reference(_thread_autoinit_dummy_decl_stub, _thread_autoinit_dummy_decl);
+
+int    _thread_autoinit_dummy_decl_stub = 0;
+
+void
+_thread_init_stub(void)
+{
+       /* This is just a stub; there is nothing to do. */
+}
index c074536..9af7f5a 100644 (file)
@@ -1,5 +1,5 @@
 /* $FreeBSD: src/lib/libc/gen/arc4random.c,v 1.4 2000/01/27 23:06:13 jasone Exp $ */
-/* $DragonFly: src/lib/libc/gen/arc4random.c,v 1.4 2004/06/19 18:55:47 joerg Exp $ */
+/* $DragonFly: src/lib/libc/gen/arc4random.c,v 1.5 2005/01/31 22:29:15 dillon Exp $ */
 
 /*
  * Arc4 random number generator for OpenBSD.
  * RC4 is a registered trademark of RSA Laboratories.
  */
 
+#include "namespace.h"
 #include <stdlib.h>
 #include <fcntl.h>
 #include <unistd.h>
 #include <sys/types.h>
 #include <sys/time.h>
+#include "un-namespace.h"
 
 struct arc4_stream {
        u_int8_t i;
index d4201c8..8a953b3 100644 (file)
  * SUCH DAMAGE.
  *
  * $FreeBSD: src/lib/libc/gen/closedir.c,v 1.6.2.1 2001/03/05 08:29:56 obrien Exp $
- * $DragonFly: src/lib/libc/gen/closedir.c,v 1.3 2003/11/12 20:21:23 eirikn Exp $
+ * $DragonFly: src/lib/libc/gen/closedir.c,v 1.4 2005/01/31 22:29:15 dillon Exp $
  *
  * @(#)closedir.c      8.1 (Berkeley) 6/10/93
  */
 
+#include "namespace.h"
 #include <sys/types.h>
 #include <dirent.h>
+#include <pthread.h>
 #include <stdlib.h>
 #include <unistd.h>
+#include "un-namespace.h"
+
+#include "libc_private.h"
 
 extern void _reclaim_telldir (DIR *);
 
@@ -47,17 +52,22 @@ extern void _reclaim_telldir (DIR *);
  * close a directory.
  */
 int
-closedir(dirp)
-       DIR *dirp;
+closedir(DIR *dirp)
 {
        int fd;
 
-       seekdir(dirp, dirp->dd_rewind); /* free seekdir storage */
+       if (__isthreaded)
+               _pthread_mutex_lock((pthread_mutex_t *)&dirp->dd_lock);
+       _seekdir(dirp, dirp->dd_rewind);        /* free seekdir storage */
        fd = dirp->dd_fd;
        dirp->dd_fd = -1;
        dirp->dd_loc = 0;
        free((void *)dirp->dd_buf);
        _reclaim_telldir(dirp);
+       if (__isthreaded) {
+               _pthread_mutex_unlock((pthread_mutex_t *)&dirp->dd_lock);
+               _pthread_mutex_destroy((pthread_mutex_t *)&dirp->dd_lock);
+       }
        free((void *)dirp);
        return(_close(fd));
 }
index 4725b7c..4550478 100644 (file)
  * SUCH DAMAGE.
  *
  * $FreeBSD: src/lib/libc/gen/daemon.c,v 1.3 2000/01/27 23:06:14 jasone Exp $
- * $DragonFly: src/lib/libc/gen/daemon.c,v 1.2 2003/06/17 04:26:42 dillon Exp $
+ * $DragonFly: src/lib/libc/gen/daemon.c,v 1.3 2005/01/31 22:29:15 dillon Exp $
  *
  * @(#)daemon.c        8.1 (Berkeley) 6/4/93
  */
 
+#include "namespace.h"
 #include <fcntl.h>
 #include <paths.h>
 #include <unistd.h>
+#include "un-namespace.h"
 
 int
 daemon(nochdir, noclose)
@@ -62,9 +64,9 @@ daemon(nochdir, noclose)
                (void)chdir("/");
 
        if (!noclose && (fd = _open(_PATH_DEVNULL, O_RDWR, 0)) != -1) {
-               (void)dup2(fd, STDIN_FILENO);
-               (void)dup2(fd, STDOUT_FILENO);
-               (void)dup2(fd, STDERR_FILENO);
+               (void)_dup2(fd, STDIN_FILENO);
+               (void)_dup2(fd, STDOUT_FILENO);
+               (void)_dup2(fd, STDERR_FILENO);
                if (fd > 2)
                        (void)_close(fd);
        }
index b90a8fa..b922220 100644 (file)
@@ -31,7 +31,7 @@
  * SUCH DAMAGE.
  *
  * $FreeBSD: src/lib/libc/gen/devname.c,v 1.2.2.2 2001/07/31 20:10:19 tmm Exp $
- * $DragonFly: src/lib/libc/gen/devname.c,v 1.4 2004/01/06 15:38:09 eirikn Exp $
+ * $DragonFly: src/lib/libc/gen/devname.c,v 1.5 2005/01/31 22:29:15 dillon Exp $
  *
  * @(#)devname.c       8.2 (Berkeley) 4/29/95
  */
@@ -41,7 +41,6 @@
 
 #include <db.h>
 #include <err.h>
-#include <errno.h>
 #include <fcntl.h>
 #include <paths.h>
 #include <stdio.h>
index c874cee..fa2c5fa 100644 (file)
  * SUCH DAMAGE.
  *
  * $FreeBSD: src/lib/libc/gen/exec.c,v 1.15 2000/01/27 23:06:14 jasone Exp $
- * $DragonFly: src/lib/libc/gen/exec.c,v 1.4 2004/07/27 07:59:10 asmodai Exp $
+ * $DragonFly: src/lib/libc/gen/exec.c,v 1.5 2005/01/31 22:29:15 dillon Exp $
  *
  * @(#)exec.c  8.1 (Berkeley) 6/4/93
  * $FreeBSD: src/lib/libc/gen/exec.c,v 1.15 2000/01/27 23:06:14 jasone Exp $
  */
 
+#include "namespace.h"
 #include <sys/param.h>
 #include <sys/types.h>
 #include <sys/stat.h>
@@ -46,6 +47,7 @@
 #include <string.h>
 #include <stdio.h>
 #include <paths.h>
+#include "un-namespace.h"
 
 #include <stdarg.h>
 
@@ -74,7 +76,7 @@ execl(const char *name, const char *arg, ...)
        while ((argv[n] = va_arg(ap, char *)) != NULL)
                n++;
        va_end(ap);
-       return (execve(name, argv, environ));
+       return (_execve(name, argv, environ));
 }
 
 int
@@ -101,7 +103,7 @@ execle(const char *name, const char *arg, ...)
                n++;
        envp = va_arg(ap, char **);
        va_end(ap);
-       return (execve(name, argv, envp));
+       return (_execve(name, argv, envp));
 }
 
 int
@@ -136,7 +138,7 @@ execv(name, argv)
        const char *name;
        char * const *argv;
 {
-       (void)execve(name, argv, environ);
+       (void)_execve(name, argv, environ);
        return (-1);
 }
 
@@ -207,7 +209,7 @@ execvp(name, argv)
                bcopy(name, buf + lp + 1, ln);
                buf[lp + ln + 1] = '\0';
 
-retry:         (void)execve(bp, argv, environ);
+retry:         (void)_execve(bp, argv, environ);
                switch(errno) {
                case E2BIG:
                        goto done;
@@ -226,7 +228,7 @@ retry:              (void)execve(bp, argv, environ);
                        memp[0] = "sh";
                        memp[1] = bp;
                        bcopy(argv + 1, memp + 2, cnt * sizeof(char *));
-                       (void)execve(_PATH_BSHELL, memp, environ);
+                       (void)_execve(_PATH_BSHELL, memp, environ);
                        goto done;
                case ENOMEM:
                        goto done;
index 773030b..6ad3086 100644 (file)
  * SUCH DAMAGE.
  *
  * $FreeBSD: src/lib/libc/gen/fstab.c,v 1.8 2000/01/27 23:06:15 jasone Exp $
- * $DragonFly: src/lib/libc/gen/fstab.c,v 1.4 2004/06/06 15:05:55 hmp Exp $
+ * $DragonFly: src/lib/libc/gen/fstab.c,v 1.5 2005/01/31 22:29:15 dillon Exp $
  *
  * @(#)fstab.c 8.1 (Berkeley) 6/4/93
  * $FreeBSD: src/lib/libc/gen/fstab.c,v 1.8 2000/01/27 23:06:15 jasone Exp $
  */
 
+#include "namespace.h"
 #include <sys/param.h>
 #include <sys/mount.h>
 #include <sys/stat.h>
@@ -48,6 +49,7 @@
 #include <stdlib.h>
 #include <string.h>
 #include <unistd.h>
+#include "un-namespace.h"
 
 static FILE *_fs_fp;
 static struct fstab _fs_fstab;
index 156e8cd..80cb8e2 100644 (file)
  * $OpenBSD: fts.c,v 1.22 1999/10/03 19:22:22 millert Exp $
  *
  * $FreeBSD: src/lib/libc/gen/fts.c,v 1.14.2.4 2001/06/01 22:00:34 kris Exp $
- * $DragonFly: src/lib/libc/gen/fts.c,v 1.4 2004/06/06 15:05:55 hmp Exp $
+ * $DragonFly: src/lib/libc/gen/fts.c,v 1.5 2005/01/31 22:29:15 dillon Exp $
  *
  * @(#)fts.c   8.6 (Berkeley) 8/14/94
  * $FreeBSD: src/lib/libc/gen/fts.c,v 1.14.2.4 2001/06/01 22:00:34 kris Exp $
  */
 
+#include "namespace.h"
 #include <sys/param.h>
 #include <sys/stat.h>
 
@@ -49,6 +50,7 @@
 #include <stdlib.h>
 #include <string.h>
 #include <unistd.h>
+#include "un-namespace.h"
 
 static FTSENT  *fts_alloc (FTS *, char *, int);
 static FTSENT  *fts_build (FTS *, int);
@@ -1079,7 +1081,7 @@ fts_safe_changedir(sp, p, fd, path)
                return (0);
        if (fd < 0 && (newfd = _open(path, O_RDONLY, 0)) < 0)
                return (-1);
-       if (fstat(newfd, &sb)) {
+       if (_fstat(newfd, &sb)) {
                ret = -1;
                goto bail;
        }
index cf3081a..f71fbf0 100644 (file)
  * SUCH DAMAGE.
  *
  * $FreeBSD: src/lib/libc/gen/getcap.c,v 1.11.2.2 2001/01/15 06:48:09 gad Exp $
- * $DragonFly: src/lib/libc/gen/getcap.c,v 1.4 2004/06/06 15:05:55 hmp Exp $
+ * $DragonFly: src/lib/libc/gen/getcap.c,v 1.5 2005/01/31 22:29:15 dillon Exp $
  *
  * @(#)getcap.c        8.3 (Berkeley) 3/25/94
  */
 
+#include "namespace.h"
 #include <sys/types.h>
 
 #include <ctype.h>
-#include <db.h>
 #include <errno.h>
 #include <fcntl.h>
 #include <limits.h>
@@ -50,6 +50,9 @@
 #include <stdlib.h>
 #include <string.h>
 #include <unistd.h>
+#include "un-namespace.h"
+
+#include <db.h>
 
 #define        BFRAG           1024
 #define        BSIZE           1024
index 6d00b24..c98029d 100644 (file)
  * SUCH DAMAGE.
  *
  * $FreeBSD: src/lib/libc/gen/getcwd.c,v 1.18 1999/09/28 13:24:13 marcel Exp $
- * $DragonFly: src/lib/libc/gen/getcwd.c,v 1.3 2004/06/06 15:05:55 hmp Exp $
+ * $DragonFly: src/lib/libc/gen/getcwd.c,v 1.4 2005/01/31 22:29:15 dillon Exp $
  *
  * @(#)getcwd.c        8.5 (Berkeley) 2/7/95
  */
 
+#include "namespace.h"
 #include <sys/param.h>
 #include <sys/stat.h>
 
 #include <dirent.h>
 #include <errno.h>
 #include <fcntl.h>
+#include <signal.h>
 #include <stdio.h>
 #include <stdlib.h>
 #include <string.h>
 #include <unistd.h>
-#include <signal.h>
+#include "un-namespace.h"
 
 #define        ISDOT(dp) \
        (dp->d_name[0] == '.' && (dp->d_name[1] == '\0' || \
@@ -194,7 +196,7 @@ getcwd(pt, size)
                *bup = '\0';
 
                /* Open and stat parent directory. */
-               if (!(dir = opendir(up)) || fstat(dirfd(dir), &s))
+               if (!(dir = opendir(up)) || _fstat(dirfd(dir), &s))
                        goto err;
 
                /* Add trailing slash for next directory. */
index 6463f14..74013a4 100644 (file)
@@ -31,7 +31,7 @@
  * SUCH DAMAGE.
  *
  * $FreeBSD: src/lib/libc/gen/getlogin.c,v 1.4.2.1 2001/03/05 09:06:50 obrien Exp $
- * $DragonFly: src/lib/libc/gen/getlogin.c,v 1.2 2003/06/17 04:26:42 dillon Exp $
+ * $DragonFly: src/lib/libc/gen/getlogin.c,v 1.3 2005/01/31 22:29:15 dillon Exp $
  *
  * @(#)getlogin.c      8.1 (Berkeley) 6/4/93
  */
 #include <stdio.h>
 #include <string.h>
 #include <unistd.h>
+#include "namespace.h"
+#include <pthread.h>
+#include "un-namespace.h"
 
 #include <libc_private.h>
 
-#ifndef _THREAD_SAFE
-#define        THREAD_LOCK()
-#define        THREAD_UNLOCK()
-#else
-#include <pthread.h>
-#include "pthread_private.h"
-static struct pthread_mutex logname_lock = PTHREAD_MUTEX_STATIC_INITIALIZER;
-static pthread_mutex_t logname_mutex = &logname_lock;
-#define        THREAD_LOCK()   if (__isthreaded) pthread_mutex_lock(&logname_mutex)
-#define        THREAD_UNLOCK() if (__isthreaded) pthread_mutex_unlock(&logname_mutex)
-#endif /* _THREAD_SAFE */
+#define        THREAD_LOCK()   if (__isthreaded) _pthread_mutex_lock(&logname_mutex)
+#define        THREAD_UNLOCK() if (__isthreaded) _pthread_mutex_unlock(&logname_mutex)
 
-int            _logname_valid;         /* known to setlogin() */
+extern int             _getlogin(char *, int);
+int                    _logname_valid;         /* known to setlogin() */
+static pthread_mutex_t logname_mutex = PTHREAD_MUTEX_INITIALIZER;
 
 static char *
 getlogin_basic(int *status)
@@ -67,7 +64,7 @@ getlogin_basic(int *status)
 
        if (_logname_valid == 0) {
 #ifdef __NETBSD_SYSCALLS
-               if (__getlogin(logname, sizeof(logname) - 1) < 0) {
+               if (_getlogin(logname, sizeof(logname) - 1) < 0) {
 #else
                if (_getlogin(logname, sizeof(logname)) < 0) {
 #endif
index 01db1df..1006920 100644 (file)
  *
  * @(#)getpwent.c      8.2 (Berkeley) 4/27/95
  * $FreeBSD: src/lib/libc/gen/getpwent.c,v 1.53.2.2 2001/03/05 09:52:13 obrien Exp $
- * $DragonFly: src/lib/libc/gen/getpwent.c,v 1.4 2004/06/06 15:05:55 hmp Exp $
+ * $DragonFly: src/lib/libc/gen/getpwent.c,v 1.5 2005/01/31 22:29:15 dillon Exp $
  */
 
+#include "namespace.h"
 #include <stdio.h>
 #include <sys/param.h>
 #include <fcntl.h>
-#include <db.h>
 #include <syslog.h>
 #include <pwd.h>
 #include <utmp.h>
@@ -48,6 +48,9 @@
 #include <string.h>
 #include <limits.h>
 #include <grp.h>
+#include "un-namespace.h"
+
+#include <db.h>
 
 extern void setnetgrent ( char * );
 extern int getnetgrent ( char **, char **, char ** );
index f824375..3d8ffb6 100644 (file)
  * SUCH DAMAGE.
  *
  * $FreeBSD: src/lib/libc/gen/isatty.c,v 1.3.6.1 2001/03/05 09:52:13 obrien Exp $
- * $DragonFly: src/lib/libc/gen/isatty.c,v 1.2 2003/06/17 04:26:42 dillon Exp $
+ * $DragonFly: src/lib/libc/gen/isatty.c,v 1.3 2005/01/31 22:29:15 dillon Exp $
  *
  * @(#)isatty.c        8.1 (Berkeley) 6/4/93
  */
 
 #include <termios.h>
 #include <unistd.h>
-#ifdef _THREAD_SAFE
-#include <pthread.h>
-#include "pthread_private.h"
-#endif
 
 int
-isatty(fd)
-       int fd;
+isatty(int fd)
 {
        int retval;
        struct termios t;
 
-#ifdef _THREAD_SAFE
-       if (_FD_LOCK(fd, FD_READ, NULL) == 0) {
-#endif
-               retval = (tcgetattr(fd, &t) != -1);
-#ifdef _THREAD_SAFE
-               _FD_UNLOCK(fd, FD_READ);
-       } else {
-               retval = 0;
-       }
-#endif
+       retval = (tcgetattr(fd, &t) != -1);
        return(retval);
 }
index 0dfad24..38cb99b 100644 (file)
  * POSSIBILITY OF SUCH DAMAGE.
  *
  * $FreeBSD: src/lib/libc/gen/lockf.c,v 1.5 2000/01/27 23:06:17 jasone Exp $
- * $DragonFly: src/lib/libc/gen/lockf.c,v 1.2 2003/06/17 04:26:42 dillon Exp $
- *
- * $FreeBSD: src/lib/libc/gen/lockf.c,v 1.5 2000/01/27 23:06:17 jasone Exp $
+ * $DragonFly: src/lib/libc/gen/lockf.c,v 1.3 2005/01/31 22:29:15 dillon Exp $
  */
 
+#include "namespace.h"
 #include <errno.h>
 #include <fcntl.h>
 #include <unistd.h>
+#include "un-namespace.h"
 
 int
 lockf(filedes, function, size)
index f8aca94..f3981c6 100644 (file)
  * SUCH DAMAGE.
  *
  *     $FreeBSD: src/lib/libc/gen/nlist.c,v 1.12.2.1 2001/07/11 23:59:09 obrien Exp $
- *     $DragonFly: src/lib/libc/gen/nlist.c,v 1.4 2004/06/06 15:05:55 hmp Exp $
+ *     $DragonFly: src/lib/libc/gen/nlist.c,v 1.5 2005/01/31 22:29:15 dillon Exp $
  *
  * @(#)nlist.c 8.1 (Berkeley) 6/4/93
  */
 
+#include "namespace.h"
 #include <sys/param.h>
 #include <sys/mman.h>
 #include <sys/stat.h>
@@ -46,6 +47,7 @@
 #include <stdio.h>
 #include <string.h>
 #include <unistd.h>
+#include "un-namespace.h"
 
 #define _NLIST_DO_AOUT
 #define _NLIST_DO_ELF
@@ -117,7 +119,7 @@ __aout_fdnlist(fd, list)
        struct stat st;
 
        /* check that file is at least as large as struct exec! */
-       if ((fstat(fd, &st) < 0) || (st.st_size < sizeof(struct exec)))
+       if ((_fstat(fd, &st) < 0) || (st.st_size < sizeof(struct exec)))
                return (-1);
 
        /* Check for files too large to mmap. */
@@ -257,7 +259,7 @@ __elf_fdnlist(fd, list)
        if (lseek(fd, (off_t)0, SEEK_SET) == -1 ||
            _read(fd, &ehdr, sizeof(Elf_Ehdr)) != sizeof(Elf_Ehdr) ||
            !__elf_is_okay__(&ehdr) ||
-           fstat(fd, &st) < 0)
+           _fstat(fd, &st) < 0)
                return (-1);
 
        /* calculate section header table size */
index 9605e6a..d272c63 100644 (file)
  * SUCH DAMAGE.
  *
  * $FreeBSD: src/lib/libc/gen/opendir.c,v 1.10.2.1 2001/06/04 20:59:48 joerg Exp $
- * $DragonFly: src/lib/libc/gen/opendir.c,v 1.2 2003/06/17 04:26:42 dillon Exp $
+ * $DragonFly: src/lib/libc/gen/opendir.c,v 1.3 2005/01/31 22:29:15 dillon Exp $
  *
  * @(#)opendir.c       8.8 (Berkeley) 5/1/95
  */
 
+#include "namespace.h"
 #include <sys/param.h>
 #include <sys/mount.h>
 #include <sys/stat.h>
@@ -45,6 +46,7 @@
 #include <fcntl.h>
 #include <stdlib.h>
 #include <unistd.h>
+#include "un-namespace.h"
 
 /*
  * Open a directory.
@@ -53,7 +55,6 @@ DIR *
 opendir(name)
        const char *name;
 {
-
        return (__opendir2(name, DTF_HIDEW|DTF_NODUP));
 }
 
@@ -70,8 +71,8 @@ __opendir2(name, flags)
        struct stat statb;
 
        /*
-        * stat() before open() because opening of special files may be
-        * harmful.  fstat() after open because the file may have changed.
+        * stat() before _open() because opening of special files may be
+        * harmful.  _fstat() after open because the file may have changed.
         */
        if (stat(name, &statb) != 0)
                return (NULL);
@@ -82,7 +83,7 @@ __opendir2(name, flags)
        if ((fd = _open(name, O_RDONLY | O_NONBLOCK)) == -1)
                return (NULL);
        dirp = NULL;
-       if (fstat(fd, &statb) != 0)
+       if (_fstat(fd, &statb) != 0)
                goto fail;
        if (!S_ISDIR(statb.st_mode)) {
                errno = ENOTDIR;
@@ -95,7 +96,7 @@ __opendir2(name, flags)
        /*
         * Use the system page size if that is a multiple of DIRBLKSIZ.
         * Hopefully this can be a big win someday by allowing page
-        * trades to user space to be done by getdirentries().
+        * trades to user space to be done by _getdirentries().
         */
        incr = getpagesize();
        if ((incr % DIRBLKSIZ) != 0) 
@@ -107,7 +108,7 @@ __opendir2(name, flags)
        if (flags & DTF_NODUP) {
                struct statfs sfb;
 
-               if (fstatfs(fd, &sfb) < 0)
+               if (_fstatfs(fd, &sfb) < 0)
                        goto fail;
                unionstack = !strcmp(sfb.f_fstypename, "union")
                    || (sfb.f_flags & MNT_UNION);
@@ -134,7 +135,7 @@ __opendir2(name, flags)
                do {
                        /*
                         * Always make at least DIRBLKSIZ bytes
-                        * available to getdirentries
+                        * available to _getdirentries
                         */
                        if (space < DIRBLKSIZ) {
                                space += incr;
@@ -259,6 +260,7 @@ __opendir2(name, flags)
        dirp->dd_loc = 0;
        dirp->dd_fd = fd;
        dirp->dd_flags = flags;
+       dirp->dd_lock = NULL;
 
        /*
         * Set up seek point for rewinddir.
index 81a8d44..1025dfa 100644 (file)
@@ -31,7 +31,7 @@
  * SUCH DAMAGE.
  *
  * $FreeBSD: src/lib/libc/gen/pause.c,v 1.3.2.1 2000/03/18 23:13:23 jasone Exp $
- * $DragonFly: src/lib/libc/gen/pause.c,v 1.2 2003/06/17 04:26:42 dillon Exp $
+ * $DragonFly: src/lib/libc/gen/pause.c,v 1.3 2005/01/31 22:29:15 dillon Exp $
  *
  * @(#)pause.c 8.1 (Berkeley) 6/4/93
  */
@@ -48,6 +48,4 @@ __pause()
        return sigpause(sigblock(0L));
 }
 
-#ifndef _THREAD_SAFE
 __weak_reference(__pause, pause);
-#endif
index 603fa6a..c848ca2 100644 (file)
  * SUCH DAMAGE.
  *
  * $FreeBSD: src/lib/libc/gen/popen.c,v 1.14 2000/01/27 23:06:19 jasone Exp $
- * $DragonFly: src/lib/libc/gen/popen.c,v 1.3 2004/06/06 15:05:55 hmp Exp $
+ * $DragonFly: src/lib/libc/gen/popen.c,v 1.4 2005/01/31 22:29:15 dillon Exp $
  *
  * @(#)popen.c 8.3 (Berkeley) 5/3/95
  */
 
+#include "namespace.h"
 #include <sys/param.h>
 #include <sys/wait.h>
 
@@ -49,6 +50,7 @@
 #include <stdlib.h>
 #include <string.h>
 #include <paths.h>
+#include "un-namespace.h"
 
 extern char **environ;
 
@@ -69,7 +71,7 @@ popen(command, type)
        struct pid *p;
 
        /*
-        * Lite2 introduced two-way popen() pipes using socketpair().
+        * Lite2 introduced two-way popen() pipes using _socketpair().
         * FreeBSD's pipe() is bidirectional, so we use that.
         */
        if (strchr(type, '+')) {
@@ -104,7 +106,7 @@ popen(command, type)
        case 0:                         /* Child. */
                if (*type == 'r') {
                        /*
-                        * The dup2() to STDIN_FILENO is repeated to avoid
+                        * The _dup2() to STDIN_FILENO is repeated to avoid
                         * writing to pdes[1], which might corrupt the
                         * parent's copy.  This isn't good enough in
                         * general, since the _exit() is no return, so
@@ -113,15 +115,15 @@ popen(command, type)
                         */
                        (void)_close(pdes[0]);
                        if (pdes[1] != STDOUT_FILENO) {
-                               (void)dup2(pdes[1], STDOUT_FILENO);
+                               (void)_dup2(pdes[1], STDOUT_FILENO);
                                (void)_close(pdes[1]);
                                if (twoway)
-                                       (void)dup2(STDOUT_FILENO, STDIN_FILENO);
+                                       (void)_dup2(STDOUT_FILENO, STDIN_FILENO);
                        } else if (twoway && (pdes[1] != STDIN_FILENO))
-                               (void)dup2(pdes[1], STDIN_FILENO);
+                               (void)_dup2(pdes[1], STDIN_FILENO);
                } else {
                        if (pdes[0] != STDIN_FILENO) {
-                               (void)dup2(pdes[0], STDIN_FILENO);
+                               (void)_dup2(pdes[0], STDIN_FILENO);
                                (void)_close(pdes[0]);
                        }
                        (void)_close(pdes[1]);
@@ -129,7 +131,7 @@ popen(command, type)
                for (p = pidlist; p; p = p->next) {
                        (void)_close(fileno(p->fp));
                }
-               execve(_PATH_BSHELL, argv, environ);
+               _execve(_PATH_BSHELL, argv, environ);
                _exit(127);
                /* NOTREACHED */
        }
index 1086465..8c95453 100644 (file)
  * SUCH DAMAGE.
  *
  * $FreeBSD: src/lib/libc/gen/posixshm.c,v 1.2.2.1 2000/08/22 01:48:12 jhb Exp $
- * $DragonFly: src/lib/libc/gen/posixshm.c,v 1.2 2003/06/17 04:26:42 dillon Exp $
+ * $DragonFly: src/lib/libc/gen/posixshm.c,v 1.3 2005/01/31 22:29:15 dillon Exp $
  */
 
+#include "namespace.h"
 #include <sys/types.h>
 #include <sys/fcntl.h>
 #include <sys/mman.h>
@@ -37,6 +38,7 @@
 
 #include <errno.h>
 #include <unistd.h>
+#include "un-namespace.h"
 
 int
 shm_open(const char *path, int flags, mode_t mode)
@@ -49,7 +51,7 @@ shm_open(const char *path, int flags, mode_t mode)
 
        fd = _open(path, flags, mode);
        if (fd != -1) {
-               if (fstat(fd, &stab) != 0 || !S_ISREG(stab.st_mode)) {
+               if (_fstat(fd, &stab) != 0 || !S_ISREG(stab.st_mode)) {
                        _close(fd);
                        errno = EINVAL;
                        return (-1);
index 0757731..d2a083b 100644 (file)
@@ -31,7 +31,7 @@
  * SUCH DAMAGE.
  *
  * $FreeBSD: src/lib/libc/gen/psignal.c,v 1.5 2000/01/27 23:06:19 jasone Exp $
- * $DragonFly: src/lib/libc/gen/psignal.c,v 1.3 2004/06/06 15:05:55 hmp Exp $
+ * $DragonFly: src/lib/libc/gen/psignal.c,v 1.4 2005/01/31 22:29:15 dillon Exp $
  *
  * @(#)psignal.c       8.1 (Berkeley) 6/4/93
  */
  * Print the name of the signal indicated
  * along with the supplied message.
  */
+#include "namespace.h"
 #include <signal.h>
 #include <string.h>
 #include <unistd.h>
+#include "un-namespace.h"
 
 void
 psignal(sig, s)
index bdd9f28..1b52565 100644 (file)
  * SUCH DAMAGE.
  *
  * $FreeBSD: src/lib/libc/gen/readdir.c,v 1.5.2.4 2002/02/26 22:53:57 alfred Exp $
- * $DragonFly: src/lib/libc/gen/readdir.c,v 1.2 2003/06/17 04:26:42 dillon Exp $
+ * $DragonFly: src/lib/libc/gen/readdir.c,v 1.3 2005/01/31 22:29:15 dillon Exp $
  *
  * @(#)readdir.c       8.3 (Berkeley) 9/29/94
  */
 
+#include "namespace.h"
 #include <sys/param.h>
 #include <dirent.h>
 #include <errno.h>
 #include <string.h>
-#ifdef _THREAD_SAFE
 #include <pthread.h>
-#include "pthread_private.h"
-#endif /* _THREAD_SAFE */
+#include "un-namespace.h"
+
+#include "libc_private.h"
 
 /*
  * get next entry in a directory.
  */
 struct dirent *
-readdir(dirp)
+_readdir_unlocked(dirp)
        DIR *dirp;
 {
        struct dirent *dp;
@@ -61,7 +62,7 @@ readdir(dirp)
                        dirp->dd_loc = 0;
                }
                if (dirp->dd_loc == 0 && !(dirp->dd_flags & __DTF_READALL)) {
-                       dirp->dd_size = getdirentries(dirp->dd_fd,
+                       dirp->dd_size = _getdirentries(dirp->dd_fd,
                            dirp->dd_buf, dirp->dd_len, &dirp->dd_seek);
                        if (dirp->dd_size <= 0)
                                return (NULL);
@@ -81,6 +82,22 @@ readdir(dirp)
        }
 }
 
+struct dirent *
+readdir(dirp)
+       DIR *dirp;
+{
+       struct dirent   *dp;
+
+       if (__isthreaded) {
+               _pthread_mutex_lock((pthread_mutex_t *)&dirp->dd_lock);
+               dp = _readdir_unlocked(dirp);
+               _pthread_mutex_unlock((pthread_mutex_t *)&dirp->dd_lock);
+       }
+       else
+               dp = _readdir_unlocked(dirp);
+       return (dp);
+}
+
 int
 readdir_r(dirp, entry, result)
        DIR *dirp;
@@ -90,31 +107,25 @@ readdir_r(dirp, entry, result)
        struct dirent *dp;
        int ret, saved_errno;
 
-#ifdef _THREAD_SAFE
-       if ((ret = _FD_LOCK(dirp->dd_fd, FD_READ, NULL)) != 0)
-               return (ret);
-#endif
-
        saved_errno = errno;
        errno = 0;
        dp = readdir(dirp);
+       if (__isthreaded) {
+               _pthread_mutex_lock((pthread_mutex_t *)&dirp->dd_lock);
+               if ((dp = _readdir_unlocked(dirp)) != NULL)
+                       memcpy(entry, dp, sizeof *entry);
+               _pthread_mutex_unlock((pthread_mutex_t *)&dirp->dd_lock);
+       }
+       else if ((dp = _readdir_unlocked(dirp)) != NULL)
+               memcpy(entry, dp, sizeof *entry);
+
        if (errno != 0) {
                if (dp == NULL) {
-#ifdef _THREAD_SAFE
-                       _FD_UNLOCK(dirp->dd_fd, FD_READ);
-#endif
                        return (errno);
                }
        } else
                errno = saved_errno;
 
-       if (dp != NULL)
-               memcpy(entry, dp, _GENERIC_DIRSIZ(dp));
-
-#ifdef _THREAD_SAFE
-       _FD_UNLOCK(dirp->dd_fd, FD_READ);
-#endif
-
        if (dp != NULL)
                *result = entry;
        else
index c183044..054e641 100644 (file)
@@ -31,7 +31,7 @@
  * SUCH DAMAGE.
  *
  * $FreeBSD: src/lib/libc/gen/scandir.c,v 1.5.6.1 2001/03/05 09:52:13 obrien Exp $
- * $DragonFly: src/lib/libc/gen/scandir.c,v 1.4 2004/06/06 15:05:55 hmp Exp $
+ * $DragonFly: src/lib/libc/gen/scandir.c,v 1.5 2005/01/31 22:29:15 dillon Exp $
  *
  * @(#)scandir.c       8.3 (Berkeley) 1/2/94
  */
  * struct dirent (through namelist). Returns -1 if there were any errors.
  */
 
+#include "namespace.h"
 #include <sys/types.h>
 #include <sys/stat.h>
 #include <dirent.h>
 #include <stdlib.h>
 #include <string.h>
+#include "un-namespace.h"
 
 /*
  * The DIRSIZ macro is the minimum record length which will hold the directory
@@ -75,7 +77,7 @@ scandir(dirname, namelist, select, dcomp)
 
        if ((dirp = opendir(dirname)) == NULL)
                return(-1);
-       if (fstat(dirp->dd_fd, &stb) < 0)
+       if (_fstat(dirp->dd_fd, &stb) < 0)
                goto fail;
 
        /*
index c099d9c..0d39dec 100644 (file)
  * SUCH DAMAGE.
  *
  * $FreeBSD: src/lib/libc/gen/seekdir.c,v 1.2.8.1 2001/03/05 09:52:13 obrien Exp $
- * $DragonFly: src/lib/libc/gen/seekdir.c,v 1.3 2003/11/12 20:21:23 eirikn Exp $
+ * $DragonFly: src/lib/libc/gen/seekdir.c,v 1.4 2005/01/31 22:29:15 dillon Exp $
  *
  * @(#)seekdir.c       8.1 (Berkeley) 6/4/93
  */
 
+#include "namespace.h"
 #include <sys/param.h>
 #include <dirent.h>
+#include <pthread.h>
+#include "un-namespace.h"
+
+#include "libc_private.h"
 
 extern void _seekdir ( DIR *, long );
 
@@ -50,6 +55,9 @@ seekdir(dirp, loc)
        DIR *dirp;
        long loc;
 {
-
-       _seekdir(dirp, loc);
+       if (__isthreaded)
+               _pthread_mutex_lock((pthread_mutex_t *)&dirp->dd_lock);
+       _seekdir(dirp, loc);
+       if (__isthreaded)
+               _pthread_mutex_unlock((pthread_mutex_t *)&dirp->dd_lock);
 }
index f698ead..dcbed2b 100644 (file)
@@ -31,7 +31,7 @@
  * SUCH DAMAGE.
  *
  * $FreeBSD: src/lib/libc/gen/setjmperr.c,v 1.3 2000/01/27 23:06:19 jasone Exp $
- * $DragonFly: src/lib/libc/gen/setjmperr.c,v 1.2 2003/06/17 04:26:42 dillon Exp $
+ * $DragonFly: src/lib/libc/gen/setjmperr.c,v 1.3 2005/01/31 22:29:15 dillon Exp $
  *
  * @(#)setjmperr.c     8.1 (Berkeley) 6/4/93
  */
  * If this routine returns, the program is aborted.
  */
 
+#include "namespace.h"
 #include <setjmp.h>
 #include <unistd.h>
+#include "un-namespace.h"
 
 void
 longjmperror()
index 34faffd..08bfd03 100644 (file)
  *
  * @(#)setmode.c       8.2 (Berkeley) 3/25/94
  * $FreeBSD: src/lib/libc/gen/setmode.c,v 1.5.2.1 2001/03/05 09:34:10 obrien Exp $
- * $DragonFly: src/lib/libc/gen/setmode.c,v 1.4 2004/06/06 15:05:55 hmp Exp $
+ * $DragonFly: src/lib/libc/gen/setmode.c,v 1.5 2005/01/31 22:29:15 dillon Exp $
  */
 
+#include "namespace.h"
 #include <sys/types.h>
 #include <sys/stat.h>
 
@@ -49,6 +50,7 @@
 #ifdef SETMODE_DEBUG
 #include <stdio.h>
 #endif
+#include "un-namespace.h"
 
 #define        SET_LEN 6               /* initial # of bitcmd struct to malloc */
 #define        SET_LEN_INCR 4          /* # of bitcmd structs to add as needed */
@@ -183,10 +185,10 @@ setmode(p)
         * as best we can.
         */
        sigfillset(&sigset);
-        (void)sigprocmask(SIG_BLOCK, &sigset, &sigoset);
+        (void)_sigprocmask(SIG_BLOCK, &sigset, &sigoset);
        (void)umask(mask = umask(0));
        mask = ~mask;
-        (void)sigprocmask(SIG_SETMASK, &sigoset, NULL);
+        (void)_sigprocmask(SIG_SETMASK, &sigoset, NULL);
 
        setlen = SET_LEN + 2;
 
index b65b4f9..4b74f43 100644 (file)
  * SUCH DAMAGE.
  *
  * $FreeBSD: src/lib/libc/gen/siginterrupt.c,v 1.2.8.1 2001/03/05 09:34:53 obrien Exp $
- * $DragonFly: src/lib/libc/gen/siginterrupt.c,v 1.2 2003/06/17 04:26:42 dillon Exp $
+ * $DragonFly: src/lib/libc/gen/siginterrupt.c,v 1.3 2005/01/31 22:29:15 dillon Exp $
  *
  * @(#)siginterrupt.c  8.1 (Berkeley) 6/4/93
  */
 
+#include "namespace.h"
 #include <signal.h>
+#include "un-namespace.h"
+#include "libc_private.h"
 
 /*
  * Set signal state to prevent restart of system calls
@@ -50,7 +53,7 @@ siginterrupt(sig, flag)
        struct sigaction sa;
        int ret;
 
-       if ((ret = sigaction(sig, (struct sigaction *)0, &sa)) < 0)
+       if ((ret = _sigaction(sig, (struct sigaction *)0, &sa)) < 0)
                return (ret);
        if (flag) {
                sigaddset(&_sigintr, sig);
@@ -59,5 +62,5 @@ siginterrupt(sig, flag)
                sigdelset(&_sigintr, sig);
                sa.sa_flags |= SA_RESTART;
        }
-       return (sigaction(sig, &sa, (struct sigaction *)0));
+       return (_sigaction(sig, &sa, (struct sigaction *)0));
 }
index 9d9b4ec..1fd0016 100644 (file)
@@ -31,7 +31,7 @@
  * SUCH DAMAGE.
  *
  * $FreeBSD: src/lib/libc/gen/signal.c,v 1.1.1.1.14.1 2001/03/05 09:52:13 obrien Exp $
- * $DragonFly: src/lib/libc/gen/signal.c,v 1.2 2003/06/17 04:26:42 dillon Exp $
+ * $DragonFly: src/lib/libc/gen/signal.c,v 1.3 2005/01/31 22:29:15 dillon Exp $
  *
  * @(#)signal.c        8.1 (Berkeley) 6/4/93
  */
 /*
  * Almost backwards compatible signal.
  */
+#include "namespace.h"
 #include <signal.h>
+#include "un-namespace.h"
+#include "libc_private.h"
 
 sigset_t _sigintr;             /* shared with siginterrupt */
 
@@ -55,7 +58,7 @@ signal(s, a)
        sa.sa_flags = 0;
        if (!sigismember(&_sigintr, s))
                sa.sa_flags |= SA_RESTART;
-       if (sigaction(s, &sa, &osa) < 0)
+       if (_sigaction(s, &sa, &osa) < 0)
                return (SIG_ERR);
        return (osa.sa_handler);
 }
index 7a6c42c..6d05dca 100644 (file)
  *
  * @(#)sleep.c 8.1 (Berkeley) 6/4/93
  * $FreeBSD: src/lib/libc/gen/sleep.c,v 1.28.2.1 2000/03/18 23:13:24 jasone Exp $
- * $DragonFly: src/lib/libc/gen/sleep.c,v 1.2 2003/06/17 04:26:42 dillon Exp $
+ * $DragonFly: src/lib/libc/gen/sleep.c,v 1.3 2005/01/31 22:29:15 dillon Exp $
  */
 
+#include "namespace.h"
 #include <errno.h>
 #include <limits.h>
 #include <time.h>
 #include <unistd.h>
+#include "un-namespace.h"
 
 unsigned int
 __sleep(seconds)
@@ -64,6 +66,6 @@ __sleep(seconds)
                (time_remaining.tv_nsec != 0)); /* round up */
 }
 
-#ifndef _THREAD_SAFE
 __weak_reference(__sleep, sleep);
-#endif
+__weak_reference(__sleep, _sleep);
+
index 24561b8..ea08bd5 100644 (file)
  *
  * @(#)syslog.c        8.5 (Berkeley) 4/29/95
  * $FreeBSD: src/lib/libc/gen/syslog.c,v 1.21.2.3 2002/11/18 11:49:55 ru Exp $
- * $DragonFly: src/lib/libc/gen/syslog.c,v 1.5 2004/07/27 07:59:10 asmodai Exp $
+ * $DragonFly: src/lib/libc/gen/syslog.c,v 1.6 2005/01/31 22:29:15 dillon Exp $
  */
 
+#include "namespace.h"
 #include <sys/types.h>
 #include <sys/socket.h>
 #include <sys/syslog.h>
@@ -49,6 +50,7 @@
 #include <string.h>
 #include <time.h>
 #include <unistd.h>
+#include "un-namespace.h"
 
 #include <stdarg.h>
 
@@ -216,7 +218,7 @@ vsyslog(pri, fmt, ap)
                ++v;
                v->iov_base = "\n";
                v->iov_len = 1;
-               (void)writev(STDERR_FILENO, iov, 2);
+               (void)_writev(STDERR_FILENO, iov, 2);
        }
 
        /* Get connected, output the message to the local logger. */
@@ -251,7 +253,7 @@ vsyslog(pri, fmt, ap)
                ++v;
                v->iov_base = "\r\n";
                v->iov_len = 2;
-               (void)writev(fd, iov, 2);
+               (void)_writev(fd, iov, 2);
                (void)_close(fd);
        }
 }
@@ -276,7 +278,7 @@ connectlog()
        struct sockaddr_un SyslogAddr;  /* AF_UNIX address of local logger */
 
        if (LogFile == -1) {
-               if ((LogFile = socket(AF_UNIX, SOCK_DGRAM, 0)) == -1)
+               if ((LogFile = _socket(AF_UNIX, SOCK_DGRAM, 0)) == -1)
                        return;
                (void)_fcntl(LogFile, F_SETFD, 1);
        }
@@ -285,7 +287,7 @@ connectlog()
                SyslogAddr.sun_family = AF_UNIX;
                (void)strncpy(SyslogAddr.sun_path, _PATH_LOG,
                    sizeof SyslogAddr.sun_path);
-               connected = connect(LogFile, (struct sockaddr *)&SyslogAddr,
+               connected = _connect(LogFile, (struct sockaddr *)&SyslogAddr,
                        sizeof(SyslogAddr)) != -1;
 
                if (!connected) {
@@ -295,7 +297,7 @@ connectlog()
                         */
                        (void)strncpy(SyslogAddr.sun_path, _PATH_OLDLOG,
                            sizeof SyslogAddr.sun_path);
-                       connected = connect(LogFile,
+                       connected = _connect(LogFile,
                                (struct sockaddr *)&SyslogAddr,
                                sizeof(SyslogAddr)) != -1;
                }
index 70a82c1..6e1f3c9 100644 (file)
  * SUCH DAMAGE.
  *
  * $FreeBSD: src/lib/libc/gen/telldir.c,v 1.4.12.1 2001/03/05 09:39:59 obrien Exp $
- * $DragonFly: src/lib/libc/gen/telldir.c,v 1.2 2003/06/17 04:26:42 dillon Exp $
+ * $DragonFly: src/lib/libc/gen/telldir.c,v 1.3 2005/01/31 22:29:15 dillon Exp $
  *
  * @(#)telldir.c       8.1 (Berkeley) 6/4/93
  */
 
+#include "namespace.h"
 #include <sys/param.h>
 #include <dirent.h>
+#include <pthread.h>
 #include <stdlib.h>
 #include <unistd.h>
+#include "un-namespace.h"
+
+#include "libc_private.h"
 
 /*
  * The option SINGLEUSE may be defined to say that a telldir
@@ -80,6 +85,8 @@ telldir(dirp)
 
        if ((lp = (struct ddloc *)malloc(sizeof(struct ddloc))) == NULL)
                return (-1);
+       if (__isthreaded)
+               _pthread_mutex_lock((pthread_mutex_t *)&dirp->dd_lock);
        index = dd_loccnt++;
        lp->loc_index = index;
        lp->loc_seek = dirp->dd_seek;
@@ -87,6 +94,8 @@ telldir(dirp)
        lp->loc_dirp = dirp;
        lp->loc_next = dd_hash[LOCHASH(index)];
        dd_hash[LOCHASH(index)] = lp;
+       if (__isthreaded)
+               _pthread_mutex_unlock((pthread_mutex_t *)&dirp->dd_lock);
        return (index);
 }
 
@@ -119,7 +128,7 @@ _seekdir(dirp, loc)
        dirp->dd_seek = lp->loc_seek;
        dirp->dd_loc = 0;
        while (dirp->dd_loc < lp->loc_loc) {
-               dp = readdir(dirp);
+               dp = _readdir_unlocked(dirp);
                if (dp == NULL)
                        break;
        }
@@ -135,7 +144,7 @@ found:
  */
 void
 _reclaim_telldir(dirp)
-       const DIR *dirp;
+       DIR *dirp;
 {
        struct ddloc *lp;
        struct ddloc **prevlp;
index 1f428a5..ba26742 100644 (file)
  * SUCH DAMAGE.
  *
  * $FreeBSD: src/lib/libc/gen/termios.c,v 1.9.2.1 2000/03/18 23:13:25 jasone Exp $
- * $DragonFly: src/lib/libc/gen/termios.c,v 1.2 2003/06/17 04:26:42 dillon Exp $
+ * $DragonFly: src/lib/libc/gen/termios.c,v 1.3 2005/01/31 22:29:15 dillon Exp $
  *
  * @(#)termios.c       8.2 (Berkeley) 2/21/94
  */
 
+#include "namespace.h"
 #include <sys/types.h>
 #include <sys/fcntl.h>
 #include <sys/ioctl.h>
@@ -44,6 +45,7 @@
 #include <errno.h>
 #include <termios.h>
 #include <unistd.h>
+#include "un-namespace.h"
 
 int
 tcgetattr(fd, t)
@@ -51,7 +53,7 @@ tcgetattr(fd, t)
        struct termios *t;
 {
 
-       return (ioctl(fd, TIOCGETA, t));
+       return (_ioctl(fd, TIOCGETA, t));
 }
 
 int
@@ -68,11 +70,11 @@ tcsetattr(fd, opt, t)
        }
        switch (opt & ~TCSASOFT) {
        case TCSANOW:
-               return (ioctl(fd, TIOCSETA, t));
+               return (_ioctl(fd, TIOCSETA, t));
        case TCSADRAIN:
-               return (ioctl(fd, TIOCSETAW, t));
+               return (_ioctl(fd, TIOCSETAW, t));
        case TCSAFLUSH:
-               return (ioctl(fd, TIOCSETAF, t));
+               return (_ioctl(fd, TIOCSETAF, t));
        default:
                errno = EINVAL;
                return (-1);
@@ -91,7 +93,7 @@ tcsetpgrp(fd, pgrp)
        int s;
 
        s = pgrp;
-       return (ioctl(fd, TIOCSPGRP, &s));
+       return (_ioctl(fd, TIOCSPGRP, &s));
 }
 
 pid_t
@@ -100,7 +102,7 @@ tcgetpgrp(fd)
 {
        int s;
 
-       if (ioctl(fd, TIOCGPGRP, &s) < 0)
+       if (_ioctl(fd, TIOCGPGRP, &s) < 0)
                return ((pid_t)-1);
 
        return ((pid_t)s);
@@ -179,10 +181,10 @@ tcsendbreak(fd, len)
 
        sleepytime.tv_sec = 0;
        sleepytime.tv_usec = 400000;
-       if (ioctl(fd, TIOCSBRK, 0) == -1)
+       if (_ioctl(fd, TIOCSBRK, 0) == -1)
                return (-1);
-       (void)select(0, 0, 0, 0, &sleepytime);
-       if (ioctl(fd, TIOCCBRK, 0) == -1)
+       (void)_select(0, 0, 0, 0, &sleepytime);
+       if (_ioctl(fd, TIOCCBRK, 0) == -1)
                return (-1);
        return (0);
 }
@@ -191,7 +193,7 @@ int
 __tcdrain(fd)
        int fd;
 {
-       return (ioctl(fd, TIOCDRAIN, 0));
+       return (_ioctl(fd, TIOCDRAIN, 0));
 }
 
 #ifndef _THREAD_SAFE
@@ -218,7 +220,7 @@ tcflush(fd, which)
                errno = EINVAL;
                return (-1);
        }
-       return (ioctl(fd, TIOCFLUSH, &com));
+       return (_ioctl(fd, TIOCFLUSH, &com));
 }
 
 int
@@ -230,9 +232,9 @@ tcflow(fd, action)
 
        switch (action) {
        case TCOOFF:
-               return (ioctl(fd, TIOCSTOP, 0));
+               return (_ioctl(fd, TIOCSTOP, 0));
        case TCOON:
-               return (ioctl(fd, TIOCSTART, 0));
+               return (_ioctl(fd, TIOCSTART, 0));
        case TCION:
        case TCIOFF:
                if (tcgetattr(fd, &term) == -1)
index 2eaefcf..59aff7c 100644 (file)
  * SUCH DAMAGE.
  *
  * $FreeBSD: src/lib/libc/gen/ttyname.c,v 1.10.6.2 2002/10/15 19:46:46 fjoe Exp $
- * $DragonFly: src/lib/libc/gen/ttyname.c,v 1.4 2004/06/06 15:05:55 hmp Exp $
+ * $DragonFly: src/lib/libc/gen/ttyname.c,v 1.5 2005/01/31 22:29:15 dillon Exp $
  *
  * @(#)ttyname.c       8.2 (Berkeley) 1/27/94
  */
 
+#include "namespace.h"
 #include <sys/types.h>
 #include <sys/stat.h>
 #include <fcntl.h>
 #include <stdlib.h>
 #include <termios.h>
 #include <unistd.h>
-#include <db.h>
 #include <string.h>
 #include <paths.h>
 
-#ifdef _THREAD_SAFE
 #include <pthread.h>
-#include "pthread_private.h"
-static struct pthread_mutex _ttyname_lockd = PTHREAD_MUTEX_STATIC_INITIALIZER;
-static pthread_mutex_t ttyname_lock = &_ttyname_lockd;
-static pthread_key_t ttyname_key;
-static int      ttyname_init = 0;
+#include "un-namespace.h"
+
+#include <db.h>
+#include "libc_private.h"
+
+static char buf[sizeof(_PATH_DEV) + MAXNAMLEN] = _PATH_DEV;
+static char *oldttyname __P((int, struct stat *));
+static char *ttyname_threaded(int fd);
+static char *ttyname_unthreaded(int fd);
+
+static pthread_mutex_t ttyname_lock = PTHREAD_MUTEX_INITIALIZER;
+static pthread_key_t   ttyname_key;
+static int             ttyname_init = 0;
 
 char           *
 ttyname(int fd)
 {
        char           *ret;
 
-       if (_FD_LOCK(fd, FD_READ, NULL) == 0) {
-               ret = __ttyname_basic(fd);
-               _FD_UNLOCK(fd, FD_READ);
-       } else {
-               ret = NULL;
-       }
-
+       if (__isthreaded == 0)
+               ret = ttyname_unthreaded(fd);
+       else
+               ret = ttyname_threaded(fd);
        return (ret);
 }
 
 char           *
-__ttyname_r_basic(int fd, char *buf, size_t len)
+ttyname_r(int fd, char *buf, size_t len)
 {
        struct dirent *dirp;
        DIR   *dp;
@@ -112,24 +116,28 @@ __ttyname_r_basic(int fd, char *buf, size_t len)
 }
 
 char           *
-__ttyname_basic(int fd)
+ttyname_threaded(int fd)
 {
-       char           *buf;
+       char    *buf;
 
-       pthread_mutex_lock(&ttyname_lock);
        if (ttyname_init == 0) {
-               if (pthread_key_create(&ttyname_key, free)) {
-                       pthread_mutex_unlock(&ttyname_lock);
+               _pthread_mutex_lock(&ttyname_lock);
+               if (ttyname_init == 0) {
+                       if (_pthread_key_create(&ttyname_key, free)) {
+                               _pthread_mutex_unlock(&ttyname_lock);
+                               return (NULL);
+                       }
+                       ttyname_init = 1;
                        return (NULL);
                }
                ttyname_init = 1;
+               _pthread_mutex_unlock(&ttyname_lock);
        }
-       pthread_mutex_unlock(&ttyname_lock);
 
        /* Must have thread specific data field to put data */
-       if ((buf = pthread_getspecific(ttyname_key)) == NULL) {
+       if ((buf = _pthread_getspecific(ttyname_key)) == NULL) {
                if ((buf = malloc(sizeof(_PATH_DEV) + MAXNAMLEN)) != NULL) {
-                       if (pthread_setspecific(ttyname_key, buf) != 0) {
+                       if (_pthread_setspecific(ttyname_key, buf) != 0) {
                                free(buf);
                                return (NULL);
                        }
@@ -137,29 +145,11 @@ __ttyname_basic(int fd)
                        return (NULL);
                }
        }
-       return (__ttyname_r_basic(fd, buf, sizeof(_PATH_DEV) + MAXNAMLEN));
+       return (ttyname_r(fd, buf, sizeof(_PATH_DEV) + MAXNAMLEN));
 }
 
-char           *
-ttyname_r(int fd, char *buf, size_t len)
-{
-       char           *ret;
-
-       if (_FD_LOCK(fd, FD_READ, NULL) == 0) {
-               ret = __ttyname_r_basic(fd, buf, len);
-               _FD_UNLOCK(fd, FD_READ);
-       } else {
-               ret = NULL;
-       }
-       return (ret);
-}
-#else
-static char buf[sizeof(_PATH_DEV) + MAXNAMLEN] = _PATH_DEV;
-static char *oldttyname (int, struct stat *);
-
-char *
-ttyname(fd)
-       int fd;
+static char *
+ttyname_unthreaded(int fd)
 {
        struct stat sb;
        struct termios ttyb;
@@ -174,7 +164,7 @@ ttyname(fd)
        if (tcgetattr(fd, &ttyb) < 0)
                return (NULL);
        /* Must be a character device. */
-       if (fstat(fd, &sb) || !S_ISCHR(sb.st_mode))
+       if (_fstat(fd, &sb) || !S_ISCHR(sb.st_mode))
                return (NULL);
 
        if ( (db = dbopen(_PATH_DEVDB, O_RDONLY, 0, DB_HASH, NULL)) ) {
@@ -220,4 +210,3 @@ oldttyname(fd, sb)
        (void)closedir(dp);
        return (NULL);
 }
-#endif
index 7ac67cc..f5a110a 100644 (file)
  *
  * @(#)usleep.c        8.1 (Berkeley) 6/4/93
  * $FreeBSD: src/lib/libc/gen/usleep.c,v 1.25 2000/01/27 23:06:22 jasone Exp $
- * $DragonFly: src/lib/libc/gen/usleep.c,v 1.2 2003/06/17 04:26:42 dillon Exp $
+ * $DragonFly: src/lib/libc/gen/usleep.c,v 1.3 2005/01/31 22:29:15 dillon Exp $
  */
 
+#include "namespace.h"
 #include <time.h>
 #include <unistd.h>
+#include "un-namespace.h"
 
 int
 usleep(useconds)
index da4f966..1c312af 100644 (file)
  * SUCH DAMAGE.
  *
  * $FreeBSD: src/lib/libc/gen/wait.c,v 1.3.2.1 2000/03/18 23:13:25 jasone Exp $
- * $DragonFly: src/lib/libc/gen/wait.c,v 1.2 2003/06/17 04:26:42 dillon Exp $
+ * $DragonFly: src/lib/libc/gen/wait.c,v 1.3 2005/01/31 22:29:15 dillon Exp $
  *
  * @(#)wait.c  8.1 (Berkeley) 6/4/93
  */
 
+#include "namespace.h"
 #include <sys/types.h>
 #include <sys/time.h>
 #include <sys/wait.h>
 #include <sys/resource.h>
+#include "un-namespace.h"
 
 pid_t
 __wait(istat)
        int *istat;
 {
-       return (wait4(WAIT_ANY, istat, 0, (struct rusage *)0));
+       return (_wait4(WAIT_ANY, istat, 0, (struct rusage *)0));
 }
 
-#ifndef _THREAD_SAFE
 __weak_reference(__wait, wait);
-#endif
+__weak_reference(__wait, _wait);
index ed04403..f13edc5 100644 (file)
  * SUCH DAMAGE.
  *
  * $FreeBSD: src/lib/libc/gen/wait3.c,v 1.1.1.1.14.1 2001/03/05 09:52:13 obrien Exp $
- * $DragonFly: src/lib/libc/gen/wait3.c,v 1.2 2003/06/17 04:26:42 dillon Exp $
+ * $DragonFly: src/lib/libc/gen/wait3.c,v 1.3 2005/01/31 22:29:15 dillon Exp $
  *
  * @(#)wait3.c 8.1 (Berkeley) 6/4/93
  */
 
+#include "namespace.h"
 #include <sys/types.h>
 #include <sys/time.h>
 #include <sys/wait.h>
 #include <sys/resource.h>
+#include "un-namespace.h"
 
 pid_t
 wait3(istat, options, rup)
@@ -47,5 +49,5 @@ wait3(istat, options, rup)
        int options;
        struct rusage *rup;
 {
-       return (wait4(WAIT_ANY, istat, options, rup));
+       return (_wait4(WAIT_ANY, istat, options, rup));
 }
index 7af7066..acc56f8 100644 (file)
  * SUCH DAMAGE.
  *
  * $FreeBSD: src/lib/libc/gen/waitpid.c,v 1.3.2.1 2000/03/18 23:13:26 jasone Exp $
- * $DragonFly: src/lib/libc/gen/waitpid.c,v 1.2 2003/06/17 04:26:42 dillon Exp $
+ * $DragonFly: src/lib/libc/gen/waitpid.c,v 1.3 2005/01/31 22:29:15 dillon Exp $
  *
  * @(#)waitpid.c       8.1 (Berkeley) 6/4/93
  */
 
+#include "namespace.h"
 #include <sys/types.h>
 #include <sys/time.h>
 #include <sys/wait.h>
 #include <sys/resource.h>
+#include "un-namespace.h"
 
 pid_t
-#if __STDC__
 __waitpid(pid_t pid, int *istat, int options)
-#else
-__waitpid(pid, istat, options)
-       pid_t pid;
-       int *istat;
-       int options;
-#endif
 {
-       return (wait4(pid, istat, options, (struct rusage *)0));
+       return (_wait4(pid, istat, options, (struct rusage *)0));
 }
 
-#ifndef _THREAD_SAFE
 __weak_reference(__waitpid, waitpid);
-#endif
+__weak_reference(__waitpid, _waitpid);
index 589e6e6..219b830 100644 (file)
  * SUCH DAMAGE.
  *
  * $FreeBSD: src/lib/libc/gmon/gmon.c,v 1.8 2000/01/27 23:06:25 jasone Exp $
- * $DragonFly: src/lib/libc/gmon/gmon.c,v 1.5 2004/10/25 19:38:01 drhodus Exp $
+ * $DragonFly: src/lib/libc/gmon/gmon.c,v 1.6 2005/01/31 22:29:17 dillon Exp $
  *
  * @(#)gmon.c  8.1 (Berkeley) 6/4/93
  */
 
+#include "namespace.h"
 #include <sys/param.h>
 #include <sys/time.h>
 #include <sys/gmon.h>
@@ -45,7 +46,9 @@
 #include <errno.h>
 #include <stdio.h>
 #include <fcntl.h>
+#include <string.h>
 #include <unistd.h>
+#include "un-namespace.h"
 
 #if defined(__i386__) || defined(__amd64__)
 extern char *minbrk asm (".minbrk");
index eabe258..7d61114 100644 (file)
@@ -36,7 +36,7 @@
  *     from: @(#)SYS.h 5.5 (Berkeley) 5/7/91
  *
  * $FreeBSD: src/lib/libc/i386/SYS.h,v 1.17.2.2 2002/10/15 19:46:46 fjoe Exp $
- * $DragonFly: src/lib/libc/i386/SYS.h,v 1.3 2004/03/20 16:27:40 drhodus Exp $
+ * $DragonFly: src/lib/libc/i386/SYS.h,v 1.4 2005/01/31 22:29:20 dillon Exp $
  */
 
 #include <sys/syscall.h>
  * Design note:
  *
  * The macros PSYSCALL() and PRSYSCALL() are intended for use where a
- * syscall needs to be renamed in the threaded library. When building
- * a normal library, they default to the traditional SYSCALL() and
- * RSYSCALL(). This avoids the need to #ifdef _THREAD_SAFE everywhere
- * that the renamed function needs to be called.
+ * syscall needs to be renamed in the threaded library.
  */
-#ifdef _THREAD_SAFE
 /*
  * For the thread_safe versions, we prepend __sys_ to the function
  * name so that the 'C' wrapper can go around the real name.
  */
 #define        PSYSCALL(x)     2: PIC_PROLOGUE; jmp PIC_PLT(HIDENAME(cerror)); \
                        ENTRY(__CONCAT(__sys_,x));                      \
+                       .weak CNAME(x);                                 \
+                       .set CNAME(x),CNAME(__CONCAT(__sys_,x));        \
+                       .weak CNAME(__CONCAT(_,x));                     \
+                       .set CNAME(__CONCAT(_,x)),CNAME(__CONCAT(__sys_,x)); \
                        lea __CONCAT(SYS_,x),%eax; KERNCALL; jb 2b
+
 #define        PRSYSCALL(x)    PSYSCALL(x); ret
+
 #define        PPSEUDO(x,y)    ENTRY(__CONCAT(__sys_,x));                      \
+                       .weak CNAME(x);                                 \
+                       .set CNAME(x),CNAME(__CONCAT(__sys_,x));        \
+                       .weak CNAME(__CONCAT(_,x));                     \
+                       .set CNAME(__CONCAT(_,x)),CNAME(__CONCAT(__sys_,x)); \
                        lea __CONCAT(SYS_,y), %eax; KERNCALL; ret
-#else
-/*
- * The non-threaded library defaults to traditional syscalls where
- * the function name matches the syscall name.
- */
-#define        PSYSCALL(x)     SYSCALL(x)
-#define        PRSYSCALL(x)    RSYSCALL(x)
-#define        PPSEUDO(x,y)    PSEUDO(x,y)
-#endif
 
 #define KERNCALL int $0x80
index 4156a46..2fa70c3 100644 (file)
@@ -34,7 +34,7 @@
  * SUCH DAMAGE.
  *
  * $FreeBSD: src/lib/libc/i386/gen/_setjmp.S,v 1.12 2000/01/20 21:58:26 jasone Exp $
- * $DragonFly: src/lib/libc/i386/gen/_setjmp.S,v 1.3 2003/12/06 03:11:35 drhodus Exp $
+ * $DragonFly: src/lib/libc/i386/gen/_setjmp.S,v 1.4 2005/01/31 22:29:24 dillon Exp $
  */
 
 /*
@@ -62,12 +62,9 @@ ENTRY(_setjmp)
        xorl    %eax,%eax
        ret
 
-#ifdef _THREAD_SAFE
+       .weak   CNAME(_longjmp)
+       .set    CNAME(_longjmp),CNAME(___longjmp)
 ENTRY(___longjmp)
-#else
-ALTENTRY(___longjmp)
-ENTRY(_longjmp)
-#endif
        movl    4(%esp),%edx
        movl    8(%esp),%eax
        movl    0(%edx),%ecx
index 4db4c04..e3dcc48 100644 (file)
@@ -34,7 +34,7 @@
  * SUCH DAMAGE.
  *
  * $FreeBSD: src/lib/libc/i386/gen/setjmp.S,v 1.17.2.2 2001/07/06 12:41:44 deischen Exp $
- * $DragonFly: src/lib/libc/i386/gen/setjmp.S,v 1.3 2003/12/06 03:11:35 drhodus Exp $
+ * $DragonFly: src/lib/libc/i386/gen/setjmp.S,v 1.4 2005/01/31 22:29:24 dillon Exp $
  */
 
 /*
@@ -57,7 +57,7 @@ ENTRY(setjmp)
        pushl   %eax                    /* (sigset_t*)oset */
        pushl   $0                      /* (sigset_t*)set  */
        pushl   $1                      /* SIG_BLOCK       */
-       call    PIC_PLT(CNAME(sigprocmask))
+       call    PIC_PLT(CNAME(_sigprocmask))
        addl    $12,%esp
        PIC_EPILOGUE
        movl    4(%esp),%ecx
@@ -72,10 +72,8 @@ ENTRY(setjmp)
        xorl    %eax,%eax
        ret
 
-#ifndef _THREAD_SAFE
-.weak CNAME(longjmp);
-.set CNAME(longjmp),CNAME(__longjmp);
-#endif
+       .weak CNAME(longjmp);
+       .set CNAME(longjmp),CNAME(__longjmp);
 ENTRY(__longjmp)
        movl    4(%esp),%edx
        PIC_PROLOGUE
@@ -83,7 +81,7 @@ ENTRY(__longjmp)
        leal    28(%edx), %eax
        pushl   %eax                    /* (sigset_t*)set  */
        pushl   $3                      /* SIG_SETMASK     */
-       call    PIC_PLT(CNAME(sigprocmask))
+       call    PIC_PLT(CNAME(_sigprocmask))
        addl    $12,%esp
        PIC_EPILOGUE
        movl    4(%esp),%edx
index 7aee9c4..919f424 100644 (file)
@@ -34,7 +34,7 @@
  * SUCH DAMAGE.
  *
  * $FreeBSD: src/lib/libc/i386/gen/sigsetjmp.S,v 1.19.2.2 2001/07/06 12:41:44 deischen Exp $
- * $DragonFly: src/lib/libc/i386/gen/sigsetjmp.S,v 1.3 2003/12/06 03:11:35 drhodus Exp $
+ * $DragonFly: src/lib/libc/i386/gen/sigsetjmp.S,v 1.4 2005/01/31 22:29:24 dillon Exp $
  */
 
 #include "DEFS.h"
@@ -48,9 +48,6 @@
  *     the renamed functions (introduced in gcc-2.5.3; previous versions
  *     only supported *jmp with 0 or 1 leading underscores).
  *
- *     Use sigprocmask() instead of sigblock() and sigsetmask(), and
- *     check for and handle errors.
- *
  *     Restore _all_ the registers and the signal mask atomically.  Can
  *     use sigreturn() if sigreturn() works.
  */
@@ -66,7 +63,7 @@ ENTRY(sigsetjmp)
        pushl   %eax                    /* (sigset_t*)oset */
        pushl   $0                      /* (sigset_t*)set  */
        pushl   $1                      /* SIG_BLOCK       */
-       call    PIC_PLT(CNAME(sigprocmask))
+       call    PIC_PLT(CNAME(_sigprocmask))
        addl    $12,%esp
        PIC_EPILOGUE
        movl    4(%esp),%ecx
@@ -81,10 +78,8 @@ ENTRY(sigsetjmp)
        xorl    %eax,%eax
        ret
 
-#ifndef _THREAD_SAFE
-.weak CNAME(siglongjmp);
-.set CNAME(siglongjmp),CNAME(__siglongjmp);
-#endif
+       .weak CNAME(siglongjmp);
+       .set CNAME(siglongjmp),CNAME(__siglongjmp);
 ENTRY(__siglongjmp);
        movl    4(%esp),%edx
        cmpl    $0,44(%edx)
@@ -94,7 +89,7 @@ ENTRY(__siglongjmp);
        leal    28(%edx), %eax
        pushl   %eax                    /* (sigset_t*)set  */
        pushl   $3                      /* SIG_SETMASK     */
-       call    PIC_PLT(CNAME(sigprocmask))
+       call    PIC_PLT(CNAME(_sigprocmask))
        addl    $12,%esp
        PIC_EPILOGUE
        movl    4(%esp),%edx
index c240c2a..3c520f9 100644 (file)
  * SUCH DAMAGE.
  *
  * $FreeBSD: src/lib/libc/i386/sys/setlogin.S,v 1.6 1999/08/27 23:59:44 peter Exp $
- * $DragonFly: src/lib/libc/i386/sys/setlogin.S,v 1.3 2003/12/06 03:11:36 drhodus Exp $
+ * $DragonFly: src/lib/libc/i386/sys/setlogin.S,v 1.4 2005/01/31 22:29:27 dillon Exp $
  */
 
 #include "SYS.h"
 
-.globl CNAME(_logname_valid)           /* in getlogin() */
+.globl CNAME(_logname_valid)           /* in _getlogin() */
 
 SYSCALL(setlogin)
 #ifdef PIC
index 1cad469..a633852 100644 (file)
@@ -30,7 +30,7 @@
  * SUCH DAMAGE.
  *
  * $FreeBSD: src/lib/libc/include/libc_private.h,v 1.3 1999/08/27 23:59:47 peter Exp $
- * $DragonFly: src/lib/libc/include/libc_private.h,v 1.2 2003/06/17 04:26:43 dillon Exp $
+ * $DragonFly: src/lib/libc/include/libc_private.h,v 1.3 2005/01/31 22:29:29 dillon Exp $
  *
  * Private definitions for libc, libc_r and libpthread.
  *
@@ -54,7 +54,7 @@ extern int    __isthreaded;
 #ifdef _FLOCK_DEBUG
 #define _FLOCKFILE(x)  _flockfile_debug(x, __FILE__, __LINE__)
 #else
-#define _FLOCKFILE(x)  flockfile(x)
+#define _FLOCKFILE(x)  _flockfile(x)
 #endif
 
 /*
@@ -62,6 +62,14 @@ extern int   __isthreaded;
  * process is threaded to avoid locking when not required.
  */
 #define        FLOCKFILE(fp)           if (__isthreaded) _FLOCKFILE(fp)
-#define        FUNLOCKFILE(fp)         if (__isthreaded) funlockfile(fp)
+#define        FUNLOCKFILE(fp)         if (__isthreaded) _funlockfile(fp)
+
+/*
+ * Internal _*() functions (XXX add all of them)
+ */
+
+#ifdef _STDIO_H_
+int _fseeko(FILE *, __off_t, int);
+#endif
 
 #endif /* _LIBC_PRIVATE_H_ */
diff --git a/lib/libc/include/namespace.h b/lib/libc/include/namespace.h
new file mode 100644 (file)
index 0000000..f22ef7d
--- /dev/null
@@ -0,0 +1,136 @@
+/*
+ * Copyright (c) 2001 Daniel Eischen <deischen@FreeBSD.org>.
+ * All rights reserved.
+ *
+ * Redistribution and use in source and binary forms, with or without
+ * modification, are permitted provided that the following conditions
+ * are met:
+ * 1. Redistributions of source code must retain the above copyright
+ *    notice, this list of conditions and the following disclaimer.
+ * 2. Redistributions in binary form must reproduce the above copyright
+ *    notice, this list of conditions and the following disclaimer in the
+ *    documentation and/or other materials provided with the distribution.
+ *
+ * THIS SOFTWARE IS PROVIDED BY THE AUTHOR AND CONTRIBUTORS ``AS IS'' AND
+ * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
+ * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
+ * ARE DISCLAIMED.  IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE
+ * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
+ * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
+ * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
+ * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
+ * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
+ * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
+ * SUCH DAMAGE.
+ *
+ * $FreeBSD: /repoman/r/ncvs/src/lib/libc/include/namespace.h,v 1.1 2001/01/24 13:00:08 deischen Exp $
+ * $DragonFly: src/lib/libc/include/namespace.h,v 1.1 2005/01/31 22:29:29 dillon Exp $
+ *
+ */
+
+#ifndef _NAMESPACE_H_
+#define _NAMESPACE_H_
+
+/*
+ * Prototypes for syscalls/functions that need to be overridden
+ * in libc_r/libpthread.
+ */
+#define                accept                          _accept
+#define                bind                            _bind
+#define                close                           _close
+#define                connect                         _connect
+#define                dup                             _dup
+#define                dup2                            _dup2
+#define                execve                          _execve
+#define                fcntl                           _fcntl
+/*#define              flock                           _flock */
+#define                flockfile                       _flockfile
+#define                fstat                           _fstat
+#define                fstatfs                         _fstatfs
+#define                fsync                           _fsync
+#define                funlockfile                     _funlockfile
+#define                getdirentries                   _getdirentries
+#define                getlogin                        _getlogin
+#define                getpeername                     _getpeername
+#define                getsockname                     _getsockname
+#define                getsockopt                      _getsockopt
+#define                ioctl                           _ioctl
+/* #define             kevent                          _kevent */
+#define                listen                          _listen
+#define                nanosleep                       _nanosleep
+#define                open                            _open
+#define                pthread_getspecific             _pthread_getspecific
+#define                pthread_key_create              _pthread_key_create
+#define                pthread_key_delete              _pthread_key_delete
+#define                pthread_mutex_destroy           _pthread_mutex_destroy
+#define                pthread_mutex_init              _pthread_mutex_init
+#define                pthread_mutex_lock              _pthread_mutex_lock
+#define                pthread_mutex_trylock           _pthread_mutex_trylock
+#define                pthread_mutex_unlock            _pthread_mutex_unlock
+#define                pthread_mutexattr_init          _pthread_mutexattr_init
+#define                pthread_mutexattr_destroy       _pthread_mutexattr_destroy
+#define                pthread_mutexattr_settype       _pthread_mutexattr_settype
+#define                pthread_once                    _pthread_once
+#define                pthread_setspecific             _pthread_setspecific
+#define                read                            _read
+#define                readv                           _readv
+#define                recvfrom                        _recvfrom
+#define                recvmsg                         _recvmsg
+#define                select                          _select
+#define                sendmsg                         _sendmsg
+#define                sendto                          _sendto
+#define                setsockopt                      _setsockopt
+/*#define              sigaction                       _sigaction*/
+#define                sigprocmask                     _sigprocmask
+#define                sigsuspend                      _sigsuspend
+#define                socket                          _socket
+#define                socketpair                      _socketpair
+#define                wait4                           _wait4
+#define                write                           _write
+#define                writev                          _writev
+
+
+/*
+ * Other hidden syscalls/functions that libc_r needs to override
+ * but are not used internally by libc.
+ *
+ * XXX - When modifying libc to use one of the following, remove
+ * the prototype from below and place it in the list above.
+ */
+#if 0
+#define                creat                           _creat
+#define                fchflags                        _fchflags
+#define                fchmod                          _fchmod
+#define                fpathconf                       _fpathconf
+#define                ftrylockfile                    _ftrylockfile
+#define                msync                           _msync
+#define                nfssvc                          _nfssvc
+#define                pause                           _pause
+#define                poll                            _poll
+#define                pthread_rwlock_destroy          _pthread_rwlock_destroy
+#define                pthread_rwlock_init             _pthread_rwlock_init
+#define                pthread_rwlock_rdlock           _pthread_rwlock_rdlock
+#define                pthread_rwlock_tryrdlock        _pthread_rwlock_tryrdlock
+#define                pthread_rwlock_trywrlock        _pthread_rwlock_trywrlock
+#define                pthread_rwlock_unlock           _pthread_rwlock_unlock
+#define                pthread_rwlock_wrlock           _pthread_rwlock_wrlock
+#define                pthread_rwlockattr_init         _pthread_rwlockattr_init
+#define                pthread_rwlockattr_destroy      _pthread_rwlockattr_destroy
+#define                pthread_self                    _pthread_self
+#define                sched_yield                     _sched_yield
+#define                sendfile                        _sendfile
+#define                shutdown                        _shutdown
+#define                sigaltstack                     _sigaltstack
+#define                signanosleep                    _signanosleep
+#define                sigpending                      _sigpending
+#define                sigreturn                       _sigreturn
+#define                sigsetmask                      _sigsetmask
+#define                sleep                           _sleep
+#define                system                          _system
+#define                tcdrain                         _tcdrain
+#define                wait                            _wait
+#define                waitpid                         _waitpid
+#endif
+
+#endif /* _NAMESPACE_H_ */
+
index 047f411..e6961e4 100644 (file)
@@ -30,7 +30,7 @@
  * SUCH DAMAGE.
  *
  * $FreeBSD: src/lib/libc/include/spinlock.h,v 1.4 1999/08/27 23:59:48 peter Exp $
- * $DragonFly: src/lib/libc/include/spinlock.h,v 1.3 2003/11/12 20:21:24 eirikn Exp $
+ * $DragonFly: src/lib/libc/include/spinlock.h,v 1.4 2005/01/31 22:29:29 dillon Exp $
  *
  * Lock definitions used in both libc and libpthread.
  *
@@ -53,7 +53,7 @@ typedef struct {
 
 #define        _SPINLOCK_INITIALIZER   { 0, 0, 0, 0 }
 
-#define _SPINUNLOCK(_lck)      (_lck)->access_lock = 0
+#define _SPINUNLOCK(_lck)      _spinunlock(_lck)
 #ifdef _LOCK_DEBUG
 #define        _SPINLOCK(_lck)         _spinlock_debug(_lck, __FILE__, __LINE__)
 #else
@@ -67,6 +67,7 @@ __BEGIN_DECLS
 long   _atomic_lock (volatile long *);
 void   _spinlock (spinlock_t *);
 void   _spinlock_debug (spinlock_t *, char *, int);
+void   _spinunlock (spinlock_t *);
 __END_DECLS
 
 #endif /* _SPINLOCK_H_ */
diff --git a/lib/libc/include/un-namespace.h b/lib/libc/include/un-namespace.h
new file mode 100644 (file)
index 0000000..2be4f6a
--- /dev/null
@@ -0,0 +1,136 @@
+/*
+ * Copyright (c) 2001 Daniel Eischen <deischen@FreeBSD.org>.
+ * All rights reserved.
+ *
+ * Redistribution and use in source and binary forms, with or without
+ * modification, are permitted provided that the following conditions
+ * are met:
+ * 1. Redistributions of source code must retain the above copyright
+ *    notice, this list of conditions and the following disclaimer.
+ * 2. Redistributions in binary form must reproduce the above copyright
+ *    notice, this list of conditions and the following disclaimer in the
+ *    documentation and/or other materials provided with the distribution.
+ *
+ * THIS SOFTWARE IS PROVIDED BY THE AUTHOR AND CONTRIBUTORS ``AS IS'' AND
+ * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
+ * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
+ * ARE DISCLAIMED.  IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE
+ * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
+ * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
+ * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
+ * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
+ * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
+ * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
+ * SUCH DAMAGE.
+ *
+ * $FreeBSD: /repoman/r/ncvs/src/lib/libc/include/un-namespace.h,v 1.1 2001/01/24 13:00:09 deischen Exp $
+ * $DragonFly: src/lib/libc/include/un-namespace.h,v 1.1 2005/01/31 22:29:29 dillon Exp $
+ */
+
+#ifndef _UN_NAMESPACE_H_
+#define _UN_NAMESPACE_H_
+
+#undef         accept
+#undef         bind
+#undef         close
+#undef         connect
+#undef         dup
+#undef         dup2
+#undef         execve
+#undef         fcntl
+#undef         flock
+#undef         flockfile
+#undef         fstat
+#undef         fstatfs
+#undef         fsync
+#undef         funlockfile
+#undef         getdirentries
+#undef         getlogin
+#undef         getpeername
+#undef         getsockname
+#undef         getsockopt
+#undef         ioctl
+#undef         kevent
+#undef         listen
+#undef         nanosleep
+#undef         open
+#undef         pthread_getspecific
+#undef         pthread_key_create
+#undef         pthread_key_delete
+#undef         pthread_mutex_destroy
+#undef         pthread_mutex_init
+#undef         pthread_mutex_lock
+#undef         pthread_mutex_trylock
+#undef         pthread_mutex_unlock
+#undef         pthread_mutexattr_init
+#undef         pthread_mutexattr_destroy
+#undef         pthread_mutexattr_settype
+#undef         pthread_once
+#undef         pthread_setspecific
+#undef         read
+#undef         readv
+#undef         recvfrom
+#undef         recvmsg
+#undef         select
+#undef         sendmsg
+#undef         sendto
+#undef         setsockopt
+#undef         sigaction
+#undef         sigprocmask
+#undef         sigsuspend
+#undef         socket
+#undef         socketpair
+#undef         wait4
+#undef         write
+#undef         writev
+
+#if 0
+#undef         creat
+#undef         fchflags
+#undef         fchmod
+#undef         fpathconf
+#undef         ftrylockfile
+#undef         msync
+#undef         nfssvc
+#undef         pause
+#undef         poll
+#undef         pthread_rwlock_destroy
+#undef         pthread_rwlock_init
+#undef         pthread_rwlock_rdlock
+#undef         pthread_rwlock_tryrdlock
+#undef         pthread_rwlock_trywrlock
+#undef         pthread_rwlock_unlock
+#undef         pthread_rwlock_wrlock
+#undef         pthread_rwlockattr_init
+#undef         pthread_rwlockattr_destroy
+#undef         pthread_self
+#undef         sched_yield
+#undef         sendfile
+#undef         shutdown
+#undef         sigaltstack
+#undef         signanosleep
+#undef         sigpending
+#undef         sigreturn
+#undef         sigsetmask
+#undef         sleep
+#undef         system
+#undef         tcdrain
+#undef         wait
+#undef         waitpid
+#endif /* 0 */
+
+#ifdef _SIGNAL_H_
+int            _sigaction(int, const struct sigaction *, struct sigaction *);
+#endif
+
+#ifdef _SYS_EVENT_H_
+int            _kevent(int, const struct kevent *, int, struct kevent *,
+                   int, const struct timespec *);
+#endif
+
+#ifdef _SYS_FCNTL_H_
+int            _flock(int, int);
+#endif
+
+#endif /* _UN_NAMESPACE_H_ */
+
index c870d6f..601e629 100644 (file)
  * SUCH DAMAGE.
  *
  * $FreeBSD: src/lib/libc/locale/collate.c,v 1.21.2.4 2002/10/11 10:36:47 ache Exp $
- * $DragonFly: src/lib/libc/locale/collate.c,v 1.2 2003/06/17 04:26:43 dillon Exp $
+ * $DragonFly: src/lib/libc/locale/collate.c,v 1.3 2005/01/31 22:29:31 dillon Exp $
  */
 
+#include "namespace.h"
 #include <arpa/inet.h>
 #include <rune.h>
 #include <stdio.h>
@@ -36,6 +37,7 @@
 #include <errno.h>
 #include <unistd.h>
 #include <sysexits.h>
+#include "un-namespace.h"
 
 #include "collate.h"
 #include "setlocale.h"
@@ -145,7 +147,7 @@ __collate_load_tables(const char *encoding)
 
 #define FREAD(a, b, c, d) \
 { \
-       if (fread(a, b, c, d) != c) { \
+       if ( fread(a, b, c, d) != c) { \
                saverr = errno; \
                free(TMP_substitute_table); \
                free(TMP_char_pri_table); \
index 904c1a4..951fd46 100644 (file)
  *
  * @(#)rune.c  8.1 (Berkeley) 6/4/93
  * $FreeBSD: src/lib/libc/locale/rune.c,v 1.5.8.2 2002/08/12 11:17:38 ache Exp $
- * $DragonFly: src/lib/libc/locale/rune.c,v 1.2 2003/06/17 04:26:44 dillon Exp $
+ * $DragonFly: src/lib/libc/locale/rune.c,v 1.3 2005/01/31 22:29:31 dillon Exp $
  */
 
+#include "namespace.h"
 #include <arpa/inet.h>
 #include <errno.h>
 #include <rune.h>
@@ -46,6 +47,7 @@
 #include <stdlib.h>
 #include <sys/types.h>
 #include <sys/stat.h>
+#include "un-namespace.h"
 
 _RuneLocale *
 _Read_RuneMagi(fp)
index dae9fc1..f1cfafc 100644 (file)
@@ -1,5 +1,5 @@
 /*     $FreeBSD: src/lib/libc/net/getaddrinfo.c,v 1.9.2.14 2002/11/08 17:49:31 ume Exp $       */
-/*     $DragonFly: src/lib/libc/net/getaddrinfo.c,v 1.3 2003/11/12 20:21:24 eirikn Exp $       */
+/*     $DragonFly: src/lib/libc/net/getaddrinfo.c,v 1.4 2005/01/31 22:29:33 dillon Exp $       */
 /*     $KAME: getaddrinfo.c,v 1.15 2000/07/09 04:37:24 itojun Exp $    */
 
 /*
@@ -64,6 +64,7 @@
  * - FreeBSD allowed classful IPv4 numeric (127.1), the code does not.
  */
 
+#include "namespace.h"
 #include <sys/types.h>
 #include <sys/param.h>
 #include <sys/socket.h>
@@ -80,6 +81,7 @@
 #include <unistd.h>
 #include <stdio.h>
 #include <errno.h>
+#include "un-namespace.h"
 
 #include "res_config.h"
 
@@ -739,7 +741,7 @@ explore_null(pai, servname, res)
         * filter out AFs that are not supported by the kernel
         * XXX errno?
         */
-       s = socket(pai->ai_family, SOCK_DGRAM, 0);
+       s = _socket(pai->ai_family, SOCK_DGRAM, 0);
        if (s < 0) {
                if (errno != EMFILE)
                        return 0;
@@ -1134,11 +1136,11 @@ addrconfig(pai)
         */
        af = pai->ai_family;
        if (af == AF_UNSPEC) {
-               if ((s = socket(AF_INET6, SOCK_DGRAM, 0)) < 0)
+               if ((s = _socket(AF_INET6, SOCK_DGRAM, 0)) < 0)
                        af = AF_INET;
                else {
                        _close(s);
-                       if ((s = socket(AF_INET, SOCK_DGRAM, 0)) < 0)
+                       if ((s = _socket(AF_INET, SOCK_DGRAM, 0)) < 0)
                                af = AF_INET6;
                        else
                                _close(s);
@@ -1146,7 +1148,7 @@ addrconfig(pai)
 
        }
        if (af != AF_UNSPEC) {
-               if ((s = socket(af, SOCK_DGRAM, 0)) < 0)
+               if ((s = _socket(af, SOCK_DGRAM, 0)) < 0)
                        return 0;
                _close(s);
        }
index 8a0205f..3d8d113 100644 (file)
@@ -52,7 +52,7 @@
  *
  * @(#)gethostnamadr.c 8.1 (Berkeley) 6/4/93
  * $FreeBSD: src/lib/libc/net/gethostbyht.c,v 1.12 1999/08/28 00:00:05 peter Exp $
- * $DragonFly: src/lib/libc/net/gethostbyht.c,v 1.3 2004/10/25 19:38:01 drhodus Exp $
+ * $DragonFly: src/lib/libc/net/gethostbyht.c,v 1.4 2005/01/31 22:29:33 dillon Exp $
  */
 
 #include <sys/param.h>
@@ -62,7 +62,6 @@
 #include <netdb.h>
 #include <stdio.h>
 #include <ctype.h>
-#include <errno.h>
 #include <string.h>
 #include <arpa/nameser.h>      /* XXX */
 #include <resolv.h>            /* XXX */
index 3b2bd31..890b340 100644 (file)
@@ -23,7 +23,7 @@
  * SUCH DAMAGE.
  *
  * $FreeBSD: src/lib/libc/net/gethostnamadr.c,v 1.15.2.2 2001/03/05 10:40:42 obrien Exp $
- * $DragonFly: src/lib/libc/net/gethostnamadr.c,v 1.3 2004/10/25 19:38:01 drhodus Exp $
+ * $DragonFly: src/lib/libc/net/gethostnamadr.c,v 1.4 2005/01/31 22:29:33 dillon Exp $
  */
 
 #include <sys/param.h>
@@ -188,7 +188,6 @@ gethostbyaddr(const char *addr, int len, int type)
        return hp;
 }
 
-#ifdef _THREAD_SAFE
 struct hostent_data;
 
 /*
@@ -207,7 +206,6 @@ int gethostbyaddr_r(const char *addr, int len, int type,
        }
        return(ret);
 }
-#endif
 
 void
 sethostent(stayopen)
index 8b11724..3a96bbf 100644 (file)
@@ -1,5 +1,5 @@
 /*     $FreeBSD: src/lib/libc/net/getifaddrs.c,v 1.1.2.4 2002/08/01 19:31:06 ume Exp $ */
-/*     $DragonFly: src/lib/libc/net/getifaddrs.c,v 1.4 2004/02/03 07:34:09 dillon Exp $        */
+/*     $DragonFly: src/lib/libc/net/getifaddrs.c,v 1.5 2005/01/31 22:29:33 dillon Exp $        */
 /*     $KAME: getifaddrs.c,v 1.9 2001/08/20 02:31:20 itojun Exp $      */
 
 /*
  * NOTE: SIOCGIFCONF case is not LP64 friendly.  it also does not perform
  * try-and-error for region size.
  */
-#include <sys/param.h>
+#include "namespace.h"
 #include <sys/types.h>
 #include <sys/ioctl.h>
 #include <sys/socket.h>
 #include <net/if.h>
 #ifdef NET_RT_IFLIST
+#include <sys/param.h>
 #include <net/route.h>
 #include <sys/sysctl.h>
 #include <net/if_dl.h>
@@ -45,6 +46,7 @@
 #include <ifaddrs.h>
 #include <stdlib.h>
 #include <string.h>
+#include "un-namespace.h"
 
 #if !defined(AF_LINK)
 #define        SA_LEN(sa)      sizeof(struct sockaddr)
@@ -217,10 +219,10 @@ getifaddrs(struct ifaddrs **pif)
        ifc.ifc_buf = buf;
        ifc.ifc_len = sizeof(buf);
 
-       if ((sock = socket(AF_INET, SOCK_STREAM, 0)) < 0)
+       if ((sock = _socket(AF_INET, SOCK_STREAM, 0)) < 0)
                return (-1);
-       i =  ioctl(sock, SIOCGIFCONF, (char *)&ifc);
-       close(sock);
+       i =  _ioctl(sock, SIOCGIFCONF, (char *)&ifc);
+       _close(sock);
        if (i < 0)
                return (-1);
 
index 278a84e..070229a 100644 (file)
@@ -32,7 +32,7 @@
  *
  * @(#)herror.c        8.1 (Berkeley) 6/4/93
  * $FreeBSD: src/lib/libc/net/herror.c,v 1.8 1999/08/28 00:00:09 peter Exp $
- * $DragonFly: src/lib/libc/net/herror.c,v 1.3 2004/10/25 19:38:01 drhodus Exp $
+ * $DragonFly: src/lib/libc/net/herror.c,v 1.4 2005/01/31 22:29:33 dillon Exp $
  */
 
 /*
  * SOFTWARE.
  */
 
+#include "namespace.h"
 #include <sys/types.h>
 #include <sys/uio.h>
 #include <netdb.h>
 #include <string.h>
 #include <unistd.h>
+#include "un-namespace.h"
 
 const char *h_errlist[] = {
        "Resolver Error 0 (no error)",
@@ -93,7 +95,7 @@ herror(s)
        v++;
        v->iov_base = "\n";
        v->iov_len = 1;
-       writev(STDERR_FILENO, iov, (v - iov) + 1);
+       _writev(STDERR_FILENO, iov, (v - iov) + 1);
 }
 
 const char *
index 38c85e6..2c71b93 100644 (file)
@@ -1,5 +1,5 @@
 /*     $FreeBSD: src/lib/libc/net/name6.c,v 1.6.2.9 2002/11/02 18:54:57 ume Exp $      */
-/*     $DragonFly: src/lib/libc/net/name6.c,v 1.4 2004/10/25 19:38:01 drhodus Exp $    */
+/*     $DragonFly: src/lib/libc/net/name6.c,v 1.5 2005/01/31 22:29:33 dillon Exp $     */
 /*     $KAME: name6.c,v 1.25 2000/06/26 16:44:40 itojun Exp $  */
 
 /*
@@ -95,6 +95,7 @@
  *     rewrite resolvers to be thread safe
  */
 
+#include "namespace.h"
 #include <sys/param.h>
 #include <sys/socket.h>
 #include <sys/time.h>
 #include <stdlib.h>
 #include <string.h>
 #include <unistd.h>
+#include "un-namespace.h"
 
 #ifndef _PATH_HOSTS
 #define        _PATH_HOSTS     "/etc/hosts"
@@ -340,11 +342,11 @@ _ghbyname(const char *name, int af, int flags, int *errp)
                 * because addresses will be dynamically assigned or deleted.
                 */
                if (af == AF_UNSPEC) {
-                       if ((s = socket(AF_INET6, SOCK_DGRAM, 0)) < 0)
+                       if ((s = _socket(AF_INET6, SOCK_DGRAM, 0)) < 0)
                                af = AF_INET;
                        else {
                                _close(s);
-                               if ((s = socket(AF_INET, SOCK_DGRAM, 0)) < 0)
+                               if ((s = _socket(AF_INET, SOCK_DGRAM, 0)) < 0)
                                        af = AF_INET6;
                                else
                                _close(s);
@@ -352,7 +354,7 @@ _ghbyname(const char *name, int af, int flags, int *errp)
 
                }
                if (af != AF_UNSPEC) {
-                       if ((s = socket(af, SOCK_DGRAM, 0)) < 0)
+                       if ((s = _socket(af, SOCK_DGRAM, 0)) < 0)
                                return NULL;
                        _close(s);
                }
@@ -1783,11 +1785,11 @@ _icmp_fqdn_query(const struct in6_addr *addr, int ifindex)
                msg.msg_controllen = (char *)cmsg - cbuf;
        }
 
-       if ((s = socket(PF_INET6, SOCK_RAW, IPPROTO_ICMPV6)) < 0)
+       if ((s = _socket(PF_INET6, SOCK_RAW, IPPROTO_ICMPV6)) < 0)
                return NULL;
-       (void)setsockopt(s, IPPROTO_ICMPV6, ICMP6_FILTER,
+       (void)_setsockopt(s, IPPROTO_ICMPV6, ICMP6_FILTER,
                         (char *)&filter, sizeof(filter));
-       cc = sendmsg(s, &msg, 0);
+       cc = _sendmsg(s, &msg, 0);
        if (cc < 0) {
                _close(s);
                return NULL;
@@ -1800,7 +1802,7 @@ _icmp_fqdn_query(const struct in6_addr *addr, int ifindex)
                        return NULL;
                }
                len = sizeof(sin6);
-               cc = recvfrom(s, buf, sizeof(buf), 0,
+               cc = _recvfrom(s, buf, sizeof(buf), 0,
                              (struct sockaddr *)&sin6, &len);
                if (cc <= 0) {
                        _close(s);
index cfd9337..7ffab62 100644 (file)
  * SUCH DAMAGE.
  *
  * $FreeBSD: src/lib/libc/net/rcmd.c,v 1.23.2.7 2002/08/26 16:17:49 jdp Exp $
- * $DragonFly: src/lib/libc/net/rcmd.c,v 1.4 2004/10/25 19:38:01 drhodus Exp $
+ * $DragonFly: src/lib/libc/net/rcmd.c,v 1.5 2005/01/31 22:29:33 dillon Exp $
  *
  * @(#)rcmd.c  8.3 (Berkeley) 3/26/94
  */
 
+#include "namespace.h"
 #include <sys/param.h>
 #include <sys/socket.h>
 #include <sys/stat.h>
@@ -59,6 +60,7 @@
 #include <rpcsvc/ypclnt.h>
 #endif
 #include <arpa/nameser.h>
+#include "un-namespace.h"
 
 /* wrapper for KAME-special getnameinfo() */
 #ifndef NI_WITHSCOPEID
@@ -100,7 +102,7 @@ rcmd_af(ahost, rport, locuser, remuser, cmd, fd2p, af)
        struct addrinfo hints, *res, *ai;
        struct sockaddr_storage from;
        fd_set reads;
-       long oldmask;
+       sigset_t oldmask, newmask;
        pid_t pid;
        int s, aport, lport, timo, error;
        char c, *p;
@@ -154,7 +156,9 @@ rcmd_af(ahost, rport, locuser, remuser, cmd, fd2p, af)
                nres++;
        ai = res;
        refused = 0;
-       oldmask = sigblock(sigmask(SIGURG));
+       sigemptyset(&newmask);
+       sigaddset(&newmask, SIGURG);
+       _sigprocmask(SIG_BLOCK, (const sigset_t *)&newmask, &oldmask);
        for (timo = 1, lport = IPPORT_RESERVED - 1;;) {
                s = rresvport_af(&lport, ai->ai_family);
                if (s < 0) {
@@ -169,11 +173,12 @@ rcmd_af(ahost, rport, locuser, remuser, cmd, fd2p, af)
                                (void)fprintf(stderr, "rcmd: socket: %s\n",
                                    strerror(errno));
                        freeaddrinfo(res);
-                       sigsetmask(oldmask);
+                       _sigprocmask(SIG_SETMASK, (const sigset_t *)&oldmask,
+                           NULL);
                        return (-1);
                }
                _fcntl(s, F_SETOWN, pid);
-               if (connect(s, ai->ai_addr, ai->ai_addrlen) >= 0)
+               if (_connect(s, ai->ai_addr, ai->ai_addrlen) >= 0)
                        break;
                (void)_close(s);
                if (errno == EADDRINUSE) {
@@ -186,7 +191,8 @@ rcmd_af(ahost, rport, locuser, remuser, cmd, fd2p, af)
                        (void)fprintf(stderr, "%s: %s\n",
                                      *ahost, strerror(errno));
                        freeaddrinfo(res);
-                       sigsetmask(oldmask);
+                       _sigprocmask(SIG_SETMASK, (const sigset_t *)&oldmask,
+                           NULL);
                        return (-1);
                }
                if (nres > 1) {
@@ -232,7 +238,7 @@ rcmd_af(ahost, rport, locuser, remuser, cmd, fd2p, af)
 
                if (s2 < 0)
                        goto bad;
-               listen(s2, 1);
+               _listen(s2, 1);
                (void)snprintf(num, sizeof(num), "%d", lport);
                if (_write(s, num, strlen(num)+1) != strlen(num)+1) {
                        (void)fprintf(stderr,
@@ -252,7 +258,7 @@ again:
                FD_SET(s, &reads);
                FD_SET(s2, &reads);
                errno = 0;
-               if (select(nfds, &reads, 0, 0, 0) < 1 || !FD_ISSET(s2, &reads)){
+               if (_select(nfds, &reads, 0, 0, 0) < 1 || !FD_ISSET(s2, &reads)){
                        if (errno != 0)
                                (void)fprintf(stderr,
                                    "rcmd: select (setting up stderr): %s\n",
@@ -263,7 +269,7 @@ again:
                        (void)_close(s2);
                        goto bad;
                }
-               s3 = accept(s2, (struct sockaddr *)&from, &len);
+               s3 = _accept(s2, (struct sockaddr *)&from, &len);
                switch (from.ss_family) {
                case AF_INET:
                        aport = ntohs(((struct sockaddr_in *)&from)->sin_port);
@@ -315,7 +321,7 @@ again:
                }
                goto bad2;
        }
-       sigsetmask(oldmask);
+       _sigprocmask(SIG_SETMASK, (const sigset_t *)&oldmask, NULL);
        freeaddrinfo(res);
        return (s);
 bad2:
@@ -323,7 +329,7 @@ bad2:
                (void)_close(*fd2p);
 bad:
        (void)_close(s);
-       sigsetmask(oldmask);
+       _sigprocmask(SIG_SETMASK, (const sigset_t *)&oldmask, NULL);
        freeaddrinfo(res);
        return (-1);
 }
@@ -363,12 +369,12 @@ rresvport_af(alport, family)
                return -1;
        }
 
-       s = socket(ss.ss_family, SOCK_STREAM, 0);
+       s = _socket(ss.ss_family, SOCK_STREAM, 0);
        if (s < 0)
                return (-1);
 #if 0 /* compat_exact_traditional_rresvport_semantics */
        sin.sin_port = htons((u_short)*alport);
-       if (bind(s, (struct sockaddr *)&sin, sizeof(sin)) >= 0)
+       if (_bind(s, (struct sockaddr *)&sin, sizeof(sin)) >= 0)
                return (s);
        if (errno != EADDRINUSE) {
                (void)_close(s);
@@ -504,7 +510,7 @@ again:
                        cp = ".rhosts lstat failed";
                else if (!S_ISREG(sbuf.st_mode))
                        cp = ".rhosts not regular file";
-               else if (fstat(fileno(hostf), &sbuf) < 0)
+               else if (_fstat(fileno(hostf), &sbuf) < 0)
                        cp = ".rhosts fstat failed";
                else if (sbuf.st_uid && sbuf.st_uid != pwd->pw_uid)
                        cp = "bad .rhosts owner";
index 0cc131c..2d137a4 100644 (file)
  * SUCH DAMAGE.
  *
  * $FreeBSD: src/lib/libc/net/recv.c,v 1.1.1.1.14.1 2001/03/05 10:47:11 obrien Exp $
- * $DragonFly: src/lib/libc/net/recv.c,v 1.2 2003/06/17 04:26:44 dillon Exp $
+ * $DragonFly: src/lib/libc/net/recv.c,v 1.3 2005/01/31 22:29:33 dillon Exp $
  *
  * @(#)recv.c  8.2 (Berkeley) 2/21/94
  */
 
+#include "namespace.h"
 #include <sys/types.h>
 #include <sys/socket.h>
 
 #include <stddef.h>
+#include "un-namespace.h"
 
 ssize_t
 recv(s, buf, len, flags)
@@ -47,5 +49,5 @@ recv(s, buf, len, flags)
        size_t len;
        void *buf;
 {
-       return (recvfrom(s, buf, len, flags, NULL, 0));
+       return (_recvfrom(s, buf, len, flags, NULL, 0));
 }
index 79a7997..b68a622 100644 (file)
@@ -33,7 +33,7 @@
  * @(#)res_send.c      8.1 (Berkeley) 6/4/93
  * $From: Id: res_send.c,v 8.20 1998/04/06 23:27:51 halley Exp $
  * $FreeBSD: src/lib/libc/net/res_send.c,v 1.31.2.9 2002/04/11 17:30:24 ume Exp $
- * $DragonFly: src/lib/libc/net/res_send.c,v 1.3 2003/11/12 20:21:24 eirikn Exp $
+ * $DragonFly: src/lib/libc/net/res_send.c,v 1.4 2005/01/31 22:29:33 dillon Exp $
  */
 
 /*
@@ -77,6 +77,7 @@
  * Send query to name server and wait for reply.
  */
 
+#include "namespace.h"
 #include <sys/types.h>
 #include <sys/event.h>
 #include <sys/param.h>
@@ -95,6 +96,7 @@
 #include <stdlib.h>
 #include <string.h>
 #include <unistd.h>
+#include "un-namespace.h"
 
 #include "res_config.h"
 
@@ -459,7 +461,7 @@ res_send(buf, buflen, ans, anssiz)
                                        res_close();
 
                                af = nsap->sa_family;
-                               s = socket(af, SOCK_STREAM, 0);
+                               s = _socket(af, SOCK_STREAM, 0);
                                if (s < 0) {
                                        terrno = errno;
                                        Perror(stderr, "socket(vc)", errno);
@@ -468,7 +470,7 @@ res_send(buf, buflen, ans, anssiz)
                                        goto next_ns;
                                }
                                errno = 0;
-                               if (connect(s, nsap, salen) < 0) {
+                               if (_connect(s, nsap, salen) < 0) {
                                        terrno = errno;
                                        Aerror(stderr, "connect/vc",
                                               errno, nsap);
@@ -486,7 +488,7 @@ res_send(buf, buflen, ans, anssiz)
                        iov[0].iov_len = INT16SZ;
                        iov[1].iov_base = (caddr_t)buf;
                        iov[1].iov_len = buflen;
-                       if (writev(s, iov, 2) != (INT16SZ + buflen)) {
+                       if (_writev(s, iov, 2) != (INT16SZ + buflen)) {
                                terrno = errno;
                                Perror(stderr, "write failed", errno);
                                badns |= (1 << ns);
@@ -604,7 +606,7 @@ read_len:
                                if (vc)
                                        res_close();
                                af = nsap->sa_family;
-                               s = socket(af, SOCK_DGRAM, 0);
+                               s = _socket(af, SOCK_DGRAM, 0);
                                if (s < 0) {
 #ifndef CAN_RECONNECT
  bad_dg_sock:
@@ -647,7 +649,7 @@ read_len:
                                 * receive a response from another server.
                                 */
                                if (!connected) {
-                                       if (connect(s, nsap, salen) < 0) {
+                                       if (_connect(s, nsap, salen) < 0) {
                                                Aerror(stderr,
                                                       "connect(dg)",
                                                       errno, nsap);
@@ -676,15 +678,15 @@ read_len:
                                        no_addr.sin_family = AF_INET;
                                        no_addr.sin_addr.s_addr = INADDR_ANY;
                                        no_addr.sin_port = 0;
-                                       (void) connect(s,
+                                       (void)_connect(s,
                                                       (struct sockaddr *)
                                                        &no_addr,
                                                       sizeof no_addr);
 #else
-                                       int s1 = socket(af, SOCK_DGRAM,0);
+                                       int s1 = _socket(af, SOCK_DGRAM,0);
                                        if (s1 < 0)
                                                goto bad_dg_sock;
-                                       (void)dup2(s1, s);
+                                       (void)_dup2(s1, s);
                                        (void)_close(s1);
                                        Dprint(_res.options & RES_DEBUG,
                                                (stdout, ";; new DG socket\n"))
@@ -693,7 +695,7 @@ read_len:
                                        errno = 0;
                                }
 #endif /* !CANNOT_CONNECT_DGRAM */
-                               if (sendto(s, (char*)buf, buflen, 0,
+                               if (_sendto(s, (char*)buf, buflen, 0,
                                           nsap, salen) != buflen) {
                                        Aerror(stderr, "sendto", errno, nsap);
                                        badns |= (1 << ns);
@@ -726,7 +728,7 @@ read_len:
 
                        EV_SET(&kv, s, EVFILT_READ, EV_ADD | EV_ONESHOT, 0,0,0);
 
-                       n = kevent(kq, &kv, 1, &kv, 1, &ts);
+                       n = _kevent(kq, &kv, 1, &kv, 1, &ts);
                        if (n < 0) {
                                if (errno == EINTR) {
                                        (void) gettimeofday(&ctv, NULL);
@@ -753,7 +755,7 @@ read_len:
                        }
                        errno = 0;
                        fromlen = sizeof(from);
-                       resplen = recvfrom(s, (char*)ans, anssiz, 0,
+                       resplen = _recvfrom(s, (char*)ans, anssiz, 0,
                                           (struct sockaddr *)&from, &fromlen);
                        if (resplen <= 0) {
                                Perror(stderr, "recvfrom", errno);
index 03af186..881e806 100644 (file)
  * SUCH DAMAGE.
  *
  * $FreeBSD: src/lib/libc/net/send.c,v 1.1.1.1.14.1 2001/03/05 10:47:11 obrien Exp $
- * $DragonFly: src/lib/libc/net/send.c,v 1.2 2003/06/17 04:26:44 dillon Exp $
+ * $DragonFly: src/lib/libc/net/send.c,v 1.3 2005/01/31 22:29:33 dillon Exp $
  *
  * @(#)send.c  8.2 (Berkeley) 2/21/94
  */
 
+#include "namespace.h"
 #include <sys/types.h>
 #include <sys/socket.h>
 
 #include <stddef.h>
+#include "un-namespace.h"
 
 ssize_t
 send(s, msg, len, flags)
@@ -47,5 +49,5 @@ send(s, msg, len, flags)
        size_t len;
        const void *msg;
 {
-       return (sendto(s, msg, len, flags, NULL, 0));
+       return (_sendto(s, msg, len, flags, NULL, 0));
 }
index d4911b3..c0226e6 100644 (file)
@@ -31,7 +31,7 @@ up-to-date.  Many thanks.
 ******************************************************************/
 /*
  * $FreeBSD: src/lib/libc/nls/msgcat.c,v 1.21.2.6 2002/08/12 11:23:54 ache Exp $
- * $DragonFly: src/lib/libc/nls/Attic/msgcat.c,v 1.3 2003/08/22 19:31:21 asmodai Exp $
+ * $DragonFly: src/lib/libc/nls/Attic/msgcat.c,v 1.4 2005/01/31 22:29:36 dillon Exp $
  */
 
 /*
@@ -39,6 +39,7 @@ up-to-date.  Many thanks.
  * to add an error handling routine.
  */
 
+#include "namespace.h"
 #include <sys/types.h>
 #include <sys/stat.h>
 #include <sys/syslimits.h>
@@ -50,6 +51,7 @@ up-to-date.  Many thanks.
 #include <stdlib.h>
 #include <string.h>
 #include <unistd.h>
+#include "un-namespace.h"
 
 #include "msgcat.h"
 #include "../locale/setlocale.h"        /* for ENCODING_LEN */
index ecaa12d..5f4a857 100644 (file)
@@ -30,8 +30,9 @@
  *       it from TI-RPC back to TD-RPC for use on FreeBSD.
  *
  * $FreeBSD: src/lib/libc/rpc/auth_time.c,v 1.4 2000/01/27 23:06:35 jasone Exp $
- * $DragonFly: src/lib/libc/rpc/auth_time.c,v 1.2 2003/06/17 04:26:44 dillon Exp $
+ * $DragonFly: src/lib/libc/rpc/auth_time.c,v 1.3 2005/01/31 22:29:38 dillon Exp $
  */
+#include "namespace.h"
 #include <stdio.h>
 #include <syslog.h>
 #include <string.h>
@@ -47,6 +48,7 @@
 #include <rpc/rpc_com.h>
 #undef NIS
 #include <rpcsvc/nis.h>
+#include "un-namespace.h"
 
 /*
  * FreeBSD currently uses RPC 4.0, which uses portmap rather than
@@ -386,7 +388,7 @@ __rpc_get_time_offset(td, srv, thost, uaddr, netid)
                        goto error;
                }
 
-               s = socket(AF_INET, type, 0);
+               s = _socket(AF_INET, type, 0);
                if (s == -1) {
                        msg("unable to open fd to network.");
                        goto error;
@@ -402,7 +404,7 @@ __rpc_get_time_offset(td, srv, thost, uaddr, netid)
                        fd_set readfds;
                        int res;
 
-                       if (sendto(s, &thetime, sizeof(thetime), 0,
+                       if (_sendto(s, &thetime, sizeof(thetime), 0,
                                (struct sockaddr *)&sin, sizeof(sin)) == -1) {
                                msg("udp : sendto failed.");
                                goto error;
@@ -410,13 +412,13 @@ __rpc_get_time_offset(td, srv, thost, uaddr, netid)
                        do {
                                FD_ZERO(&readfds);
                                FD_SET(s, &readfds);
-                               res = select(_rpc_dtablesize(), &readfds,
+                               res = _select(_rpc_dtablesize(), &readfds,
                                     (fd_set *)NULL, (fd_set *)NULL, &timeout);
                        } while (res < 0 && errno == EINTR);
                        if (res <= 0)
                                goto error;
                        len = sizeof(from);
-                       res = recvfrom(s, (char *)&thetime, sizeof(thetime), 0,
+                       res = _recvfrom(s, (char *)&thetime, sizeof(thetime), 0,
                                       (struct sockaddr *)&from, &len);
                        if (res == -1) {
                                msg("recvfrom failed on udp transport.");
@@ -429,7 +431,7 @@ __rpc_get_time_offset(td, srv, thost, uaddr, netid)
                        oldsig = (void (*)())signal(SIGALRM, alarm_hndler);
                        saw_alarm = 0; /* global tracking the alarm */
                        alarm(20); /* only wait 20 seconds */
-                       res = connect(s, (struct sockaddr *)&sin, sizeof(sin));
+                       res = _connect(s, (struct sockaddr *)&sin, sizeof(sin));
                        if (res == -1) {
                                msg("failed to connect to tcp endpoint.");
                                goto error;
index aeeaa29..3418c7e 100644 (file)
@@ -29,7 +29,7 @@
  * @(#)bindresvport.c 1.8 88/02/08 SMI
  * @(#)bindresvport.c  2.2 88/07/29 4.0 RPCSRC
  * $FreeBSD: src/lib/libc/rpc/bindresvport.c,v 1.12 2000/01/26 09:02:42 shin Exp $
- * $DragonFly: src/lib/libc/rpc/bindresvport.c,v 1.2 2003/06/17 04:26:44 dillon Exp $
+ * $DragonFly: src/lib/libc/rpc/bindresvport.c,v 1.3 2005/01/31 22:29:38 dillon Exp $
  */
 
 /*
  * Portions Copyright(C) 1996, Jason Downs.  All rights reserved.
  */
 
+#include "namespace.h"
 #include <sys/types.h>
 #include <sys/errno.h>
 #include <sys/socket.h>
 #include <netinet/in.h>
 #include <unistd.h>
 #include <string.h>
+#include "un-namespace.h"
 
 /*
  * Bind a socket to a privileged IP port
@@ -76,7 +78,7 @@ bindresvport_sa(sd, sa)
                salen = sizeof(myaddr);
                sa = (struct sockaddr *)&myaddr;
 
-               if (getsockname(sd, sa, &salen) == -1)
+               if (_getsockname(sd, sa, &salen) == -1)
                        return -1;      /* errno is correctly set */
 
                af = sa->sa_family;
@@ -108,7 +110,7 @@ bindresvport_sa(sd, sa)
        if (port == 0) {
                int oldlen = sizeof(old);
 
-               error = getsockopt(sd, proto, portrange, &old, &oldlen);
+               error = _getsockopt(sd, proto, portrange, &old, &oldlen);
                if (error < 0)
                        return (error);
 
@@ -118,13 +120,13 @@ bindresvport_sa(sd, sa)
                        return (error);
        }
 
-       error = bind(sd, sa, salen);
+       error = _bind(sd, sa, salen);
 
        if (port == 0) {
                int saved_errno = errno;
 
                if (error) {
-                       if (setsockopt(sd, proto, portrange, &old,
+                       if (_setsockopt(sd, proto, portrange, &old,
                            sizeof(old)) < 0)
                                errno = saved_errno;
                        return (error);
@@ -132,7 +134,7 @@ bindresvport_sa(sd, sa)
 
                if (sa != (struct sockaddr *)&myaddr) {
                        /* Hmm, what did the kernel assign... */
-                       if (getsockname(sd, sa, &salen) < 0)
+                       if (_getsockname(sd, sa, &salen) < 0)
                                errno = saved_errno;
                        return (error);
                }
index ad22653..316ca9c 100644 (file)
@@ -29,7 +29,7 @@
  * @(#)clnt_generic.c 1.4 87/08/11 (C) 1987 SMI
  * @(#)clnt_generic.c  2.2 88/08/01 4.0 RPCSRC
  * $FreeBSD: src/lib/libc/rpc/clnt_generic.c,v 1.9.2.1 2001/03/05 10:48:28 obrien Exp $
- * $DragonFly: src/lib/libc/rpc/clnt_generic.c,v 1.3 2004/09/14 18:23:15 joerg Exp $
+ * $DragonFly: src/lib/libc/rpc/clnt_generic.c,v 1.4 2005/01/31 22:29:38 dillon Exp $
  */
 
 /*
@@ -44,7 +44,7 @@
 /*
  * Generic client creation: takes (hostname, program-number, protocol) and
  * returns client handle. Default options are set, which the user can
- * change using the rpc equivalent of ioctl()'s.
+ * change using the rpc equivalent of _ioctl()'s.
  */
 CLIENT *
 clnt_create(const char *hostname, u_long prog, u_long vers, const char *proto)
index ac5dae9..750add4 100644 (file)
@@ -29,7 +29,7 @@
  * @(#)clnt_simple.c 1.35 87/08/11 Copyr 1984 Sun Micro
  * @(#)clnt_simple.c   2.2 88/08/01 4.0 RPCSRC
  * $FreeBSD: src/lib/libc/rpc/clnt_simple.c,v 1.12 2000/01/27 23:06:35 jasone Exp $
- * $DragonFly: src/lib/libc/rpc/clnt_simple.c,v 1.3 2004/10/25 19:38:01 drhodus Exp $
+ * $DragonFly: src/lib/libc/rpc/clnt_simple.c,v 1.4 2005/01/31 22:29:38 dillon Exp $
  */
 
 /*
@@ -39,6 +39,7 @@
  * Copyright (C) 1984, Sun Microsystems, Inc.
  */
 
+#include "namespace.h"
 #include <sys/param.h>
 #include <stdio.h>
 #include <stdlib.h>
@@ -47,6 +48,7 @@
 #include <rpc/rpc.h>
 #include <sys/socket.h>
 #include <netdb.h>
+#include "un-namespace.h"
 
 static struct callrpc_private {
        CLIENT  *client;
index 5d0e270..657bad3 100644 (file)
@@ -29,7 +29,7 @@
  * @(#)clnt_tcp.c 1.37 87/10/05 Copyr 1984 Sun Micro
  * @(#)clnt_tcp.c      2.2 88/08/01 4.0 RPCSRC
  * $FreeBSD: src/lib/libc/rpc/clnt_tcp.c,v 1.14 2000/01/27 23:06:36 jasone Exp $
- * $DragonFly: src/lib/libc/rpc/clnt_tcp.c,v 1.3 2004/10/25 19:38:01 drhodus Exp $
+ * $DragonFly: src/lib/libc/rpc/clnt_tcp.c,v 1.4 2005/01/31 22:29:38 dillon Exp $
  */
 
 /*
@@ -51,6 +51,7 @@
  * Now go hang yourself.
  */
 
+#include "namespace.h"
 #include <stdio.h>
 #include <stdlib.h>
 #include <unistd.h>
@@ -60,6 +61,7 @@
 #include <netdb.h>
 #include <errno.h>
 #include <rpc/pmap_clnt.h>
+#include "un-namespace.h"
 
 #define MCALL_MSG_SIZE 24
 
@@ -158,10 +160,10 @@ clnttcp_create(raddr, prog, vers, sockp, sendsz, recvsz)
         * If no socket given, open one
         */
        if (*sockp < 0) {
-               *sockp = socket(AF_INET, SOCK_STREAM, IPPROTO_TCP);
+               *sockp = _socket(AF_INET, SOCK_STREAM, IPPROTO_TCP);
                (void)bindresvport(*sockp, (struct sockaddr_in *)0);
                if ((*sockp < 0)
-                   || (connect(*sockp, (struct sockaddr *)raddr,
+                   || (_connect(*sockp, (struct sockaddr *)raddr,
                    sizeof(*raddr)) < 0)) {
                        rpc_createerr.cf_stat = RPC_SYSTEMERROR;
                        rpc_createerr.cf_error.re_errno = errno;
@@ -449,7 +451,7 @@ clnttcp_control(cl, request, info)
                break;
        case CLGET_LOCAL_ADDR:
                len = sizeof(struct sockaddr);
-               if (getsockname(ct->ct_sock, (struct sockaddr *)info, &len) <0)
+               if (_getsockname(ct->ct_sock, (struct sockaddr *)info, &len) <0)
                        return(FALSE);
                break;
        case CLGET_RETRY_TIMEOUT:
@@ -515,7 +517,7 @@ readtcp(ct, buf, len)
                /* XXX we know the other bits are still clear */
                FD_SET(ct->ct_sock, fds);
                tv = delta;     /* in case select writes back */
-               r = select(ct->ct_sock+1, fds, NULL, NULL, &tv);
+               r = _select(ct->ct_sock+1, fds, NULL, NULL, &tv);
                save_errno = errno;
 
                gettimeofday(&after, NULL);
index 441fcca..f98fb12 100644 (file)
@@ -29,7 +29,7 @@
  * @(#)clnt_udp.c 1.39 87/08/11 Copyr 1984 Sun Micro
  * @(#)clnt_udp.c      2.2 88/08/01 4.0 RPCSRC
  * $FreeBSD: src/lib/libc/rpc/clnt_udp.c,v 1.15.2.1 2001/06/28 21:44:24 iedowse Exp $
- * $DragonFly: src/lib/libc/rpc/clnt_udp.c,v 1.3 2004/10/25 19:38:01 drhodus Exp $
+ * $DragonFly: src/lib/libc/rpc/clnt_udp.c,v 1.4 2005/01/31 22:29:38 dillon Exp $
  */
 
 /*
@@ -38,6 +38,7 @@
  * Copyright (C) 1984, Sun Microsystems, Inc.
  */
 
+#include "namespace.h"
 #include <stdio.h>
 #include <stdlib.h>
 #include <unistd.h>
@@ -48,6 +49,7 @@
 #include <netdb.h>
 #include <errno.h>
 #include <rpc/pmap_clnt.h>
+#include "un-namespace.h"
 
 /*
  * UDP bases client side rpc operations
@@ -176,7 +178,7 @@ clntudp_bufcreate(raddr, program, version, wait, sockp, sendsz, recvsz)
        if (*sockp < 0) {
                int dontblock = 1;
 
-               *sockp = socket(AF_INET, SOCK_DGRAM, IPPROTO_UDP);
+               *sockp = _socket(AF_INET, SOCK_DGRAM, IPPROTO_UDP);
                if (*sockp < 0) {
                        rpc_createerr.cf_stat = RPC_SYSTEMERROR;
                        rpc_createerr.cf_error.re_errno = errno;
@@ -185,7 +187,7 @@ clntudp_bufcreate(raddr, program, version, wait, sockp, sendsz, recvsz)
                /* attempt to bind to priv port */
                (void)bindresvport(*sockp, (struct sockaddr_in *)0);
                /* the sockets rpc controls are non-blocking */
-               (void)ioctl(*sockp, FIONBIO, (char *) &dontblock);
+               (void)_ioctl(*sockp, FIONBIO, (char *) &dontblock);
                cu->cu_closeit = TRUE;
        } else {
                cu->cu_closeit = FALSE;
@@ -293,7 +295,7 @@ call_again:
        outlen = (int)XDR_GETPOS(xdrs);
 
 send_again:
-       if (sendto(cu->cu_sock, cu->cu_outbuf, outlen, 0, sa, salen)
+       if (_sendto(cu->cu_sock, cu->cu_outbuf, outlen, 0, sa, salen)
            != outlen) {
                cu->cu_error.re_errno = errno;
                if (fds != &readfds)
@@ -323,7 +325,7 @@ send_again:
                /* XXX we know the other bits are still clear */
                FD_SET(cu->cu_sock, fds);
                tv = cu->cu_wait;
-               switch (select(cu->cu_sock+1, fds, NULL, NULL, &tv)) {
+               switch (_select(cu->cu_sock+1, fds, NULL, NULL, &tv)) {
 
                case 0:
                        timeradd(&time_waited, &cu->cu_wait, &tmp1);
@@ -354,7 +356,7 @@ send_again:
 
                do {
                        fromlen = sizeof(struct sockaddr);
-                       inlen = recvfrom(cu->cu_sock, cu->cu_inbuf,
+                       inlen = _recvfrom(cu->cu_sock, cu->cu_inbuf,
                                (int) cu->cu_recvsz, 0,
                                (struct sockaddr *)&from, &fromlen);
                } while (inlen < 0 && errno == EINTR);
@@ -561,7 +563,7 @@ clntudp_control(cl, request, info)
                break;
        case CLGET_LOCAL_ADDR:
                len = sizeof(struct sockaddr);
-               if (getsockname(cu->cu_sock, (struct sockaddr *)info, &len) <0)
+               if (_getsockname(cu->cu_sock, (struct sockaddr *)info, &len) <0)
                        return(FALSE);
                break;
        case CLSET_CONNECT:
index af7a765..6bef9e9 100644 (file)
@@ -29,7 +29,7 @@
  * @(#)clnt_unix.c 1.37 87/10/05 Copyr 1984 Sun Micro
  * @(#)clnt_unix.c     2.2 88/08/01 4.0 RPCSRC
  * $FreeBSD: src/lib/libc/rpc/clnt_unix.c,v 1.5 2000/01/27 23:06:37 jasone Exp $
- * $DragonFly: src/lib/libc/rpc/clnt_unix.c,v 1.3 2004/10/25 19:38:01 drhodus Exp $
+ * $DragonFly: src/lib/libc/rpc/clnt_unix.c,v 1.4 2005/01/31 22:29:38 dillon Exp $
  */
 
 /*
@@ -51,6 +51,7 @@
  * Now go hang yourself.
  */
 
+#include "namespace.h"
 #include <stdio.h>
 #include <stdlib.h>
 #include <unistd.h>
@@ -62,6 +63,7 @@
 #include <netdb.h>
 #include <errno.h>
 #include <rpc/pmap_clnt.h>
+#include "un-namespace.h"
 
 #define MCALL_MSG_SIZE 24
 
@@ -148,12 +150,12 @@ clntunix_create(raddr, prog, vers, sockp, sendsz, recvsz)
         * If no socket given, open one
         */
        if (*sockp < 0) {
-               *sockp = socket(AF_UNIX, SOCK_STREAM, 0);
+               *sockp = _socket(AF_UNIX, SOCK_STREAM, 0);
                len = strlen(raddr->sun_path) + sizeof(raddr->sun_family) +
                        sizeof(raddr->sun_len) + 1;
                raddr->sun_len = len;
                if ((*sockp < 0)
-                   || (connect(*sockp, (struct sockaddr *)raddr, len) < 0)) {
+                   || (_connect(*sockp, (struct sockaddr *)raddr, len) < 0)) {
                        rpc_createerr.cf_stat = RPC_SYSTEMERROR;
                        rpc_createerr.cf_error.re_errno = errno;
                        if (*sockp != -1)
@@ -440,7 +442,7 @@ clntunix_control(cl, request, info)
                break;
        case CLGET_LOCAL_ADDR:
                len = sizeof(struct sockaddr);
-               if (getsockname(ct->ct_sock, (struct sockaddr *)info, &len) <0)
+               if (_getsockname(ct->ct_sock, (struct sockaddr *)info, &len) <0)
                        return(FALSE);
                break;
        case CLGET_RETRY_TIMEOUT:
@@ -472,7 +474,7 @@ clntunix_destroy(h)
 }
 
 /*
- * read() and write() are replaced with recvmsg()/sendmsg() so that
+ * _read() and _write() are replaced with _recvmsg()/_sendmsg() so that
  * we can pass ancillary control data. In this case, the data constists
  * of credential information which the kernel will fill in for us.
  * XXX: This code is specific to FreeBSD and will not work on other
@@ -504,7 +506,7 @@ static int __msgread(sock, buf, cnt)
        msg.msg_controllen = sizeof(struct cmessage);
        msg.msg_flags = 0;
 
-       return(recvmsg(sock, &msg, 0));
+       return(_recvmsg(sock, &msg, 0));
 }
 
 static int __msgwrite(sock, buf, cnt)
@@ -532,7 +534,7 @@ static int __msgwrite(sock, buf, cnt)
        msg.msg_controllen = sizeof(struct cmessage);
        msg.msg_flags = 0;
 
-       return(sendmsg(sock, &msg, 0));
+       return(_sendmsg(sock, &msg, 0));
 }
 
 /*
@@ -570,7 +572,7 @@ readunix(ct, buf, len)
                /* XXX we know the other bits are still clear */
                FD_SET(ct->ct_sock, fds);
                tv = delta;     /* in case select writes back */
-               r = select(ct->ct_sock+1, fds, NULL, NULL, &tv);
+               r = _select(ct->ct_sock+1, fds, NULL, NULL, &tv);
                save_errno = errno;
 
                gettimeofday(&after, NULL);
index fa6d6d6..f4a6bb0 100644 (file)
@@ -29,7 +29,7 @@
  * @(#)get_myaddress.c 1.4 87/08/11 Copyr 1984 Sun Micro
  * @(#)get_myaddress.c 2.1 88/07/29 4.0 RPCSRC
  * $FreeBSD: src/lib/libc/rpc/get_myaddress.c,v 1.18.2.1 2003/01/01 23:55:34 jdp Exp $
- * $DragonFly: src/lib/libc/rpc/get_myaddress.c,v 1.2 2003/06/17 04:26:44 dillon Exp $
+ * $DragonFly: src/lib/libc/rpc/get_myaddress.c,v 1.3 2005/01/31 22:29:38 dillon Exp $
  */
 
 /*
@@ -39,6 +39,7 @@
  * Copyright (C) 1984, Sun Microsystems, Inc.
  */
 
+#include "namespace.h"
 #include <rpc/types.h>
 #include <rpc/xdr.h>
 #include <rpc/pmap_prot.h>
@@ -49,6 +50,7 @@
 #include <sys/ioctl.h>
 #include <netinet/in.h>
 #include <arpa/inet.h>
+#include "un-namespace.h"
 
 /*
  * don't use gethostbyname, which would invoke yellow pages
@@ -66,12 +68,12 @@ get_myaddress(addr)
        struct ifreq ifreq, *ifr, *end;
        int loopback = 0, gotit = 0;
 
-       if ((s = socket(AF_INET, SOCK_DGRAM, 0)) < 0) {
+       if ((s = _socket(AF_INET, SOCK_DGRAM, 0)) < 0) {
                return(-1);
        }
        ifc.ifc_len = sizeof (buf);
        ifc.ifc_buf = buf;
-       if (ioctl(s, SIOCGIFCONF, (char *)&ifc) < 0) {
+       if (_ioctl(s, SIOCGIFCONF, (char *)&ifc) < 0) {
                _close(s);
                return(-1);
        }
@@ -81,7 +83,7 @@ again:
 
        while (ifr < end) {
                memcpy(&ifreq, ifr, sizeof(ifreq));
-               if (ioctl(s, SIOCGIFFLAGS, (char *)&ifreq) < 0) {
+               if (_ioctl(s, SIOCGIFFLAGS, (char *)&ifreq) < 0) {
                        _close(s);
                        return(-1);
                }
index 6a310e9..49b36df 100644 (file)
@@ -30,7 +30,7 @@
  * Copyright (c) 1986-1991 by Sun Microsystems Inc. 
  *
  * $FreeBSD: src/lib/libc/rpc/key_call.c,v 1.3 2000/01/27 23:06:39 jasone Exp $
- * $DragonFly: src/lib/libc/rpc/key_call.c,v 1.4 2004/10/25 19:38:01 drhodus Exp $
+ * $DragonFly: src/lib/libc/rpc/key_call.c,v 1.5 2005/01/31 22:29:38 dillon Exp $
  */
 
 #ident "@(#)key_call.c 1.25    94/04/24 SMI"
@@ -44,6 +44,7 @@
  * gendeskey(deskey) - generate a secure des key
  */
 
+#include "namespace.h"
 #include <stdio.h>
 #include <stdlib.h>
 #include <unistd.h>
@@ -58,6 +59,7 @@
 #include <signal.h>
 #include <sys/wait.h>
 #include <sys/fcntl.h>
+#include "un-namespace.h"
 
 
 #define        KEY_TIMEOUT     5       /* per-try timeout in seconds */
@@ -323,7 +325,7 @@ int vers;
        if (kcp->client != NULL) {
                /* if other side closed socket, build handle again */
                clnt_control(kcp->client, CLGET_FD, (char *)&fd);
-               if (getpeername(fd,(struct sockaddr *)&name,&namelen) == -1) {
+               if (_getpeername(fd,(struct sockaddr *)&name,&namelen) == -1) {
                        auth_destroy(kcp->client->cl_auth);
                        clnt_destroy(kcp->client);
                        kcp->client = NULL;
index 1015364..fad87fa 100644 (file)
@@ -29,7 +29,7 @@
  * @(#)pmap_clnt.c 1.37 87/08/11 Copyr 1984 Sun Micro
  * @(#)pmap_clnt.c     2.2 88/08/01 4.0 RPCSRC
  * $FreeBSD: src/lib/libc/rpc/pmap_clnt.c,v 1.11 2000/01/27 23:06:39 jasone Exp $
- * $DragonFly: src/lib/libc/rpc/pmap_clnt.c,v 1.3 2004/10/25 19:38:01 drhodus Exp $
+ * $DragonFly: src/lib/libc/rpc/pmap_clnt.c,v 1.4 2005/01/31 22:29:38 dillon Exp $
  */
 
 /*
@@ -39,6 +39,7 @@
  * Copyright (C) 1984, Sun Microsystems, Inc.
  */
 
+#include "namespace.h"
 #include <sys/types.h>
 #include <sys/stat.h>
 #include <unistd.h>
@@ -46,6 +47,7 @@
 #include <rpc/pmap_prot.h>
 #include <rpc/pmap_clnt.h>
 #include <netinet/in.h>
+#include "un-namespace.h"
 
 static struct timeval timeout = { 5, 0 };
 static struct timeval tottimeout = { 60, 0 };
index a086478..183e4f7 100644 (file)
@@ -29,7 +29,7 @@
  * @(#)pmap_getmaps.c 1.10 87/08/11 Copyr 1984 Sun Micro
  * @(#)pmap_getmaps.c  2.2 88/08/01 4.0 RPCSRC
  * $FreeBSD: src/lib/libc/rpc/pmap_getmaps.c,v 1.11 2000/01/27 23:06:39 jasone Exp $
- * $DragonFly: src/lib/libc/rpc/pmap_getmaps.c,v 1.3 2004/10/25 19:38:01 drhodus Exp $
+ * $DragonFly: src/lib/libc/rpc/pmap_getmaps.c,v 1.4 2005/01/31 22:29:38 dillon Exp $
  */
 
 /*
@@ -40,6 +40,7 @@
  * Copyright (C) 1984, Sun Microsystems, Inc.
  */
 
+#include "namespace.h"
 #include <rpc/rpc.h>
 #include <rpc/pmap_prot.h>
 #include <rpc/pmap_clnt.h>
@@ -50,6 +51,8 @@
 #include <errno.h>
 #include <net/if.h>
 #include <sys/ioctl.h>
+#include "un-namespace.h"
+
 #define NAMELEN 255
 #define MAX_BROADCAST_SIZE 1400
 
index 4d1a777..2cbbb4b 100644 (file)
@@ -29,7 +29,7 @@
  * @(#)pmap_getport.c 1.9 87/08/11 Copyr 1984 Sun Micro
  * @(#)pmap_getport.c  2.2 88/08/01 4.0 RPCSRC
  * $FreeBSD: src/lib/libc/rpc/pmap_getport.c,v 1.10 2000/01/27 23:06:40 jasone Exp $
- * $DragonFly: src/lib/libc/rpc/pmap_getport.c,v 1.4 2004/10/25 19:38:01 drhodus Exp $
+ * $DragonFly: src/lib/libc/rpc/pmap_getport.c,v 1.5 2005/01/31 22:29:38 dillon Exp $
  */
 
 /*
  * Copyright (C) 1984, Sun Microsystems, Inc.
  */
 
+#include "namespace.h"
 #include <rpc/rpc.h>
 #include <rpc/pmap_prot.h>
 #include <rpc/pmap_clnt.h>
 #include <sys/socket.h>
 #include <net/if.h>
 #include <unistd.h>
+#include "un-namespace.h"
 
 static struct timeval timeout = { 5, 0 };
 static struct timeval tottimeout = { 60, 0 };
index c852cd5..2ab850a 100644 (file)
@@ -29,7 +29,7 @@
  * @(#)pmap_rmt.c 1.21 87/08/27 Copyr 1984 Sun Micro
  * @(#)pmap_rmt.c      2.2 88/08/01 4.0 RPCSRC
  * $FreeBSD: src/lib/libc/rpc/pmap_rmt.c,v 1.16.2.1 2002/06/30 23:34:58 iedowse Exp $
- * $DragonFly: src/lib/libc/rpc/pmap_rmt.c,v 1.3 2004/10/25 19:38:02 drhodus Exp $
+ * $DragonFly: src/lib/libc/rpc/pmap_rmt.c,v 1.4 2005/01/31 22:29:38 dillon Exp $
  */
 
 /*
@@ -40,6 +40,7 @@
  * Copyright (C) 1984, Sun Microsystems, Inc.
  */
 
+#include "namespace.h"
 #include <rpc/rpc.h>
 #include <rpc/pmap_prot.h>
 #include <rpc/pmap_clnt.h>
@@ -53,6 +54,8 @@
 #include <net/if.h>
 #include <sys/ioctl.h>
 #include <arpa/inet.h>
+#include "un-namespace.h"
+
 #define MAX_BROADCAST_SIZE 1400
 
 static struct timeval timeout = { 3, 0 };
@@ -176,7 +179,7 @@ getbroadcastnets(addrs, sock, buf)
 
         ifc.ifc_len = UDPMSGSIZE;
         ifc.ifc_buf = buf;
-        if (ioctl(sock, SIOCGIFCONF, (char *)&ifc) < 0) {
+        if (_ioctl(sock, SIOCGIFCONF, (char *)&ifc) < 0) {
                 perror("broadcast: ioctl (get interface configuration)");
                 return (0);
         }
@@ -189,7 +192,7 @@ getbroadcastnets(addrs, sock, buf)
                if (ifr->ifr_addr.sa_family != AF_INET)
                        continue;
                memcpy(&ifreq, ifr, sizeof(ifreq));
-                if (ioctl(sock, SIOCGIFFLAGS, (char *)&ifreq) < 0) {
+                if (_ioctl(sock, SIOCGIFFLAGS, (char *)&ifreq) < 0) {
                         perror("broadcast: ioctl (get interface flags)");
                         continue;
                 }
@@ -197,7 +200,7 @@ getbroadcastnets(addrs, sock, buf)
                    (ifreq.ifr_flags & IFF_UP)) {
                        sin = (struct sockaddr_in *)&ifr->ifr_addr;
 #ifdef SIOCGIFBRDADDR   /* 4.3BSD */
-                       if (ioctl(sock, SIOCGIFBRDADDR, (char *)&ifreq) < 0) {
+                       if (_ioctl(sock, SIOCGIFBRDADDR, (char *)&ifreq) < 0) {
                                addr =
                                    inet_makeaddr(inet_netof(sin->sin_addr),
                                    INADDR_ANY);
@@ -262,13 +265,13 @@ clnt_broadcast(prog, vers, proc, xargs, argsp, xresults, resultsp, eachresult)
         * initialization: create a socket, a broadcast address, and
         * preserialize the arguments into a send buffer.
         */
-       if ((sock = socket(AF_INET, SOCK_DGRAM, IPPROTO_UDP)) < 0) {
+       if ((sock = _socket(AF_INET, SOCK_DGRAM, IPPROTO_UDP)) < 0) {
                perror("Cannot create socket for broadcast rpc");
                stat = RPC_CANTSEND;
                goto done_broad;
        }
 #ifdef SO_BROADCAST
-       if (setsockopt(sock, SOL_SOCKET, SO_BROADCAST, &on, sizeof (on)) < 0) {
+       if (_setsockopt(sock, SOL_SOCKET, SO_BROADCAST, &on, sizeof (on)) < 0) {
                perror("Cannot set socket option SO_BROADCAST");
                stat = RPC_CANTSEND;
                goto done_broad;
@@ -332,7 +335,7 @@ clnt_broadcast(prog, vers, proc, xargs, argsp, xresults, resultsp, eachresult)
                int success = 0;
                for (i = 0; i < nets; i++) {
                        baddr.sin_addr = addrs[i];
-                       if (sendto(sock, outbuf, outlen, 0,
+                       if (_sendto(sock, outbuf, outlen, 0,
                                (struct sockaddr *)&baddr,
                                sizeof (struct sockaddr)) == outlen) {
                                success++;
@@ -353,8 +356,8 @@ clnt_broadcast(prog, vers, proc, xargs, argsp, xresults, resultsp, eachresult)
                msg.acpted_rply.ar_results.proc = xdr_rmtcallres;
                /* XXX we know the other bits are still clear */
                FD_SET(sock, fds);
-               tv = t;         /* for select() that copies back */
-               switch (select(sock + 1, fds, NULL, NULL, &tv)) {
+               tv = t;         /* for _select() that copies back */
+               switch (_select(sock + 1, fds, NULL, NULL, &tv)) {
 
                case 0:  /* timed out */
                        stat = RPC_TIMEDOUT;
@@ -370,7 +373,7 @@ clnt_broadcast(prog, vers, proc, xargs, argsp, xresults, resultsp, eachresult)
                }  /* end of select results switch */
        try_again:
                fromlen = sizeof(struct sockaddr);
-               inlen = recvfrom(sock, inbuf, UDPMSGSIZE, 0,
+               inlen = _recvfrom(sock, inbuf, UDPMSGSIZE, 0,
                        (struct sockaddr *)&raddr, &fromlen);
                if (inlen < 0) {
                        if (errno == EINTR)
index be33f5c..4f28d01 100644 (file)
@@ -29,7 +29,7 @@
  * @(#)rpc_dtablesize.c 1.2 87/08/11 Copyr 1987 Sun Micro
  * @(#)rpc_dtablesize.c        2.1 88/07/29 4.0 RPCSRC
  * $FreeBSD: src/lib/libc/rpc/rpc_dtablesize.c,v 1.10 1999/08/28 00:00:45 peter Exp $
- * $DragonFly: src/lib/libc/rpc/rpc_dtablesize.c,v 1.2 2003/06/17 04:26:45 dillon Exp $
+ * $DragonFly: src/lib/libc/rpc/rpc_dtablesize.c,v 1.3 2005/01/31 22:29:38 dillon Exp $
  */
 
 #include <sys/types.h>
@@ -44,7 +44,7 @@
  * descriptors be greater than FD_SETSIZE (which us 256 by default).
  *
  * Since old programs tend to use this call to determine the first arg
- * for select(), having this return > FD_SETSIZE is a Bad Idea(TM)!
+ * for _select(), having this return > FD_SETSIZE is a Bad Idea(TM)!
  */
 int
 _rpc_dtablesize(void)
index c47879a..831888b 100644 (file)
@@ -28,7 +28,7 @@
  *
  * @(#)rtime.c 2.2 88/08/10 4.0 RPCSRC; from 1.8 88/02/08 SMI
  * $FreeBSD: src/lib/libc/rpc/rtime.c,v 1.5 2000/01/27 23:06:41 jasone Exp $
- * $DragonFly: src/lib/libc/rpc/rtime.c,v 1.3 2003/11/12 20:21:25 eirikn Exp $
+ * $DragonFly: src/lib/libc/rpc/rtime.c,v 1.4 2005/01/31 22:29:38 dillon Exp $
  */
 
 /*
@@ -45,6 +45,7 @@
  * subtract seconds before Jan 1, 1970 to get
  * what unix uses.
  */
+#include "namespace.h"
 #include <stdlib.h>
 #include <string.h>
 #include <unistd.h>
@@ -55,6 +56,7 @@
 #include <netinet/in.h>
 #include <stdio.h>
 #include <netdb.h>
+#include "un-namespace.h"
 
 extern int _rpc_dtablesize ( void );
 
@@ -83,7 +85,7 @@ rtime(addrp, timep, timeout)
        } else {
                type = SOCK_DGRAM;
        }
-       s = socket(AF_INET, type, 0);
+       s = _socket(AF_INET, type, 0);
        if (s < 0) {
                return(-1);
        }
@@ -97,7 +99,7 @@ rtime(addrp, timep, timeout)
        addrp->sin_port = serv->s_port;
 
        if (type == SOCK_DGRAM) {
-               res = sendto(s, (char *)&thetime, sizeof(thetime), 0, 
+               res = _sendto(s, (char *)&thetime, sizeof(thetime), 0, 
                             (struct sockaddr *)addrp, sizeof(*addrp));
                if (res < 0) {
                        do_close(s);
@@ -106,7 +108,7 @@ rtime(addrp, timep, timeout)
                do {
                        FD_ZERO(&readfds);
                        FD_SET(s, &readfds);
-                       res = select(_rpc_dtablesize(), &readfds,
+                       res = _select(_rpc_dtablesize(), &readfds,
                                     (fd_set *)NULL, (fd_set *)NULL, timeout);
                } while (res < 0 && errno == EINTR);
                if (res <= 0) {
@@ -117,14 +119,14 @@ rtime(addrp, timep, timeout)
                        return(-1);     
                }
                fromlen = sizeof(from);
-               res = recvfrom(s, (char *)&thetime, sizeof(thetime), 0, 
+               res = _recvfrom(s, (char *)&thetime, sizeof(thetime), 0, 
                               (struct sockaddr *)&from, &fromlen);
                do_close(s);
                if (res < 0) {
                        return(-1);     
                }
        } else {
-               if (connect(s, (struct sockaddr *)addrp, sizeof(*addrp)) < 0) {
+               if (_connect(s, (struct sockaddr *)addrp, sizeof(*addrp)) < 0) {
                        do_close(s);
                        return(-1);
                }
index 2fd6ea1..b1d699f 100644 (file)
@@ -4,7 +4,7 @@
  *
  * @(#)svcauth_des.c   2.3 89/07/11 4.0 RPCSRC; from 1.15 88/02/08 SMI
  * $FreeBSD: src/lib/libc/rpc/svc_auth_des.c,v 1.3 1999/08/28 00:00:48 peter Exp $
- * $DragonFly: src/lib/libc/rpc/svc_auth_des.c,v 1.4 2004/10/25 19:38:02 drhodus Exp $
+ * $DragonFly: src/lib/libc/rpc/svc_auth_des.c,v 1.5 2005/01/31 22:29:38 dillon Exp $
  */
 
 /*
@@ -52,6 +52,7 @@
 
 #include <string.h>
 #include <stdlib.h>
+#include <stdio.h>
 #include <unistd.h>
 #include <rpc/des_crypt.h>
 #include <sys/param.h>
index dce640d..ce46973 100644 (file)
  * @(#)svc_run.c 1.1 87/10/13 Copyr 1984 Sun Micro
  * @(#)svc_run.c       2.1 88/07/29 4.0 RPCSRC
  * $FreeBSD: src/lib/libc/rpc/svc_run.c,v 1.10 1999/08/28 00:00:49 peter Exp $
- * $DragonFly: src/lib/libc/rpc/svc_run.c,v 1.2 2003/06/17 04:26:45 dillon Exp $
+ * $DragonFly: src/lib/libc/rpc/svc_run.c,v 1.3 2005/01/31 22:29:38 dillon Exp $
  */
 
 /*
  * This is the rpc server side idle loop
  * Wait for input, call server program.
  */
+#include "namespace.h"
 #include <rpc/rpc.h>
 #include <stdio.h>
 #include <sys/errno.h>
@@ -44,6 +45,7 @@
 #include <unistd.h>
 #include <stdlib.h>
 #include <string.h>
+#include "un-namespace.h"
 
 extern int __svc_fdsetsize;
 extern fd_set *__svc_fdset;
@@ -61,7 +63,7 @@ svc_run()
                        memcpy(fds, __svc_fdset, bytes);
                } else
                        fds = NULL;
-               switch (select(svc_maxfd + 1, fds, NULL, NULL,
+               switch (_select(svc_maxfd + 1, fds, NULL, NULL,
                                (struct timeval *)0)) {
                case -1:
                        if (errno == EINTR) {
@@ -78,7 +80,7 @@ svc_run()
                                free(fds);
                        continue;
                default:
-                       /* if fds == NULL, select() can't return a result */
+                       /* if fds == NULL, _select() can't return a result */
                        svc_getreqset2(fds, svc_maxfd + 1);
                        free(fds);
                }
index bcc4831..9688521 100644 (file)
@@ -29,7 +29,7 @@
  * @(#)svc_tcp.c 1.21 87/08/11 Copyr 1984 Sun Micro
  * @(#)svc_tcp.c       2.2 88/08/01 4.0 RPCSRC
  * $FreeBSD: src/lib/libc/rpc/svc_tcp.c,v 1.18.2.3 2001/09/05 22:29:23 dec Exp $
- * $DragonFly: src/lib/libc/rpc/svc_tcp.c,v 1.3 2004/10/25 19:38:02 drhodus Exp $
+ * $DragonFly: src/lib/libc/rpc/svc_tcp.c,v 1.4 2005/01/31 22:29:38 dillon Exp $
  */
 
 /*
@@ -42,6 +42,7 @@
  * and a record/tcp stream.
  */
 
+#include "namespace.h"
 #include <stdio.h>
 #include <stdlib.h>
 #include <unistd.h>
@@ -50,6 +51,7 @@
 #include <sys/socket.h>
 #include <sys/ioctl.h>
 #include <errno.h>
+#include "un-namespace.h"
 
 /*
  * Ops vector for TCP/IP based rpc service handle
@@ -134,14 +136,14 @@ svctcp_create(sock, sendsize, recvsize)
        int on;
 
        if (sock == RPC_ANYSOCK) {
-               if ((sock = socket(AF_INET, SOCK_STREAM, IPPROTO_TCP)) < 0) {
+               if ((sock = _socket(AF_INET, SOCK_STREAM, IPPROTO_TCP)) < 0) {
                        perror("svctcp_.c - tcp socket creation problem");
                        return ((SVCXPRT *)NULL);
                }
                madesock = TRUE;
        }
        on = 1;
-       if (ioctl(sock, FIONBIO, &on) < 0) {
+       if (_ioctl(sock, FIONBIO, &on) < 0) {
                perror("svc_tcp.c - cannot turn on non-blocking mode");
                if (madesock)
                       (void)_close(sock);
@@ -152,10 +154,10 @@ svctcp_create(sock, sendsize, recvsize)
        addr.sin_family = AF_INET;
        if (bindresvport(sock, &addr)) {
                addr.sin_port = 0;
-               (void)bind(sock, (struct sockaddr *)&addr, len);
+               (void)_bind(sock, (struct sockaddr *)&addr, len);
        }
-       if ((getsockname(sock, (struct sockaddr *)&addr, &len) != 0)  ||
-           (listen(sock, 2) != 0)) {
+       if ((_getsockname(sock, (struct sockaddr *)&addr, &len) != 0)  ||
+           (_listen(sock, 2) != 0)) {
                perror("svctcp_.c - cannot getsockname or listen");
                if (madesock)
                       (void)_close(sock);
@@ -246,7 +248,7 @@ rendezvous_request(xprt)
        r = (struct tcp_rendezvous *)xprt->xp_p1;
     again:
        len = sizeof(struct sockaddr_in);
-       if ((sock = accept(xprt->xp_sock, (struct sockaddr *)&addr,
+       if ((sock = _accept(xprt->xp_sock, (struct sockaddr *)&addr,
            &len)) < 0) {
                if (errno == EINTR)
                        goto again;
@@ -263,7 +265,7 @@ rendezvous_request(xprt)
         * The listening socket is in FIONBIO mode and we inherit it.
         */
        off = 0;
-       if (ioctl(sock, FIONBIO, &off) < 0) {
+       if (_ioctl(sock, FIONBIO, &off) < 0) {
                _close(sock);
                return (FALSE);
        }
@@ -316,7 +318,7 @@ static struct timeval wait_per_try = { 35, 0 };
  * Note: we have to be careful here not to allow ourselves to become
  * blocked too long in this routine. While we're waiting for data from one
  * client, another client may be trying to connect. To avoid this situation,
- * some code from svc_run() is transplanted here: the select() loop checks
+ * some code from svc_run() is transplanted here: the _select() loop checks
  * all RPC descriptors including the one we want and calls svc_getreqset2()
  * to handle new requests if any are detected.
  */
@@ -348,8 +350,8 @@ readtcp(xprt, buf, len)
 
                /* XXX we know the other bits are still clear */
                FD_SET(sock, fds);
-               tv = delta;     /* in case select() implements writeback */
-               switch (select(svc_maxfd + 1, fds, NULL, NULL, &tv)) {
+               tv = delta;     /* in case _select() implements writeback */
+               switch (_select(svc_maxfd + 1, fds, NULL, NULL, &tv)) {
                case -1:
                        memset(fds, 0, bytes);
                        if (errno != EINTR)
index 33d3d4e..81a7a20 100644 (file)
@@ -29,7 +29,7 @@
  * @(#)svc_udp.c 1.24 87/08/11 Copyr 1984 Sun Micro
  * @(#)svc_udp.c       2.2 88/07/29 4.0 RPCSRC
  * $FreeBSD: src/lib/libc/rpc/svc_udp.c,v 1.13 2000/01/27 23:06:41 jasone Exp $
- * $DragonFly: src/lib/libc/rpc/svc_udp.c,v 1.4 2004/10/25 19:38:02 drhodus Exp $
+ * $DragonFly: src/lib/libc/rpc/svc_udp.c,v 1.5 2005/01/31 22:29:38 dillon Exp $
  */
 
 /*
@@ -40,6 +40,7 @@
  * Copyright (C) 1984, Sun Microsystems, Inc.
  */
 
+#include "namespace.h"
 #include <stdio.h>
 #include <stdlib.h>
 #include <unistd.h>
@@ -47,6 +48,7 @@
 #include <rpc/rpc.h>
 #include <sys/socket.h>
 #include <errno.h>
+#include "un-namespace.h"
 
 #define rpc_buffer(xprt) ((xprt)->xp_p1)
 #define MAX(a, b)     ((a > b) ? a : b)
@@ -106,7 +108,7 @@ svcudp_bufcreate(sock, sendsz, recvsz)
        int len = sizeof(struct sockaddr_in);
 
        if (sock == RPC_ANYSOCK) {
-               if ((sock = socket(AF_INET, SOCK_DGRAM, IPPROTO_UDP)) < 0) {
+               if ((sock = _socket(AF_INET, SOCK_DGRAM, IPPROTO_UDP)) < 0) {
                        perror("svcudp_create: socket creation problem");
                        return ((SVCXPRT *)NULL);
                }
@@ -117,9 +119,9 @@ svcudp_bufcreate(sock, sendsz, recvsz)
        addr.sin_family = AF_INET;
        if (bindresvport(sock, &addr)) {
                addr.sin_port = 0;
-               (void)bind(sock, (struct sockaddr *)&addr, len);
+               (void)_bind(sock, (struct sockaddr *)&addr, len);
        }
-       if (getsockname(sock, (struct sockaddr *)&addr, &len) != 0) {
+       if (_getsockname(sock, (struct sockaddr *)&addr, &len) != 0) {
                perror("svcudp_create - cannot getsockname");
                if (madesock)
                        (void)_close(sock);
@@ -181,7 +183,7 @@ svcudp_recv(xprt, msg)
 
     again:
        xprt->xp_addrlen = sizeof(struct sockaddr_in);
-       rlen = recvfrom(xprt->xp_sock, rpc_buffer(xprt), (int) su->su_iosz,
+       rlen = _recvfrom(xprt->xp_sock, rpc_buffer(xprt), (int) su->su_iosz,
            0, (struct sockaddr *)&(xprt->xp_raddr), &(xprt->xp_addrlen));
        if (rlen == -1 && errno == EINTR)
                goto again;
@@ -194,7 +196,7 @@ svcudp_recv(xprt, msg)
        su->su_xid = msg->rm_xid;
        if (su->su_cache != NULL) {
                if (cache_get(xprt, msg, &reply, &replylen)) {
-                       (void) sendto(xprt->xp_sock, reply, (int) replylen, 0,
+                       (void) _sendto(xprt->xp_sock, reply, (int) replylen, 0,
                          (struct sockaddr *) &xprt->xp_raddr, xprt->xp_addrlen);
                        return (TRUE);
                }
@@ -217,7 +219,7 @@ svcudp_reply(xprt, msg)
        msg->rm_xid = su->su_xid;
        if (xdr_replymsg(xdrs, msg)) {
                slen = (int)XDR_GETPOS(xdrs);
-               if (sendto(xprt->xp_sock, rpc_buffer(xprt), slen, 0,
+               if (_sendto(xprt->xp_sock, rpc_buffer(xprt), slen, 0,
                    (struct sockaddr *)&(xprt->xp_raddr), xprt->xp_addrlen)
                    == slen) {
                        stat = TRUE;
index 8cb630a..13acbc9 100644 (file)
@@ -29,7 +29,7 @@
  * @(#)svc_unix.c 1.21 87/08/11 Copyr 1984 Sun Micro
  * @(#)svc_unix.c      2.2 88/08/01 4.0 RPCSRC
  * $FreeBSD: src/lib/libc/rpc/svc_unix.c,v 1.7.2.2 2001/09/05 22:29:23 dec Exp $
- * $DragonFly: src/lib/libc/rpc/svc_unix.c,v 1.3 2004/10/25 19:38:02 drhodus Exp $
+ * $DragonFly: src/lib/libc/rpc/svc_unix.c,v 1.4 2005/01/31 22:29:38 dillon Exp $
  */
 
 /*
@@ -42,6 +42,7 @@
  * and a record/unix stream.
  */
 
+#include "namespace.h"
 #include <stdio.h>
 #include <stdlib.h>
 #include <unistd.h>
@@ -51,6 +52,7 @@
 #include <sys/un.h>
 #include <sys/uio.h>
 #include <errno.h>
+#include "un-namespace.h"
 
 /*
  * Ops vector for AF_UNIX based rpc service handle
@@ -129,7 +131,7 @@ static int __msgread(sock, buf, cnt)
        msg.msg_controllen = sizeof(struct cmessage);
        msg.msg_flags = 0;
 
-       return(recvmsg(sock, &msg, 0));
+       return(_recvmsg(sock, &msg, 0));
 }
 
 static int __msgwrite(sock, buf, cnt)
@@ -156,7 +158,7 @@ static int __msgwrite(sock, buf, cnt)
        msg.msg_controllen = sizeof(struct cmessage);
        msg.msg_flags = 0;
 
-       return(sendmsg(sock, &msg, 0));
+       return(_sendmsg(sock, &msg, 0));
 }
 
 /*
@@ -193,7 +195,7 @@ svcunix_create(sock, sendsize, recvsize, path)
        int len = sizeof(struct sockaddr_un);
 
        if (sock == RPC_ANYSOCK) {
-               if ((sock = socket(AF_UNIX, SOCK_STREAM, 0)) < 0) {
+               if ((sock = _socket(AF_UNIX, SOCK_STREAM, 0)) < 0) {
                        perror("svc_unix.c - AF_UNIX socket creation problem");
                        return ((SVCXPRT *)NULL);
                }
@@ -206,10 +208,10 @@ svcunix_create(sock, sendsize, recvsize, path)
                sizeof(addr.sun_len) + 1;
        addr.sun_len = len;
 
-       bind(sock, (struct sockaddr *)&addr, len);
+       _bind(sock, (struct sockaddr *)&addr, len);
 
-       if ((getsockname(sock, (struct sockaddr *)&addr, &len) != 0)  ||
-           (listen(sock, 2) != 0)) {
+       if ((_getsockname(sock, (struct sockaddr *)&addr, &len) != 0)  ||
+           (_listen(sock, 2) != 0)) {
                perror("svc_unix.c - cannot getsockname or listen");
                if (madesock)
                       (void)_close(sock);
@@ -300,7 +302,7 @@ rendezvous_request(xprt)
        r = (struct unix_rendezvous *)xprt->xp_p1;
     again:
        len = sizeof(struct sockaddr_in);
-       if ((sock = accept(xprt->xp_sock, (struct sockaddr *)&addr,
+       if ((sock = _accept(xprt->xp_sock, (struct sockaddr *)&addr,
            &len)) < 0) {
                if (errno == EINTR)
                        goto again;
@@ -358,7 +360,7 @@ static struct timeval wait_per_try = { 35, 0 };
  * Note: we have to be careful here not to allow ourselves to become
  * blocked too long in this routine. While we're waiting for data from one
  * client, another client may be trying to connect. To avoid this situation,
- * some code from svc_run() is transplanted here: the select() loop checks
+ * some code from svc_run() is transplanted here: the _select() loop checks
  * all RPC descriptors including the one we want and calls svc_getreqset2()
  * to handle new requests if any are detected.
  */
@@ -390,8 +392,8 @@ readunix(xprt, buf, len)
 
                /* XXX we know the other bits are still clear */
                FD_SET(sock, fds);
-               tv = delta;     /* in case select() implements writeback */
-               switch (select(svc_maxfd + 1, fds, NULL, NULL, &tv)) {
+               tv = delta;     /* in case _select() implements writeback */
+               switch (_select(svc_maxfd + 1, fds, NULL, NULL, &tv)) {
                case -1:
                        memset(fds, 0, bytes);
                        if (errno != EINTR)
index 7793d74..83ac6fd 100644 (file)
  * SUCH DAMAGE.
  *
  * $FreeBSD: src/lib/libc/stdio/_flock_stub.c,v 1.3 1999/08/28 00:00:55 peter Exp $
- * $DragonFly: src/lib/libc/stdio/_flock_stub.c,v 1.3 2004/01/23 11:30:27 joerg Exp $
+ * $DragonFly: src/lib/libc/stdio/_flock_stub.c,v 1.4 2005/01/31 22:29:40 dillon Exp $
  *
  */
 
 #include <stdio.h>
 
 /* Don't build this in libc_r, just libc: */
-#ifndef        _THREAD_SAFE
 /*
  * Declare weak references in case the application is not linked
  * with libpthread.
  */
 #pragma weak flockfile=_flockfile_stub
+#pragma weak _flockfile=_flockfile_stub
 #pragma weak _flockfile_debug=_flockfile_debug_stub
 #pragma weak ftrylockfile=_ftrylockfile_stub
+#pragma weak _ftrylockfile=_ftrylockfile_stub
 #pragma weak funlockfile=_funlockfile_stub
+#pragma weak _funlockfile=_funlockfile_stub
 
 void   flockfile(FILE *);
 void   _flockfile_debug(FILE *, char *, int);
@@ -84,4 +86,3 @@ void
 _funlockfile_stub(FILE *fp)
 {
 }
-#endif
index aecc8a9..9d6b509 100644 (file)
  *
  * @(#)clrerr.c        8.1 (Berkeley) 6/4/93
  * $FreeBSD: src/lib/libc/stdio/clrerr.c,v 1.7 1999/08/28 00:00:55 peter Exp $
- * $DragonFly: src/lib/libc/stdio/clrerr.c,v 1.3 2004/06/07 20:35:41 hmp Exp $
+ * $DragonFly: src/lib/libc/stdio/clrerr.c,v 1.4 2005/01/31 22:29:40 dillon Exp $
  */
 
+#include "namespace.h"
 #include <stdio.h>
-#undef clearerr
+#include "un-namespace.h"
 #include "libc_private.h"
+#undef clearerr
 
 void
 clearerr(FILE *fp)
index dabe772..e770b46 100644 (file)
  *
  * @(#)fclose.c        8.1 (Berkeley) 6/4/93
  * $FreeBSD: src/lib/libc/stdio/fclose.c,v 1.8 1999/11/21 22:34:57 dt Exp $
- * $DragonFly: src/lib/libc/stdio/fclose.c,v 1.7 2004/06/09 19:40:59 hmp Exp $
+ * $DragonFly: src/lib/libc/stdio/fclose.c,v 1.8 2005/01/31 22:29:40 dillon Exp $
  */
 
+#include "namespace.h"
 #include <errno.h>
 #include <stdio.h>
 #include <stdlib.h>
-#include "local.h"
+#include "un-namespace.h"
 #include "libc_private.h"
+#include "local.h"
 
 int
 fclose(FILE *fp)
@@ -74,6 +76,12 @@ fclose(FILE *fp)
        FUNLOCKFILE(fp);
        fp->_file = -1;
        fp->_r = fp->_w = 0;    /* Mess up if reaccessed. */
+#if 0
+       if (fp->_lock != NULL) {
+               _pthread_mutex_destroy((pthread_mutex_t *)&fp->_lock);
+               fp->_lock = NULL;
+       }
+#endif
        fp->_flags = 0;         /* Release this FILE for reuse. */
        return (r);
 }
index d452811..c72fc8d 100644 (file)
  * SUCH DAMAGE.
  *
  * $FreeBSD: src/lib/libc/stdio/fdopen.c,v 1.3 2000/01/27 23:06:44 jasone Exp $
- * $DragonFly: src/lib/libc/stdio/fdopen.c,v 1.4 2004/06/07 20:35:41 hmp Exp $
+ * $DragonFly: src/lib/libc/stdio/fdopen.c,v 1.5 2005/01/31 22:29:40 dillon Exp $
  *
  * @(#)fdopen.c        8.1 (Berkeley) 6/4/93
  */
 
+#include "namespace.h"
 #include <sys/types.h>
 #include <fcntl.h>
 #include <unistd.h>
 #include <stdio.h>
 #include <errno.h>
+#include "un-namespace.h"
 #include "local.h"
 
 FILE *
index 9c476c3..f7356e6 100644 (file)
  *
  * @(#)fflush.c        8.1 (Berkeley) 6/4/93
  * $FreeBSD: src/lib/libc/stdio/fflush.c,v 1.7 1999/08/28 00:00:58 peter Exp $
- * $DragonFly: src/lib/libc/stdio/fflush.c,v 1.4 2004/06/07 20:35:41 hmp Exp $
+ * $DragonFly: src/lib/libc/stdio/fflush.c,v 1.5 2005/01/31 22:29:40 dillon Exp $
  */
 
+#include "namespace.h"
 #include <errno.h>
 #include <stdio.h>
-#include "local.h"
+#include "un-namespace.h"
 #include "libc_private.h"
+#include "local.h"
 
-/* Flush a single file, or (if fp is NULL) all files.  */
+/*
+ * Flush a single file, or (if fp is NULL) all files.
+ * MT-safe version
+ */
 int
 fflush(FILE *fp)
 {
@@ -55,13 +60,32 @@ fflush(FILE *fp)
        if ((fp->_flags & (__SWR | __SRW)) == 0) {
                errno = EBADF;
                retval = EOF;
-       } else {
+       } else 
                retval = __sflush(fp);
-       }
+       
        FUNLOCKFILE(fp);
        return (retval);
 }
 
+/*
+ * Flush a single file, or (if fp is NULL) all files.
+ * Non-MT-safe version
+ */
+int
+__fflush(FILE *fp)
+{
+       int retval;
+
+       if (fp == NULL)
+               return (_fwalk(__sflush));
+       if ((fp->_flags & (__SWR | __SRW)) == 0) {
+               errno = EBADF;
+               retval = EOF;
+       } else
+               retval = __sflush(fp);
+       return (retval);
+}
+
 int
 __sflush(FILE *fp)
 {
index 6dfd970..368982c 100644 (file)
  *
  * @(#)fgetc.c 8.1 (Berkeley) 6/4/93
  * $FreeBSD: src/lib/libc/stdio/fgetc.c,v 1.7 1999/08/28 00:00:58 peter Exp $
- * $DragonFly: src/lib/libc/stdio/fgetc.c,v 1.3 2004/06/07 20:35:41 hmp Exp $
+ * $DragonFly: src/lib/libc/stdio/fgetc.c,v 1.4 2005/01/31 22:29:40 dillon Exp $
  */
 
+#include "namespace.h"
 #include <stdio.h>
+#include "un-namespace.h"
 #include "libc_private.h"
 
 int
index 2c0186e..59f1596 100644 (file)
  *
  * @(#)fgetpos.c       8.1 (Berkeley) 6/4/93
  * $FreeBSD: src/lib/libc/stdio/fgetpos.c,v 1.8 1999/08/28 00:00:59 peter Exp $
- * $DragonFly: src/lib/libc/stdio/fgetpos.c,v 1.4 2004/06/07 20:57:15 hmp Exp $
+ * $DragonFly: src/lib/libc/stdio/fgetpos.c,v 1.5 2005/01/31 22:29:40 dillon Exp $
  */
 
+#include "namespace.h"
 #include <stdio.h>
+#include "un-namespace.h"
 #include "libc_private.h"
 
 int
index 9458158..539f726 100644 (file)
  *
  * @(#)fgets.c 8.2 (Berkeley) 12/22/93
  * $FreeBSD: src/lib/libc/stdio/fgets.c,v 1.9 1999/08/28 00:01:00 peter Exp $
- * $DragonFly: src/lib/libc/stdio/fgets.c,v 1.4 2004/06/07 20:35:41 hmp Exp $
+ * $DragonFly: src/lib/libc/stdio/fgets.c,v 1.5 2005/01/31 22:29:40 dillon Exp $
  */
 
+#include "namespace.h"
 #include <stdio.h>
 #include <string.h>
+#include "un-namespace.h"
 #include "local.h"
 #include "libc_private.h"
 
index 524e3e5..2a1a95a 100644 (file)
  *
  * @(#)findfp.c        8.2 (Berkeley) 1/4/94
  * $FreeBSD: src/lib/libc/stdio/findfp.c,v 1.7.2.3 2001/08/17 02:56:31 peter Exp $
- * $DragonFly: src/lib/libc/stdio/findfp.c,v 1.5 2004/06/07 20:35:41 hmp Exp $
+ * $DragonFly: src/lib/libc/stdio/findfp.c,v 1.6 2005/01/31 22:29:40 dillon Exp $
  */
 
 #include <sys/param.h>
+#include <machine/atomic.h>
 #include <unistd.h>
 #include <stdio.h>
-#include <errno.h>
 #include <stdlib.h>
 #include <string.h>
 
-#include <libc_private.h>
 #include <spinlock.h>
 
+#include <libc_private.h>
 #include "local.h"
 #include "glue.h"
 
@@ -61,14 +61,19 @@ int __sdidinit;
 
                                /* the usual - (stdin + stdout + stderr) */
 static FILE usual[FOPEN_MAX - 3];
-static struct glue uglue = { 0, FOPEN_MAX - 3, usual };
+static struct glue uglue = { NULL, FOPEN_MAX - 3, usual };
 
 FILE __sF[3] = {
        std(__SRD, STDIN_FILENO),               /* stdin */
        std(__SWR, STDOUT_FILENO),              /* stdout */
        std(__SWR|__SNBF, STDERR_FILENO)        /* stderr */
 };
-struct glue __sglue = { &uglue, 3, __sF };
+
+/*
+ * note: __sglue starts the walk chain for exit flushing and other things.
+ */
+struct glue __sglue = { &uglue, 3, __sF };     /* GLOBAL, START OF LIST */
+static struct glue *lastglue = &uglue;
 
 /*
  * The following kludge is done to ensure enough binary compatibility
@@ -87,6 +92,12 @@ static spinlock_t thread_lock = _SPINLOCK_INITIALIZER;
 #define THREAD_LOCK()  if (__isthreaded) _SPINLOCK(&thread_lock)
 #define THREAD_UNLOCK()        if (__isthreaded) _SPINUNLOCK(&thread_lock)
 
+#if NOT_YET
+#define        SET_GLUE_PTR(ptr, val)  atomic_set_ptr(&(ptr), (uintptr_t)(val))
+#else
+#define        SET_GLUE_PTR(ptr, val)  ptr = val
+#endif
+
 static
 struct glue *
 moreglue(int n)
@@ -119,16 +130,22 @@ __sfp(void)
 
        if (!__sdidinit)
                __sinit();
+       /*
+        * The list must be locked because a FILE may be updated.
+        */
        THREAD_LOCK();
-       for (g = &__sglue;; g = g->next) {
+       for (g = &__sglue; g != NULL; g = g->next) {
                for (fp = g->iobs, n = g->niobs; --n >= 0; fp++)
                        if (fp->_flags == 0)
                                goto found;
-               if (g->next == NULL && (g->next = moreglue(NDYNAMIC)) == NULL)
-                       break;
        }
-       THREAD_UNLOCK();
-       return (NULL);
+       THREAD_UNLOCK();        /* don't hold lock while malloc()ing. */
+       if ((g = moreglue(NDYNAMIC)) == NULL)
+               return (NULL);
+       THREAD_LOCK();          /* reacquire the lock */
+       SET_GLUE_PTR(lastglue->next, g); /* atomically append glue to list */
+       lastglue = g;           /* not atomic; only accessed when locked */
+       fp = g->iobs;
 found:
        fp->_flags = 1;         /* reserve this slot; caller sets real flags */
        THREAD_UNLOCK();
@@ -144,6 +161,7 @@ found:
        fp->_ub._size = 0;
        fp->_lb._base = NULL;   /* no line buffer */
        fp->_lb._size = 0;
+       /* fp->_lock = NULL; */
        return (fp);
 }
 
@@ -161,10 +179,19 @@ f_prealloc(void)
        int n;
 
        n = getdtablesize() - FOPEN_MAX + 20;           /* 20 for slop. */
+       /*
+        * It should be safe to walk the list without locking it;
+        * new nodes are only added to the end and none are ever
+        * removed.
+        */
        for (g = &__sglue; (n -= g->niobs) > 0 && g->next; g = g->next)
                /* void */;
-       if (n > 0)
-               g->next = moreglue(n);
+       if ((n > 0) && ((g = moreglue(n)) != NULL)) {
+               THREAD_LOCK();
+               SET_GLUE_PTR(lastglue->next, g);
+               lastglue = g;
+               THREAD_UNLOCK();
+       }
 }
 
 /*
index 5b813a6..0323e37 100644 (file)
@@ -35,7 +35,7 @@
  *
  * @(#)flags.c 8.1 (Berkeley) 6/4/93
  * $FreeBSD: src/lib/libc/stdio/flags.c,v 1.6.2.1 2001/03/05 10:51:22 obrien Exp $
- * $DragonFly: src/lib/libc/stdio/flags.c,v 1.4 2004/06/07 20:35:41 hmp Exp $
+ * $DragonFly: src/lib/libc/stdio/flags.c,v 1.5 2005/01/31 22:29:40 dillon Exp $
  */
 
 #include <sys/types.h>
@@ -47,7 +47,7 @@
 
 /*
  * Return the (stdio) flags for a given mode.  Store the flags
- * to be passed to an open() syscall through *optr.
+ * to be passed to an _open() syscall through *optr.
  * Return 0 on error.
  */
 int
index f43ce2a..cb502b5 100644 (file)
  * SUCH DAMAGE.
  *
  * $FreeBSD: src/lib/libc/stdio/fopen.c,v 1.3.2.1 2001/03/05 10:53:51 obrien Exp $
- * $DragonFly: src/lib/libc/stdio/fopen.c,v 1.3 2004/06/07 20:35:41 hmp Exp $
+ * $DragonFly: src/lib/libc/stdio/fopen.c,v 1.4 2005/01/31 22:29:40 dillon Exp $
  *
  * @(#)fopen.c 8.1 (Berkeley) 6/4/93
  */
 
+#include "namespace.h"
 #include <sys/types.h>
 #include <sys/stat.h>
 #include <fcntl.h>
 #include <stdio.h>
 #include <errno.h>
+#include "un-namespace.h"
 
 #include "local.h"
 
@@ -69,6 +71,7 @@ fopen(const char *file, const char *mode)
        fp->_write = __swrite;
        fp->_seek = __sseek;
        fp->_close = __sclose;
+       /* fp->_lock = NULL; */
        /*
         * When opening in append mode, even though we use O_APPEND,
         * we need to seek to the end so that ftell() gets the right
index bc4a4ec..68467d9 100644 (file)
  *
  * @(#)fpurge.c        8.1 (Berkeley) 6/4/93
  * $FreeBSD: src/lib/libc/stdio/fpurge.c,v 1.7 1999/08/28 00:01:02 peter Exp $
- * $DragonFly: src/lib/libc/stdio/fpurge.c,v 1.4 2004/06/07 20:35:41 hmp Exp $
+ * $DragonFly: src/lib/libc/stdio/fpurge.c,v 1.5 2005/01/31 22:29:40 dillon Exp $
  */
 
+#include "namespace.h"
 #include <errno.h>
 #include <stdio.h>
 #include <stdlib.h>
+#include "un-namespace.h"
 #include "local.h"
 #include "libc_private.h"
 
index fb5603d..5837049 100644 (file)
  *
  * @(#)fputc.c 8.1 (Berkeley) 6/4/93
  * $FreeBSD: src/lib/libc/stdio/fputc.c,v 1.7 1999/08/28 00:01:03 peter Exp $
- * $DragonFly: src/lib/libc/stdio/fputc.c,v 1.4 2004/06/07 20:35:41 hmp Exp $
+ * $DragonFly: src/lib/libc/stdio/fputc.c,v 1.5 2005/01/31 22:29:40 dillon Exp $
  */
 
+#include "namespace.h"
 #include <stdio.h>
+#include "un-namespace.h"
 #include "libc_private.h"
 
 int
index 446e284..70b495d 100644 (file)
  *
  * @(#)fputs.c 8.1 (Berkeley) 6/4/93
  * $FreeBSD: src/lib/libc/stdio/fputs.c,v 1.7 1999/08/28 00:01:03 peter Exp $
- * $DragonFly: src/lib/libc/stdio/fputs.c,v 1.3 2004/06/07 20:35:41 hmp Exp $
+ * $DragonFly: src/lib/libc/stdio/fputs.c,v 1.4 2005/01/31 22:29:40 dillon Exp $
  */
 
+#include "namespace.h"
 #include <stdio.h>
 #include <string.h>
+#include "un-namespace.h"
 #include "fvwrite.h"
 #include "libc_private.h"
 
index f040667..732b171 100644 (file)
  *
  * @(#)fread.c 8.2 (Berkeley) 12/11/93
  * $FreeBSD: src/lib/libc/stdio/fread.c,v 1.7 1999/08/28 00:01:04 peter Exp $
- * $DragonFly: src/lib/libc/stdio/fread.c,v 1.4 2004/06/07 20:35:41 hmp Exp $
+ * $DragonFly: src/lib/libc/stdio/fread.c,v 1.5 2005/01/31 22:29:40 dillon Exp $
  */
 
+#include "namespace.h"
 #include <stdio.h>
 #include <string.h>
+#include "un-namespace.h"
 #include "local.h"
 #include "libc_private.h"
 
index 6afca27..a2f4a36 100644 (file)
  *
  * @(#)freopen.c       8.1 (Berkeley) 6/4/93
  * $FreeBSD: src/lib/libc/stdio/freopen.c,v 1.5.2.1 2001/03/05 10:54:53 obrien Exp $
- * $DragonFly: src/lib/libc/stdio/freopen.c,v 1.4 2004/06/08 00:45:00 hmp Exp $
+ * $DragonFly: src/lib/libc/stdio/freopen.c,v 1.5 2005/01/31 22:29:40 dillon Exp $
  */
 
+#include "namespace.h"
 #include <sys/types.h>
 #include <sys/stat.h>
 #include <fcntl.h>
@@ -45,6 +46,7 @@
 #include <unistd.h>
 #include <stdio.h>
 #include <stdlib.h>
+#include "un-namespace.h"
 #include "libc_private.h"
 #include "local.h"
 
@@ -110,7 +112,7 @@ freopen(const char *file, const char *mode, FILE *fp)
                }
                if (oflags & O_TRUNC)
                        ftruncate(fp->_file, 0);
-               if (fseeko(fp, 0, oflags & O_APPEND ? SEEK_END : SEEK_SET) < 0 &&
+               if (_fseeko(fp, 0, oflags & O_APPEND ? SEEK_END : SEEK_SET) < 0 &&
                    errno != ESPIPE) {
                        sverrno = errno;
                        fclose(fp);
@@ -196,7 +198,7 @@ finish:
         * assume stderr is always fd STDERR_FILENO, even if being freopen'd.
         */
        if (wantfd >= 0 && f != wantfd) {
-               if (dup2(f, wantfd) >= 0) {
+               if (_dup2(f, wantfd) >= 0) {
                        (void)_close(f);
                        f = wantfd;
                }
index 720e4a5..7cb4519 100644 (file)
  *
  * @(#)fscanf.c        8.1 (Berkeley) 6/4/93
  * $FreeBSD: src/lib/libc/stdio/fscanf.c,v 1.7 1999/08/28 00:01:04 peter Exp $
- * $DragonFly: src/lib/libc/stdio/fscanf.c,v 1.3 2004/06/07 20:35:41 hmp Exp $
+ * $DragonFly: src/lib/libc/stdio/fscanf.c,v 1.4 2005/01/31 22:29:40 dillon Exp $
  */
 
+#include "namespace.h"
 #include <stdio.h>
 #include <stdarg.h>
+#include "un-namespace.h"
 #include "libc_private.h"
 
 int
index 4879e42..204b96e 100644 (file)
  *
  * @(#)fseek.c 8.3 (Berkeley) 1/2/94
  * $FreeBSD: src/lib/libc/stdio/fseek.c,v 1.9.2.1 2001/03/05 10:56:58 obrien Exp $
- * $DragonFly: src/lib/libc/stdio/fseek.c,v 1.5 2004/06/07 20:35:41 hmp Exp $
+ * $DragonFly: src/lib/libc/stdio/fseek.c,v 1.6 2005/01/31 22:29:40 dillon Exp $
  */
 
+#include "namespace.h"
 #include <sys/types.h>
 #include <sys/stat.h>
 #include <fcntl.h>
 #include <stdio.h>
 #include <stdlib.h>
 #include <errno.h>
+#include "un-namespace.h"
 #include "local.h"
 #include "libc_private.h"
 
@@ -55,12 +57,30 @@ fseek(FILE *fp, long offset, int whence)
        return (fseeko(fp, offset, whence));
 }
 
+int
+fseeko(fp, offset, whence)
+       FILE *fp;
+       off_t offset;
+       int whence;
+{
+       int ret;
+
+       /* make sure stdio is set up */
+       if (!__sdidinit)
+               __sinit();
+
+       FLOCKFILE(fp);
+       ret = _fseeko(fp, offset, whence);
+       FUNLOCKFILE(fp);
+       return (ret);
+}
+
 /*
  * Seek the given file to the given offset.
  * `Whence' must be one of the three SEEK_* macros.
  */
 int
-fseeko(FILE *fp, off_t offset, int whence)
+_fseeko(FILE *fp, off_t offset, int whence)
 {
        fpos_t (*seekfn) (void *, fpos_t, int);
        fpos_t target, curoff;
@@ -68,17 +88,11 @@ fseeko(FILE *fp, off_t offset, int whence)
        struct stat st;
        int havepos;
 
-       /* make sure stdio is set up */
-       if (!__sdidinit)
-               __sinit();
-
-       FLOCKFILE(fp);
        /*
         * Have to be able to seek.
         */
        if ((seekfn = fp->_seek) == NULL) {
                errno = ESPIPE;         /* historic practice */
-               FUNLOCKFILE(fp);
                return (EOF);
        }
 
@@ -99,7 +113,6 @@ fseeko(FILE *fp, off_t offset, int whence)
                else {
                        curoff = (*seekfn)(fp->_cookie, (fpos_t)0, SEEK_CUR);
                        if (curoff == -1) {
-                               FUNLOCKFILE(fp);
                                return (EOF);
                        }
                }
@@ -123,7 +136,6 @@ fseeko(FILE *fp, off_t offset, int whence)
 
        default:
                errno = EINVAL;
-               FUNLOCKFILE(fp);
                return (EOF);
        }
 
@@ -141,7 +153,7 @@ fseeko(FILE *fp, off_t offset, int whence)
                goto dumb;
        if ((fp->_flags & __SOPT) == 0) {
                if (seekfn != __sseek ||
-                   fp->_file < 0 || fstat(fp->_file, &st) ||
+                   fp->_file < 0 || _fstat(fp->_file, &st) ||
                    (st.st_mode & S_IFMT) != S_IFREG) {
                        fp->_flags |= __SNPT;
                        goto dumb;
@@ -157,7 +169,7 @@ fseeko(FILE *fp, off_t offset, int whence)
        if (whence == SEEK_SET)
                target = offset;
        else {
-               if (fstat(fp->_file, &st))
+               if (_fstat(fp->_file, &st))
                        goto dumb;
                target = st.st_size + offset;
        }
@@ -207,7 +219,6 @@ fseeko(FILE *fp, off_t offset, int whence)
                if (HASUB(fp))
                        FREEUB(fp);
                fp->_flags &= ~__SEOF;
-               FUNLOCKFILE(fp);
                return (0);
        }
 
@@ -234,7 +245,6 @@ fseeko(FILE *fp, off_t offset, int whence)
                fp->_p += n;
                fp->_r -= n;
        }
-       FUNLOCKFILE(fp);
        return (0);
 
        /*
@@ -244,7 +254,6 @@ fseeko(FILE *fp, off_t offset, int whence)
 dumb:
        if (__sflush(fp) ||
            (*seekfn)(fp->_cookie, (fpos_t)offset, whence) == POS_ERR) {
-               FUNLOCKFILE(fp);
                return (EOF);
        }
        /* success: clear EOF indicator and discard ungetc() data */
@@ -254,6 +263,5 @@ dumb:
        fp->_r = 0;
        /* fp->_w = 0; */       /* unnecessary (I think...) */
        fp->_flags &= ~__SEOF;
-       FUNLOCKFILE(fp);
        return (0);
 }
index 1633de5..5f1e755 100644 (file)
  *
  * @(#)ftell.c 8.2 (Berkeley) 5/4/95
  * $FreeBSD: src/lib/libc/stdio/ftell.c,v 1.11 1999/08/28 00:01:06 peter Exp $
- * $DragonFly: src/lib/libc/stdio/ftell.c,v 1.4 2004/06/07 20:35:41 hmp Exp $
+ * $DragonFly: src/lib/libc/stdio/ftell.c,v 1.5 2005/01/31 22:29:40 dillon Exp $
  */
 
+#include "namespace.h"
 #include <sys/types.h>
 #include <stdio.h>
 #include <errno.h>
+#include "un-namespace.h"
 #include "local.h"
 #include "libc_private.h"
 
index 2623dd0..af16b2b 100644 (file)
@@ -35,7 +35,7 @@
  *
  * @(#)fvwrite.c       8.1 (Berkeley) 6/4/93
  * $FreeBSD: src/lib/libc/stdio/fvwrite.c,v 1.10 1999/08/28 00:01:06 peter Exp $
- * $DragonFly: src/lib/libc/stdio/fvwrite.c,v 1.5 2004/06/08 04:04:11 hmp Exp $
+ * $DragonFly: src/lib/libc/stdio/fvwrite.c,v 1.6 2005/01/31 22:29:40 dillon Exp $
  */
 
 #include <errno.h>
@@ -140,7 +140,7 @@ __sfvwrite(FILE *fp, struct __suio *uio)
                                COPY(w);
                                /* fp->_w -= w; */ /* unneeded */
                                fp->_p += w;
-                               if (fflush(fp))
+                               if (__fflush(fp))
                                        goto err;
                        } else if (len >= (w = fp->_bf._size)) {
                                /* write directly */
@@ -180,7 +180,7 @@ __sfvwrite(FILE *fp, struct __suio *uio)
                                COPY(w);
                                /* fp->_w -= w; */
                                fp->_p += w;
-                               if (fflush(fp))
+                               if (__fflush(fp))
                                        goto err;
                        } else if (s >= (w = fp->_bf._size)) {
                                w = (*fp->_write)(fp->_cookie, p, w);
@@ -194,7 +194,7 @@ __sfvwrite(FILE *fp, struct __suio *uio)
                        }
                        if ((nldist -= w) == 0) {
                                /* copied the newline: flush and forget */
-                               if (fflush(fp))
+                               if (__fflush(fp))
                                        goto err;
                                nlknown = 0;
                        }
index 90e9c37..80d9bb9 100644 (file)
  *
  * @(#)fwalk.c 8.1 (Berkeley) 6/4/93
  * $FreeBSD: src/lib/libc/stdio/fwalk.c,v 1.6.2.1 2001/03/05 11:27:49 obrien Exp $
- * $DragonFly: src/lib/libc/stdio/fwalk.c,v 1.3 2004/06/07 20:35:41 hmp Exp $
+ * $DragonFly: src/lib/libc/stdio/fwalk.c,v 1.4 2005/01/31 22:29:40 dillon Exp $
  */
 
 #include <stdio.h>
+#include <sys/types.h>
+#include <machine/atomic.h>
 #include "local.h"
 #include "glue.h"
 
@@ -50,6 +52,11 @@ _fwalk(int (*function)(FILE *))
        struct glue *g;
 
        ret = 0;
+       /*
+        * It should be safe to walk  the list without locking it;
+        * new nodes are only added to the end and none are ever
+        * removed.
+        */
        for (g = &__sglue; g != NULL; g = g->next)
                for (fp = g->iobs, n = g->niobs; --n >= 0; fp++)
                        if (fp->_flags != 0)
index c83ce42..09930ab 100644 (file)
  *
  * @(#)fwrite.c        8.1 (Berkeley) 6/4/93
  * $FreeBSD: src/lib/libc/stdio/fwrite.c,v 1.7 1999/08/28 00:01:07 peter Exp $
- * $DragonFly: src/lib/libc/stdio/fwrite.c,v 1.3 2004/06/07 20:35:41 hmp Exp $
+ * $DragonFly: src/lib/libc/stdio/fwrite.c,v 1.4 2005/01/31 22:29:40 dillon Exp $
  */
 
+#include "namespace.h"
 #include <stdio.h>
+#include "un-namespace.h"
 #include "local.h"
 #include "fvwrite.h"
 #include "libc_private.h"
index a4fd461..a724c6b 100644 (file)
  *
  * @(#)getc.c  8.1 (Berkeley) 6/4/93
  * $FreeBSD: src/lib/libc/stdio/getc.c,v 1.7.2.1 2001/03/05 11:27:49 obrien Exp $
- * $DragonFly: src/lib/libc/stdio/getc.c,v 1.2 2003/06/17 04:26:46 dillon Exp $
+ * $DragonFly: src/lib/libc/stdio/getc.c,v 1.3 2005/01/31 22:29:40 dillon Exp $
  */
 
+#include "namespace.h"
 #include <stdio.h>
+#include "un-namespace.h"
 #include "libc_private.h"
 
-/*
- * A subroutine version of the macro getc.
- */
-#undef getc
-
 int
 getc(FILE *fp)
 {
index e062a8c..6c1a302 100644 (file)
  *
  * @(#)getchar.c       8.1 (Berkeley) 6/4/93
  * $FreeBSD: src/lib/libc/stdio/getchar.c,v 1.7 1999/08/28 00:01:09 peter Exp $
- * $DragonFly: src/lib/libc/stdio/getchar.c,v 1.3 2004/06/07 20:35:41 hmp Exp $
+ * $DragonFly: src/lib/libc/stdio/getchar.c,v 1.4 2005/01/31 22:29:40 dillon Exp $
  */
 
 /*
  * A subroutine version of the macro getchar.
  */
+#include "namespace.h"
 #include <stdio.h>
+#include "un-namespace.h"
 #include "libc_private.h"
 
 #undef getchar
index 605d6ec..1655e2c 100644 (file)
  *
  * @(#)gets.c  8.1 (Berkeley) 6/4/93
  * $FreeBSD: src/lib/libc/stdio/gets.c,v 1.9 2000/01/27 23:06:45 jasone Exp $
- * $DragonFly: src/lib/libc/stdio/gets.c,v 1.4 2004/06/07 20:35:41 hmp Exp $
+ * $DragonFly: src/lib/libc/stdio/gets.c,v 1.5 2005/01/31 22:29:40 dillon Exp $
  */
 
+#include "namespace.h"
 #include <unistd.h>
 #include <stdio.h>
 #include <sys/cdefs.h>
+#include "un-namespace.h"
 
 __warn_references(gets, "warning: this program uses gets(), which is unsafe.");
 
index 5dcdaff..bd6e94e 100644 (file)
@@ -33,7 +33,8 @@
  * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
  * SUCH DAMAGE.
  *
- *     @(#)glue.h      8.1 (Berkeley) 6/4/93
+ * @(#)glue.h  8.1 (Berkeley) 6/4/93
+ * $DragonFly: src/lib/libc/stdio/Attic/glue.h,v 1.2 2005/01/31 22:29:40 dillon Exp $
  */
 
 /*
@@ -44,4 +45,6 @@ struct glue {
        struct  glue *next;
        int     niobs;
        FILE    *iobs;
-} __sglue;
+};
+
+extern struct glue __sglue;
index 9561929..1b428ed 100644 (file)
  *     @(#)local.h     8.3 (Berkeley) 7/3/94
  *
  * $FreeBSD: src/lib/libc/stdio/local.h,v 1.1.1.2.6.1 2001/03/05 11:27:49 obrien Exp $
- * $DragonFly: src/lib/libc/stdio/local.h,v 1.4 2003/11/12 20:21:25 eirikn Exp $
+ * $DragonFly: src/lib/libc/stdio/local.h,v 1.5 2005/01/31 22:29:40 dillon Exp $
  */
 
+#include <sys/types.h> /* for off_t */
+
 #ifndef _MACHINE_STDINT_H_
 #include <machine/stdint.h>    /* __size_t */
 #endif
index 738f6b5..9d41957 100644 (file)
  * SUCH DAMAGE.
  *
  * $FreeBSD: src/lib/libc/stdio/makebuf.c,v 1.1.1.1.14.1 2001/03/05 11:27:49 obrien Exp $
- * $DragonFly: src/lib/libc/stdio/makebuf.c,v 1.4 2004/06/07 20:35:41 hmp Exp $
+ * $DragonFly: src/lib/libc/stdio/makebuf.c,v 1.5 2005/01/31 22:29:40 dillon Exp $
  *
  * @(#)makebuf.c       8.1 (Berkeley) 6/4/93
  */
 
+#include "namespace.h"
 #include <sys/types.h>
 #include <sys/stat.h>
 #include <unistd.h>
 #include <stdio.h>
 #include <stdlib.h>
 #include "local.h"
+#include "un-namespace.h"
 
 /*
  * Allocate a file buffer, or switch to unbuffered I/O.
  * Per the ANSI C standard, ALL tty devices default to line buffered.
  *
  * As a side effect, we set __SOPT or __SNPT (en/dis-able fseek
- * optimisation) right after the fstat() that finds the buffer size.
+ * optimisation) right after the _fstat() that finds the buffer size.
  */
 void
 __smakebuf(FILE *fp)
@@ -90,7 +92,7 @@ __swhatbuf(FILE *fp, size_t *bufsize, int *couldbetty)
 {
        struct stat st;
 
-       if (fp->_file < 0 || fstat(fp->_file, &st) < 0) {
+       if (fp->_file < 0 || _fstat(fp->_file, &st) < 0) {
                *couldbetty = 0;
                *bufsize = BUFSIZ;
                return (__SNPT);
index 68ed566..cbc0101 100644 (file)
  *
  * @(#)mktemp.c        8.1 (Berkeley) 6/4/93
  * $FreeBSD: src/lib/libc/stdio/mktemp.c,v 1.19.2.3 2002/06/18 09:53:07 robert Exp $
- * $DragonFly: src/lib/libc/stdio/mktemp.c,v 1.5 2004/06/07 20:35:41 hmp Exp $
+ * $DragonFly: src/lib/libc/stdio/mktemp.c,v 1.6 2005/01/31 22:29:40 dillon Exp $
  */
 
+/* #include "namespace.h" */
 #include <sys/types.h>
 #include <sys/stat.h>
 #include <fcntl.h>
@@ -44,6 +45,7 @@
 #include <string.h>
 #include <ctype.h>
 #include <unistd.h>
+/* #include "un-namespace.h" */
 
 char *_mktemp (char *);
 
index 4c0c924..e049e9a 100644 (file)
  * SUCH DAMAGE.
  *
  * $FreeBSD: src/lib/libc/stdio/perror.c,v 1.3.6.1 2001/03/05 11:27:49 obrien Exp $
- * $DragonFly: src/lib/libc/stdio/perror.c,v 1.4 2004/06/07 20:35:41 hmp Exp $
+ * $DragonFly: src/lib/libc/stdio/perror.c,v 1.5 2005/01/31 22:29:40 dillon Exp $
  *
  * @(#)perror.c        8.1 (Berkeley) 6/4/93
  */
 
+#include "namespace.h"
 #include <sys/types.h>
 #include <sys/uio.h>
 #include <unistd.h>
 #include <errno.h>
 #include <stdio.h>
 #include <string.h>
+#include "un-namespace.h"
 
 void
 perror(const char *s)
@@ -63,5 +65,5 @@ perror(const char *s)
        v++;
        v->iov_base = "\n";
        v->iov_len = 1;
-       (void)writev(STDERR_FILENO, iov, (v - iov) + 1);
+       (void)_writev(STDERR_FILENO, iov, (v - iov) + 1);
 }
index 4579438..2613879 100644 (file)
  *
  * @(#)putc.c  8.1 (Berkeley) 6/4/93
  * $FreeBSD: src/lib/libc/stdio/putc.c,v 1.7 1999/08/28 00:01:12 peter Exp $
- * $DragonFly: src/lib/libc/stdio/putc.c,v 1.4 2004/06/07 20:35:41 hmp Exp $
+ * $DragonFly: src/lib/libc/stdio/putc.c,v 1.5 2005/01/31 22:29:40 dillon Exp $
  */
 
+#include "namespace.h"
 #include <stdio.h>
+#include "un-namespace.h"
 #include "libc_private.h"
 
 /*
- * A subroutine version of the macro putc.
+ * putc has traditionally been a macro in <stdio.h>.  That is no
+ * longer true because POSIX requires it to be thread-safe.  POSIX
+ * does define putc_unlocked() which is defined as a macro and is
+ * probably what you want to use instead.
+ *
+ * #undef putc
  */
-#undef putc
-
 int
 putc(int c, FILE *fp)
 {
index b7162da..0c85aad 100644 (file)
  *
  * @(#)putchar.c       8.1 (Berkeley) 6/4/93
  * $FreeBSD: src/lib/libc/stdio/putchar.c,v 1.7 1999/08/28 00:01:12 peter Exp $
- * $DragonFly: src/lib/libc/stdio/putchar.c,v 1.4 2004/06/07 20:35:41 hmp Exp $
+ * $DragonFly: src/lib/libc/stdio/putchar.c,v 1.5 2005/01/31 22:29:40 dillon Exp $
  */
 
+#include "namespace.h"
 #include <stdio.h>
+#include "un-namespace.h"
 #include "libc_private.h"
 
-#undef putchar
-
+/*
+ * putchar has traditionally been a macro in <stdio.h>.  That is no
+ * longer true because POSIX requires it to be thread-safe.  POSIX
+ * does define putchar_unlocked() which is defined as a macro and is
+ * probably what you want to use instead.
+ *
+ * #undef putchar
+ */
 /*
  * A subroutine version of the macro putchar
  */
index 9edd9d2..62eef31 100644 (file)
  *
  * @(#)puts.c  8.1 (Berkeley) 6/4/93
  * $FreeBSD: src/lib/libc/stdio/puts.c,v 1.7 1999/08/28 00:01:12 peter Exp $
- * $DragonFly: src/lib/libc/stdio/puts.c,v 1.3 2004/06/07 20:35:41 hmp Exp $
+ * $DragonFly: src/lib/libc/stdio/puts.c,v 1.4 2005/01/31 22:29:40 dillon Exp $
  */
 
+#include "namespace.h"
 #include <stdio.h>
 #include <string.h>
+#include "un-namespace.h"
 #include "fvwrite.h"
 #include "libc_private.h"
 
index 2f6eedd..5bfb542 100644 (file)
  *
  * @(#)putw.c  8.1 (Berkeley) 6/4/93
  * $FreeBSD: src/lib/libc/stdio/putw.c,v 1.7 1999/08/28 00:01:13 peter Exp $
- * $DragonFly: src/lib/libc/stdio/putw.c,v 1.3 2004/06/07 20:35:41 hmp Exp $
+ * $DragonFly: src/lib/libc/stdio/putw.c,v 1.4 2005/01/31 22:29:40 dillon Exp $
  */
 
+#include "namespace.h"
 #include <stdio.h>
+#include "un-namespace.h"
 #include "fvwrite.h"
 #include "libc_private.h"
 
index 8744bdc..a71112d 100644 (file)
  *
  * @(#)refill.c        8.1 (Berkeley) 6/4/93
  * $FreeBSD: src/lib/libc/stdio/refill.c,v 1.8.2.1 2001/03/05 11:27:49 obrien Exp $
- * $DragonFly: src/lib/libc/stdio/refill.c,v 1.5 2004/06/07 20:35:41 hmp Exp $
+ * $DragonFly: src/lib/libc/stdio/refill.c,v 1.6 2005/01/31 22:29:40 dillon Exp $
  */
 
 #include <errno.h>
 #include <stdio.h>
 #include <stdlib.h>
+
 #include "local.h"
 
 static int lflush (FILE *);
index 32341ef..33c976e 100644 (file)
  *
  * @(#)rewind.c        8.1 (Berkeley) 6/4/93
  * $FreeBSD: src/lib/libc/stdio/rewind.c,v 1.7.2.1 2001/03/05 11:27:49 obrien Exp $
- * $DragonFly: src/lib/libc/stdio/rewind.c,v 1.2 2003/06/17 04:26:46 dillon Exp $
+ * $DragonFly: src/lib/libc/stdio/rewind.c,v 1.3 2005/01/31 22:29:40 dillon Exp $
  */
 
+#include "namespace.h"
 #include <errno.h>
 #include <stdio.h>
+#include "un-namespace.h"
 #include "libc_private.h"
+#include "local.h"
 
 void
 rewind(FILE *fp)
 {
        FLOCKFILE(fp);
-       (void) fseek(fp, 0L, SEEK_SET);
+       (void)_fseeko(fp, 0L, SEEK_SET);
        clearerr(fp);
        FUNLOCKFILE(fp);
        errno = 0;      /* not required, but seems reasonable */
index 9026e47..9e0686e 100644 (file)
  *
  * @(#)scanf.c 8.1 (Berkeley) 6/4/93
  * $FreeBSD: src/lib/libc/stdio/scanf.c,v 1.7 1999/08/28 00:01:15 peter Exp $
- * $DragonFly: src/lib/libc/stdio/scanf.c,v 1.3 2004/06/07 20:35:41 hmp Exp $
+ * $DragonFly: src/lib/libc/stdio/scanf.c,v 1.4 2005/01/31 22:29:40 dillon Exp $
  */
 
+#include "namespace.h"
 #include <stdio.h>
 #include <stdarg.h>
+#include "un-namespace.h"
 #include "libc_private.h"
 
 int
index 8b394ab..135a7df 100644 (file)
  *
  * @(#)setvbuf.c       8.2 (Berkeley) 11/16/93
  * $FreeBSD: src/lib/libc/stdio/setvbuf.c,v 1.7 1999/08/28 00:01:16 peter Exp $
- * $DragonFly: src/lib/libc/stdio/setvbuf.c,v 1.4 2004/06/07 20:35:41 hmp Exp $
+ * $DragonFly: src/lib/libc/stdio/setvbuf.c,v 1.5 2005/01/31 22:29:40 dillon Exp $
  */
 
+#include "namespace.h"
 #include <stdio.h>
 #include <stdlib.h>
+#include "un-namespace.h"
 #include "local.h"
 #include "libc_private.h"
 
index 1e819e1..c9ecf43 100644 (file)
  *
  * @(#)stdio.c 8.1 (Berkeley) 6/4/93
  * $FreeBSD: src/lib/libc/stdio/stdio.c,v 1.9 2000/01/27 23:06:46 jasone Exp $
- * $DragonFly: src/lib/libc/stdio/stdio.c,v 1.4 2004/06/07 20:35:41 hmp Exp $
+ * $DragonFly: src/lib/libc/stdio/stdio.c,v 1.5 2005/01/31 22:29:40 dillon Exp $
  */
 
+#include "namespace.h"
 #include <fcntl.h>
 #include <unistd.h>
 #include <stdio.h>
+#include "un-namespace.h"
 #include "local.h"
 
 /*
index b8e571b..c2036f1 100644 (file)
  * SUCH DAMAGE.
  *
  * $FreeBSD: src/lib/libc/stdio/tmpfile.c,v 1.4.2.2 2003/02/15 05:34:52 kris Exp $
- * $DragonFly: src/lib/libc/stdio/tmpfile.c,v 1.2 2003/06/17 04:26:46 dillon Exp $
+ * $DragonFly: src/lib/libc/stdio/tmpfile.c,v 1.3 2005/01/31 22:29:40 dillon Exp $
  *
  * @(#)tmpfile.c       8.1 (Berkeley) 6/4/93
  */
 
+#include "namespace.h"
 #include <sys/types.h>
 #include <signal.h>
 #include <unistd.h>
@@ -47,6 +48,7 @@
 #include <stdlib.h>
 #include <string.h>
 #include <paths.h>
+#include "un-namespace.h"
 
 FILE *
 tmpfile()
@@ -70,7 +72,7 @@ tmpfile()
                return (NULL);
 
        sigfillset(&set);
-       (void)sigprocmask(SIG_BLOCK, &set, &oset);
+       (void)_sigprocmask(SIG_BLOCK, &set, &oset);
 
        fd = mkstemp(buf);
        if (fd != -1)
@@ -78,7 +80,7 @@ tmpfile()
 
        free(buf);
 
-       (void)sigprocmask(SIG_SETMASK, &oset, NULL);
+       (void)_sigprocmask(SIG_SETMASK, &oset, NULL);
 
        if (fd == -1)
                return (NULL);
index 5ac7348..c266370 100644 (file)
  *
  * @(#)ungetc.c        8.2 (Berkeley) 11/3/93
  * $FreeBSD: src/lib/libc/stdio/ungetc.c,v 1.7.2.1 2001/03/05 11:27:49 obrien Exp $
- * $DragonFly: src/lib/libc/stdio/ungetc.c,v 1.3 2003/11/12 20:21:25 eirikn Exp $
+ * $DragonFly: src/lib/libc/stdio/ungetc.c,v 1.4 2005/01/31 22:29:40 dillon Exp $
  */
 
+#include "namespace.h"
 #include <stdio.h>
 #include <stdlib.h>
 #include <string.h>
+#include "un-namespace.h"
 #include "local.h"
 #include "libc_private.h"
 
@@ -84,26 +86,42 @@ __submore(FILE *fp)
        return (0);
 }
 
+/*
+ * MT-safe version
+ */
 int
 ungetc(int c, FILE *fp)
 {
+       int ret;
+
        if (c == EOF)
                return (EOF);
        if (!__sdidinit)
                __sinit();
        FLOCKFILE(fp);
+       ret = __ungetc(c, fp);
+       FUNLOCKFILE(fp);
+       return(ret);
+}
+
+/*
+ * Non-MT-safe version
+ */
+int
+__ungetc(int c, FILE *fp)
+{
+       if (c == EOF)
+               return(EOF);
        if ((fp->_flags & __SRD) == 0) {
                /*
                 * Not already reading: no good unless reading-and-writing.
                 * Otherwise, flush any current write stuff.
                 */
                if ((fp->_flags & __SRW) == 0) {
-                       FUNLOCKFILE(fp);
                        return (EOF);
                }
                if (fp->_flags & __SWR) {
                        if (__sflush(fp)) {
-                               FUNLOCKFILE(fp);
                                return (EOF);
                        }
                        fp->_flags &= ~__SWR;
@@ -120,12 +138,10 @@ ungetc(int c, FILE *fp)
         */
        if (HASUB(fp)) {
                if (fp->_r >= fp->_ub._size && __submore(fp)) {
-                       FUNLOCKFILE(fp);
                        return (EOF);
                }
                *--fp->_p = c;
                fp->_r++;
-               FUNLOCKFILE(fp);
                return (c);
        }
        fp->_flags &= ~__SEOF;
@@ -139,7 +155,6 @@ ungetc(int c, FILE *fp)
            fp->_p[-1] == c) {
                fp->_p--;
                fp->_r++;
-               FUNLOCKFILE(fp);
                return (c);
        }
 
@@ -154,6 +169,5 @@ ungetc(int c, FILE *fp)
        fp->_ubuf[sizeof(fp->_ubuf) - 1] = c;
        fp->_p = &fp->_ubuf[sizeof(fp->_ubuf) - 1];
        fp->_r = 1;
-       FUNLOCKFILE(fp);
        return (c);
 }
index 2644c9e..483a1c1 100644 (file)
  * ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
  *
  * $FreeBSD: src/lib/libc/stdio/vasprintf.c,v 1.11 1999/08/28 00:01:19 peter Exp $
- * $DragonFly: src/lib/libc/stdio/vasprintf.c,v 1.3 2003/11/09 02:34:02 dillon Exp $
+ * $DragonFly: src/lib/libc/stdio/vasprintf.c,v 1.4 2005/01/31 22:29:40 dillon Exp $
  */
 
 #include <stdio.h>
 #include <stdlib.h>
 #include <stdarg.h>
 #include <errno.h>
+#include "local.h"
 
 int
 vasprintf(char **str, const char *fmt, va_list ap)
@@ -50,7 +51,7 @@ vasprintf(char **str, const char *fmt, va_list ap)
                return (-1);
        }
        f._bf._size = f._w = 127;               /* Leave room for the NULL */
-       ret = vfprintf(&f, fmt, ap);
+       ret = __vfprintf(&f, fmt, ap);
        *f._p = '\0';
        f._bf._base = reallocf(f._bf._base, f._bf._size + 1);
        if (f._bf._base == NULL) {
index df0b58b..8bc8cb9 100644 (file)
@@ -35,7 +35,7 @@
  *
  * @(#)vfprintf.c      8.1 (Berkeley) 6/4/93
  * $FreeBSD: src/lib/libc/stdio/vfprintf.c,v 1.22.2.5 2002/10/12 10:46:37 schweikh Exp $
- * $DragonFly: src/lib/libc/stdio/vfprintf.c,v 1.5 2004/06/07 20:35:41 hmp Exp $
+ * $DragonFly: src/lib/libc/stdio/vfprintf.c,v 1.6 2005/01/31 22:29:40 dillon Exp $
  */
 
 /*
@@ -44,6 +44,7 @@
  * This code is large and complicated...
  */
 
+#include "namespace.h"
 #include <sys/types.h>
 
 #include <limits.h>
@@ -52,6 +53,7 @@
 #include <string.h>
 
 #include <stdarg.h>
+#include "un-namespace.h"
 
 #include "libc_private.h"
 #include "local.h"
@@ -110,8 +112,8 @@ __sbprintf(FILE *fp, const char *fmt, va_list ap)
        fake._lbfsize = 0;      /* not actually used, but Just In Case */
 
        /* do the work, then copy any error status */
-       ret = vfprintf(&fake, fmt, ap);
-       if (ret >= 0 && fflush(&fake))
+       ret = __vfprintf(&fake, fmt, ap);
+       if (ret >= 0 && __fflush(&fake))
                ret = EOF;
        if (fake._flags & __SERR)
                fp->_flags |= __SERR;
@@ -236,6 +238,20 @@ __uqtoa(u_quad_t val, char *endp, int base, int octzero, char *xdigs)
        return (cp);
 }
 
+/*
+ * MT-safe version
+ */
+int
+vfprintf(FILE *fp, const char *fmt0, va_list ap)
+{
+       int ret;
+
+       FLOCKFILE(fp);
+       ret = __vfprintf(fp, fmt0, ap);
+       FUNLOCKFILE(fp);
+       return (ret);
+}
+
 #ifdef FLOATING_POINT
 #include <locale.h>
 #include <math.h>
@@ -267,8 +283,11 @@ static int exponent (char *, int, int);
 #define        SHORTINT        0x040           /* short integer */
 #define        ZEROPAD         0x080           /* zero (as opposed to blank) pad */
 #define FPT            0x100           /* Floating point number */
+/*
+ * Non-MT-safe version
+ */
 int
-vfprintf(FILE *fp, const char *fmt0, va_list ap)
+__vfprintf(FILE *fp, const char *fmt0, va_list ap)
 {
        char *fmt;              /* format string */
        int ch;                 /* character from fmt */
@@ -400,17 +419,14 @@ vfprintf(FILE *fp, const char *fmt0, va_list ap)
 #ifdef FLOATING_POINT
        dtoaresult = NULL;
 #endif
-       FLOCKFILE(fp);
        /* sorry, fprintf(read_only_file, "") returns EOF, not 0 */
        if (cantwrite(fp)) {
-               FUNLOCKFILE(fp);
                return (EOF);
        }
 
        /* optimise fprintf(stderr) (and other unbuffered Unix files) */
        if ((fp->_flags & (__SNBF|__SWR|__SRW)) == (__SNBF|__SWR) &&
            fp->_file >= 0) {
-               FUNLOCKFILE(fp);
                return (__sbprintf(fp, fmt0, ap));
        }
 
@@ -856,7 +872,6 @@ error:
 #endif
        if (__sferror(fp))
                ret = EOF;
-       FUNLOCKFILE(fp);
         if ((argtable != NULL) && (argtable != statargtable))
                 free (argtable);
        return (ret);
index a6364ba..ff73dbe 100644 (file)
  *
  * @(#)vfscanf.c       8.1 (Berkeley) 6/4/93
  * $FreeBSD: /repoman/r/ncvs/src/lib/libc/stdio/vfscanf.c,v 1.35 2004/01/31 23:16:09 das Exp $
- * $DragonFly: src/lib/libc/stdio/vfscanf.c,v 1.5 2004/07/08 17:56:46 cpressey Exp $
+ * $DragonFly: src/lib/libc/stdio/vfscanf.c,v 1.6 2005/01/31 22:29:40 dillon Exp $
  */
 
+#include "namespace.h"
 #include <stdio.h>
 #include <stdlib.h>
 #include <ctype.h>
 #include <stdarg.h>
 #include <string.h>
+#include "un-namespace.h"
 
 #include "collate.h"
+#include "libc_private.h"
 #include "local.h"
 
 #define FLOATING_POINT
 static u_char *__sccl(char *, u_char *);
 
 /*
- * vfscanf
+ * __vfscanf MT-safe version
+ */
+int
+__vfscanf(FILE *fp, char const *fmt0, va_list ap)
+{
+       int ret;
+
+       FLOCKFILE(fp);
+       ret = __svfscanf(fp, fmt0, ap);
+       FUNLOCKFILE(fp);
+       return (ret);
+}
+
+/*
+ * __svfscanf - non-MT-safe version of __vfscanf
  */
 int
 __svfscanf(FILE *fp, char const *fmt0, va_list ap)
@@ -541,13 +558,13 @@ literal:
                         */
                        if (flags & NDIGITS) {
                                if (p > buf)
-                                       (void) ungetc(*(u_char *)--p, fp);
+                                       (void)__ungetc(*(u_char *)--p, fp);
                                goto match_failure;
                        }
                        c = ((u_char *)p)[-1];
                        if (c == 'x' || c == 'X') {
                                --p;
-                               (void) ungetc(c, fp);
+                               (void)__ungetc(c, fp);
                        }
                        if ((flags & SUPPRESS) == 0) {
                                u_quad_t res;
@@ -638,16 +655,16 @@ literal:
                                if (flags & EXPOK) {
                                        /* no digits at all */
                                        while (p > buf)
-                                               ungetc(*(u_char *)--p, fp);
+                                               __ungetc(*(u_char *)--p, fp);
                                        goto match_failure;
                                }
                                /* just a bad exponent (e and maybe sign) */
                                c = *(u_char *)--p;
                                if (c != 'e' && c != 'E') {
-                                       (void) ungetc(c, fp);/* sign */
+                                       (void)__ungetc(c, fp);/* sign */
                                        c = *(u_char *)--p;
                                }
-                               (void) ungetc(c, fp);
+                               (void)__ungetc(c, fp);
                        }
                        if ((flags & SUPPRESS) == 0) {
                                double res;
index 969666d..8d23170 100644 (file)
  *
  * @(#)vscanf.c        8.1 (Berkeley) 6/4/93
  * $FreeBSD: src/lib/libc/stdio/vscanf.c,v 1.7 1999/08/28 00:01:21 peter Exp $
- * $DragonFly: src/lib/libc/stdio/vscanf.c,v 1.3 2003/11/09 02:34:02 dillon Exp $
+ * $DragonFly: src/lib/libc/stdio/vscanf.c,v 1.4 2005/01/31 22:29:40 dillon Exp $
  */
 
+#include "namespace.h"
 #include <stdio.h>
 #include <stdarg.h>
+#include "un-namespace.h"
 #include "libc_private.h"
 
 int
index 0101185..d4c75fd 100644 (file)
  *
  * @(#)vsnprintf.c     8.1 (Berkeley) 6/4/93
  * $FreeBSD: src/lib/libc/stdio/vsnprintf.c,v 1.12.2.1 2002/09/23 06:58:17 maxim Exp $
- * $DragonFly: src/lib/libc/stdio/vsnprintf.c,v 1.3 2003/11/09 02:34:02 dillon Exp $
+ * $DragonFly: src/lib/libc/stdio/vsnprintf.c,v 1.4 2005/01/31 22:29:40 dillon Exp $
  */
 
 #include <limits.h>
 #include <stdio.h>
 #include <stdarg.h>
+#include "local.h"
 
 int
 vsnprintf(char *str, size_t n, const char *fmt, va_list ap)
@@ -64,7 +65,7 @@ vsnprintf(char *str, size_t n, const char *fmt, va_list ap)
        f._flags = __SWR | __SSTR;
        f._bf._base = f._p = (unsigned char *)str;
        f._bf._size = f._w = n;
-       ret = vfprintf(&f, fmt, ap);
+       ret = __vfprintf(&f, fmt, ap);
        if (on > 0)
                *f._p = '\0';
        return (ret);
index 0a7ce29..8739ab1 100644 (file)
  *
  * @(#)vsprintf.c      8.1 (Berkeley) 6/4/93
  * $FreeBSD: src/lib/libc/stdio/vsprintf.c,v 1.6 1999/08/28 00:01:21 peter Exp $
- * $DragonFly: src/lib/libc/stdio/vsprintf.c,v 1.3 2003/11/09 02:34:02 dillon Exp $
+ * $DragonFly: src/lib/libc/stdio/vsprintf.c,v 1.4 2005/01/31 22:29:40 dillon Exp $
  */
 
 #include <stdio.h>
 #include <stdarg.h>
 #include <limits.h>
+#include "local.h"
 
 int
 vsprintf(char *str, const char *fmt, va_list ap)
@@ -52,7 +53,7 @@ vsprintf(char *str, const char *fmt, va_list ap)
        f._flags = __SWR | __SSTR;
        f._bf._base = f._p = (unsigned char *)str;
        f._bf._size = f._w = INT_MAX;
-       ret = vfprintf(&f, fmt, ap);
+       ret = __vfprintf(&f, fmt, ap);
        *f._p = 0;
        return (ret);
 }