]> git.saurik.com Git - apple/libc.git/blobdiff - include/unistd.h
Libc-594.9.5.tar.gz
[apple/libc.git] / include / unistd.h
index 0f2a70b6e0dd7bc78afea6e0cf28992e287d640e..d086ae8b26fe2bbbedef1ac4d8bccc6850950c0a 100644 (file)
@@ -1,10 +1,8 @@
 /*
- * Copyright (c) 2000 Apple Computer, Inc. All rights reserved.
+ * Copyright (c) 2000, 2002-2006, 2008, 2009 Apple Inc. All rights reserved.
  *
  * @APPLE_LICENSE_HEADER_START@
  * 
- * Copyright (c) 1999-2003 Apple Computer, Inc.  All Rights Reserved.
- * 
  * This file contains Original Code and/or Modifications of Original Code
  * as defined in and that are subject to the Apple Public Source License
  * Version 2.0 (the 'License'). You may not use this file except in
 #ifndef _UNISTD_H_
 #define        _UNISTD_H_
 
-#include <sys/cdefs.h>
-#include <sys/types.h>
+#include <_types.h>
 #include <sys/unistd.h>
 
+#if !defined(_POSIX_C_SOURCE) || defined(_DARWIN_C_SOURCE)
+#ifndef _DEV_T
+#define        _DEV_T
+typedef __darwin_dev_t         dev_t;
+#endif
+#endif /* (_POSIX_C_SOURCE && !_DARWIN_C_SOURCE) */
+
+#ifndef _GID_T
+#define        _GID_T
+typedef __darwin_gid_t         gid_t;
+#endif
+
+#ifndef _INTPTR_T
+#define        _INTPTR_T
+typedef __darwin_intptr_t      intptr_t;
+#endif
+
+#if !defined(_POSIX_C_SOURCE) || defined(_DARWIN_C_SOURCE)
+#ifndef _MODE_T
+#define        _MODE_T
+typedef __darwin_mode_t                mode_t;
+#endif
+#endif /* (_POSIX_C_SOURCE && !_DARWIN_C_SOURCE) */
+
+#ifndef _OFF_T
+#define        _OFF_T
+typedef __darwin_off_t         off_t;
+#endif
+
+#ifndef _PID_T
+#define        _PID_T
+typedef __darwin_pid_t         pid_t;
+#endif
+
+#ifndef _SIZE_T
+#define        _SIZE_T
+/* DO NOT REMOVE THIS COMMENT: fixincludes needs to see:
+ * _GCC_SIZE_T */
+typedef __darwin_size_t                size_t;
+#endif
+
+#ifndef        _SSIZE_T
+#define        _SSIZE_T
+typedef        __darwin_ssize_t        ssize_t;
+#endif
+
+#ifndef _UID_T
+#define        _UID_T
+typedef __darwin_uid_t         uid_t;  /* user id      */
+#endif
+
+#ifndef _USECONDS_T
+#define        _USECONDS_T
+typedef __darwin_useconds_t    useconds_t;
+#endif
+
+#if !defined(_POSIX_C_SOURCE) || defined(_DARWIN_C_SOURCE)
+#ifndef _UUID_T
+#define        _UUID_T
+typedef __darwin_uuid_t                uuid_t;
+#endif /* _UUID_T */
+#endif /* (_POSIX_C_SOURCE && !_DARWIN_C_SOURCE) */
+
 #define         STDIN_FILENO   0       /* standard input file descriptor */
 #define        STDOUT_FILENO   1       /* standard output file descriptor */
 #define        STDERR_FILENO   2       /* standard error file descriptor */
 
 #ifndef NULL
-#define        NULL            0       /* null pointer constant */
-#endif
+#define        NULL __DARWIN_NULL
+#endif /* ! NULL */
+
+/* Version test macros */
+/* _POSIX_VERSION and _POSIX2_VERSION from sys/unistd.h */
+#define        _XOPEN_VERSION                  600             /* [XSI] */
+#define        _XOPEN_XCU_VERSION              4               /* Older standard */
+
+
+/* Please keep this list in the same order as the applicable standard */
+#define        _POSIX_ADVISORY_INFO            (-1)            /* [ADV] */
+#define        _POSIX_ASYNCHRONOUS_IO          (-1)            /* [AIO] */
+#define        _POSIX_BARRIERS                 (-1)            /* [BAR] */
+#define        _POSIX_CHOWN_RESTRICTED         200112L
+#define        _POSIX_CLOCK_SELECTION          (-1)            /* [CS] */
+#define        _POSIX_CPUTIME                  (-1)            /* [CPT] */
+#define        _POSIX_FSYNC                    200112L         /* [FSC] */
+#define        _POSIX_IPV6                     200112L
+#define        _POSIX_JOB_CONTROL              200112L
+#define        _POSIX_MAPPED_FILES             200112L         /* [MF] */
+#define        _POSIX_MEMLOCK                  (-1)            /* [ML] */
+#define        _POSIX_MEMLOCK_RANGE            (-1)            /* [MR] */
+#define        _POSIX_MEMORY_PROTECTION        200112L         /* [MPR] */
+#define        _POSIX_MESSAGE_PASSING          (-1)            /* [MSG] */
+#define        _POSIX_MONOTONIC_CLOCK          (-1)            /* [MON] */
+#define        _POSIX_NO_TRUNC                 200112L
+#define        _POSIX_PRIORITIZED_IO           (-1)            /* [PIO] */
+#define        _POSIX_PRIORITY_SCHEDULING      (-1)            /* [PS] */
+#define        _POSIX_RAW_SOCKETS              (-1)            /* [RS] */
+#define        _POSIX_READER_WRITER_LOCKS      200112L         /* [THR] */
+#define        _POSIX_REALTIME_SIGNALS         (-1)            /* [RTS] */
+#define        _POSIX_REGEXP                   200112L
+#define        _POSIX_SAVED_IDS                200112L         /* XXX required */
+#define        _POSIX_SEMAPHORES               (-1)            /* [SEM] */
+#define        _POSIX_SHARED_MEMORY_OBJECTS    (-1)            /* [SHM] */
+#define        _POSIX_SHELL                    200112L
+#define        _POSIX_SPAWN                    (-1)            /* [SPN] */
+#define        _POSIX_SPIN_LOCKS               (-1)            /* [SPI] */
+#define        _POSIX_SPORADIC_SERVER          (-1)            /* [SS] */
+#define        _POSIX_SYNCHRONIZED_IO          (-1)            /* [SIO] */
+#define        _POSIX_THREAD_ATTR_STACKADDR    200112L         /* [TSA] */
+#define        _POSIX_THREAD_ATTR_STACKSIZE    200112L         /* [TSS] */
+#define        _POSIX_THREAD_CPUTIME           (-1)            /* [TCT] */
+#define        _POSIX_THREAD_PRIO_INHERIT      (-1)            /* [TPI] */
+#define        _POSIX_THREAD_PRIO_PROTECT      (-1)            /* [TPP] */
+#define        _POSIX_THREAD_PRIORITY_SCHEDULING       (-1)    /* [TPS] */
+#define        _POSIX_THREAD_PROCESS_SHARED    200112L         /* [TSH] */
+#define        _POSIX_THREAD_SAFE_FUNCTIONS    200112L         /* [TSF] */
+#define        _POSIX_THREAD_SPORADIC_SERVER   (-1)            /* [TSP] */
+#define        _POSIX_THREADS                  200112L         /* [THR] */
+#define        _POSIX_TIMEOUTS                 (-1)            /* [TMO] */
+#define        _POSIX_TIMERS                   (-1)            /* [TMR] */
+#define        _POSIX_TRACE                    (-1)            /* [TRC] */
+#define        _POSIX_TRACE_EVENT_FILTER       (-1)            /* [TEF] */
+#define        _POSIX_TRACE_INHERIT            (-1)            /* [TRI] */
+#define        _POSIX_TRACE_LOG                (-1)            /* [TRL] */
+#define        _POSIX_TYPED_MEMORY_OBJECTS     (-1)            /* [TYM] */
+#ifndef _POSIX_VDISABLE
+#define        _POSIX_VDISABLE                 0xff            /* same as sys/termios.h */
+#endif /* _POSIX_VDISABLE */
+
+#define        _POSIX2_C_BIND                  200112L
+#define        _POSIX2_C_DEV                   200112L         /* c99 command */
+#define        _POSIX2_CHAR_TERM               200112L
+#define        _POSIX2_FORT_DEV                (-1)            /* fort77 command */
+#define        _POSIX2_FORT_RUN                200112L
+#define        _POSIX2_LOCALEDEF               200112L         /* localedef command */
+#define        _POSIX2_PBS                     (-1)
+#define        _POSIX2_PBS_ACCOUNTING          (-1)
+#define        _POSIX2_PBS_CHECKPOINT          (-1)
+#define        _POSIX2_PBS_LOCATE              (-1)
+#define        _POSIX2_PBS_MESSAGE             (-1)
+#define        _POSIX2_PBS_TRACK               (-1)
+#define        _POSIX2_SW_DEV                  200112L
+#define        _POSIX2_UPE                     200112L /* XXXX no fc, newgrp, tabs */
+
+#define        _V6_ILP32_OFF32                 (-1)
+#define        _V6_ILP32_OFFBIG                (1)
+#define        _V6_LP64_OFF64                  (-1)
+#define        _V6_LPBIG_OFFBIG                (-1)
+
+#define        _XBS5_ILP32_OFF32               _V6_ILP32_OFF32         /* legacy */
+#define        _XBS5_ILP32_OFFBIG              _V6_ILP32_OFFBIG        /* legacy */
+#define        _XBS5_LP64_OFF64                _V6_LP64_OFF64          /* legacy */
+#define        _XBS5_LPBIG_OFFBIG              _V6_LPBIG_OFFBIG        /* legacy */
+
+#define        _XOPEN_CRYPT                    (1)
+#define        _XOPEN_ENH_I18N                 (1)             /* XXX required */
+#define        _XOPEN_LEGACY                   (-1)    /* no ftime gcvt, wcswcs */
+#define        _XOPEN_REALTIME                 (-1)    /* no q'ed signals, mq_* */
+#define        _XOPEN_REALTIME_THREADS         (-1)    /* no posix_spawn, et. al. */
+#define        _XOPEN_SHM                      (1)
+#define        _XOPEN_STREAMS                  (-1)
+#define        _XOPEN_UNIX                     (1)
+
 
-#define _POSIX_THREADS         /* We support pthreads */
+#define        F_ULOCK         0      /* unlock locked section */
+#define        F_LOCK          1      /* lock a section for exclusive use */
+#define        F_TLOCK         2      /* test and lock a section for exclusive use */
+#define        F_TEST          3      /* test a section for locks by other procs */
 
-#ifndef _POSIX_SOURCE
-#define F_ULOCK         0      /* unlock locked section */
-#define F_LOCK          1      /* lock a section for exclusive use */
-#define F_TLOCK         2      /* test and lock a section for exclusive use */
-#define F_TEST          3      /* test a section for locks by other procs */
+/* configurable system variables */
+#define        _SC_ARG_MAX                      1
+#define        _SC_CHILD_MAX                    2
+#define        _SC_CLK_TCK                      3
+#define        _SC_NGROUPS_MAX                  4
+#define        _SC_OPEN_MAX                     5
+#define        _SC_JOB_CONTROL                  6
+#define        _SC_SAVED_IDS                    7
+#define        _SC_VERSION                      8
+#define        _SC_BC_BASE_MAX                  9
+#define        _SC_BC_DIM_MAX                  10
+#define        _SC_BC_SCALE_MAX                11
+#define        _SC_BC_STRING_MAX               12
+#define        _SC_COLL_WEIGHTS_MAX            13
+#define        _SC_EXPR_NEST_MAX               14
+#define        _SC_LINE_MAX                    15
+#define        _SC_RE_DUP_MAX                  16
+#define        _SC_2_VERSION                   17
+#define        _SC_2_C_BIND                    18
+#define        _SC_2_C_DEV                     19
+#define        _SC_2_CHAR_TERM                 20
+#define        _SC_2_FORT_DEV                  21
+#define        _SC_2_FORT_RUN                  22
+#define        _SC_2_LOCALEDEF                 23
+#define        _SC_2_SW_DEV                    24
+#define        _SC_2_UPE                       25
+#define        _SC_STREAM_MAX                  26
+#define        _SC_TZNAME_MAX                  27
+#define        _SC_ASYNCHRONOUS_IO             28
+#define        _SC_PAGESIZE                    29
+#define        _SC_MEMLOCK                     30
+#define        _SC_MEMLOCK_RANGE               31
+#define        _SC_MEMORY_PROTECTION           32
+#define        _SC_MESSAGE_PASSING             33
+#define        _SC_PRIORITIZED_IO              34
+#define        _SC_PRIORITY_SCHEDULING         35
+#define        _SC_REALTIME_SIGNALS            36
+#define        _SC_SEMAPHORES                  37
+#define        _SC_FSYNC                       38
+#define        _SC_SHARED_MEMORY_OBJECTS       39
+#define        _SC_SYNCHRONIZED_IO             40
+#define        _SC_TIMERS                      41
+#define        _SC_AIO_LISTIO_MAX              42
+#define        _SC_AIO_MAX                     43
+#define        _SC_AIO_PRIO_DELTA_MAX          44
+#define        _SC_DELAYTIMER_MAX              45
+#define        _SC_MQ_OPEN_MAX                 46
+#define        _SC_MAPPED_FILES                47      /* swap _SC_PAGESIZE vs. BSD */
+#define        _SC_RTSIG_MAX                   48
+#define        _SC_SEM_NSEMS_MAX               49
+#define        _SC_SEM_VALUE_MAX               50
+#define        _SC_SIGQUEUE_MAX                51
+#define        _SC_TIMER_MAX                   52
+#if !defined(_POSIX_C_SOURCE) || defined(_DARWIN_C_SOURCE)
+#define        _SC_NPROCESSORS_CONF            57
+#define        _SC_NPROCESSORS_ONLN            58
+#endif /* !_POSIX_C_SOURCE || _DARWIN_C_SOURCE */
+#define        _SC_2_PBS                       59
+#define        _SC_2_PBS_ACCOUNTING            60
+#define        _SC_2_PBS_CHECKPOINT            61
+#define        _SC_2_PBS_LOCATE                62
+#define        _SC_2_PBS_MESSAGE               63
+#define        _SC_2_PBS_TRACK                 64
+#define        _SC_ADVISORY_INFO               65
+#define        _SC_BARRIERS                    66
+#define        _SC_CLOCK_SELECTION             67
+#define        _SC_CPUTIME                     68
+#define        _SC_FILE_LOCKING                69
+#define        _SC_GETGR_R_SIZE_MAX            70
+#define        _SC_GETPW_R_SIZE_MAX            71
+#define        _SC_HOST_NAME_MAX               72
+#define        _SC_LOGIN_NAME_MAX              73
+#define        _SC_MONOTONIC_CLOCK             74
+#define        _SC_MQ_PRIO_MAX                 75
+#define        _SC_READER_WRITER_LOCKS         76
+#define        _SC_REGEXP                      77
+#define        _SC_SHELL                       78
+#define        _SC_SPAWN                       79
+#define        _SC_SPIN_LOCKS                  80
+#define        _SC_SPORADIC_SERVER             81
+#define        _SC_THREAD_ATTR_STACKADDR       82
+#define        _SC_THREAD_ATTR_STACKSIZE       83
+#define        _SC_THREAD_CPUTIME              84
+#define        _SC_THREAD_DESTRUCTOR_ITERATIONS 85
+#define        _SC_THREAD_KEYS_MAX             86
+#define        _SC_THREAD_PRIO_INHERIT         87
+#define        _SC_THREAD_PRIO_PROTECT         88
+#define        _SC_THREAD_PRIORITY_SCHEDULING  89
+#define        _SC_THREAD_PROCESS_SHARED       90
+#define        _SC_THREAD_SAFE_FUNCTIONS       91
+#define        _SC_THREAD_SPORADIC_SERVER      92
+#define        _SC_THREAD_STACK_MIN            93
+#define        _SC_THREAD_THREADS_MAX          94
+#define        _SC_TIMEOUTS                    95
+#define        _SC_THREADS                     96
+#define        _SC_TRACE                       97
+#define        _SC_TRACE_EVENT_FILTER          98
+#define        _SC_TRACE_INHERIT               99
+#define        _SC_TRACE_LOG                   100
+#define        _SC_TTY_NAME_MAX                101
+#define        _SC_TYPED_MEMORY_OBJECTS        102
+#define        _SC_V6_ILP32_OFF32              103
+#define        _SC_V6_ILP32_OFFBIG             104
+#define        _SC_V6_LP64_OFF64               105
+#define        _SC_V6_LPBIG_OFFBIG             106
+#define        _SC_IPV6                        118
+#define        _SC_RAW_SOCKETS                 119
+#define        _SC_SYMLOOP_MAX                 120
+#define        _SC_ATEXIT_MAX                  107
+#define        _SC_IOV_MAX                     56
+#define        _SC_PAGE_SIZE                   _SC_PAGESIZE
+#define        _SC_XOPEN_CRYPT                 108
+#define        _SC_XOPEN_ENH_I18N              109
+#define        _SC_XOPEN_LEGACY                110
+#define        _SC_XOPEN_REALTIME              111
+#define        _SC_XOPEN_REALTIME_THREADS      112
+#define        _SC_XOPEN_SHM                   113
+#define        _SC_XOPEN_STREAMS               114
+#define        _SC_XOPEN_UNIX                  115
+#define        _SC_XOPEN_VERSION               116
+#define        _SC_XOPEN_XCU_VERSION           121
+#define        _SC_XBS5_ILP32_OFF32            122
+#define        _SC_XBS5_ILP32_OFFBIG           123
+#define        _SC_XBS5_LP64_OFF64             124
+#define        _SC_XBS5_LPBIG_OFFBIG           125
+#define        _SC_SS_REPL_MAX                 126
+#define        _SC_TRACE_EVENT_NAME_MAX        127
+#define        _SC_TRACE_NAME_MAX              128
+#define        _SC_TRACE_SYS_MAX               129
+#define        _SC_TRACE_USER_EVENT_MAX        130
+#define        _SC_PASS_MAX                    131
+
+#ifndef _CS_PATH       /* XXX temporary #ifdef'ed for <sys/unistd.h> */
+#define        _CS_PATH                                1
 #endif
+#define        _CS_POSIX_V6_ILP32_OFF32_CFLAGS         2
+#define        _CS_POSIX_V6_ILP32_OFF32_LDFLAGS        3
+#define        _CS_POSIX_V6_ILP32_OFF32_LIBS           4
+#define        _CS_POSIX_V6_ILP32_OFFBIG_CFLAGS        5
+#define        _CS_POSIX_V6_ILP32_OFFBIG_LDFLAGS       6
+#define        _CS_POSIX_V6_ILP32_OFFBIG_LIBS          7
+#define        _CS_POSIX_V6_LP64_OFF64_CFLAGS          8
+#define        _CS_POSIX_V6_LP64_OFF64_LDFLAGS         9
+#define        _CS_POSIX_V6_LP64_OFF64_LIBS            10
+#define        _CS_POSIX_V6_LPBIG_OFFBIG_CFLAGS        11
+#define        _CS_POSIX_V6_LPBIG_OFFBIG_LDFLAGS       12
+#define        _CS_POSIX_V6_LPBIG_OFFBIG_LIBS          13
+#define        _CS_POSIX_V6_WIDTH_RESTRICTED_ENVS      14
+
+/* reserved for compatibility with Issue 5 */
+#define        _CS_XBS5_ILP32_OFF32_CFLAGS             20
+#define        _CS_XBS5_ILP32_OFF32_LDFLAGS            21
+#define        _CS_XBS5_ILP32_OFF32_LIBS               22
+#define        _CS_XBS5_ILP32_OFF32_LINTFLAGS          23
+#define        _CS_XBS5_ILP32_OFFBIG_CFLAGS            24
+#define        _CS_XBS5_ILP32_OFFBIG_LDFLAGS           25
+#define        _CS_XBS5_ILP32_OFFBIG_LIBS              26
+#define        _CS_XBS5_ILP32_OFFBIG_LINTFLAGS         27
+#define        _CS_XBS5_LP64_OFF64_CFLAGS              28
+#define        _CS_XBS5_LP64_OFF64_LDFLAGS             29
+#define        _CS_XBS5_LP64_OFF64_LIBS                30
+#define        _CS_XBS5_LP64_OFF64_LINTFLAGS           31
+#define        _CS_XBS5_LPBIG_OFFBIG_CFLAGS            32
+#define        _CS_XBS5_LPBIG_OFFBIG_LDFLAGS           33
+#define        _CS_XBS5_LPBIG_OFFBIG_LIBS              34
+#define        _CS_XBS5_LPBIG_OFFBIG_LINTFLAGS         35
+
+#define        _CS_DARWIN_USER_DIR                     65536
+#define        _CS_DARWIN_USER_TEMP_DIR                65537
+#define        _CS_DARWIN_USER_CACHE_DIR               65538
 
 __BEGIN_DECLS
-__dead void
-        _exit __P((int));
-int     access __P((const char *, int));
-unsigned int    alarm __P((unsigned int));
-int     chdir __P((const char *));
-int     chown __P((const char *, uid_t, gid_t));
-int     close __P((int));
-size_t  confstr __P((int, char *, size_t));
-int     dup __P((int));
-int     dup2 __P((int, int));
-int     execl __P((const char *, const char *, ...));
-int     execle __P((const char *, const char *, ...));
-int     execlp __P((const char *, const char *, ...));
-int     execv __P((const char *, char * const *));
-int     execve __P((const char *, char * const *, char * const *));
-int     execvp __P((const char *, char * const *));
-pid_t   fork __P((void));
-long    fpathconf __P((int, int));
-char   *getcwd __P((char *, size_t));
-gid_t   getegid __P((void));
-uid_t   geteuid __P((void));
-gid_t   getgid __P((void));
-int     getgroups __P((int, gid_t []));
-char   *getlogin __P((void));
-pid_t   getpgrp __P((void));
-pid_t   getpid __P((void));
-pid_t   getppid __P((void));
-uid_t   getuid __P((void));
-int     isatty __P((int));
-int     link __P((const char *, const char *));
-off_t   lseek __P((int, off_t, int));
-long    pathconf __P((const char *, int));
-int     pause __P((void));
-int     pipe __P((int *));
-ssize_t         read __P((int, void *, size_t));
-int     rmdir __P((const char *));
-int     setgid __P((gid_t));
-int     setpgid __P((pid_t, pid_t));
-pid_t   setsid __P((void));
-int     setuid __P((uid_t));
-unsigned int    sleep __P((unsigned int));
-long    sysconf __P((int));
-pid_t   tcgetpgrp __P((int));
-int     tcsetpgrp __P((int, pid_t));
-char   *ttyname __P((int));
-int     unlink __P((const char *));
-ssize_t         write __P((int, const void *, size_t));
+
+void    _exit(int) __dead2;
+int     access(const char *, int);
+unsigned int
+        alarm(unsigned int);
+int     chdir(const char *);
+int     chown(const char *, uid_t, gid_t);
+//Begin-Libc
+#ifndef LIBC_ALIAS_CLOSE
+//End-Libc
+int     close(int) __DARWIN_ALIAS_C(close);
+//Begin-Libc
+#else /* LIBC_ALIAS_CLOSE */
+int     close(int) LIBC_ALIAS_C(close);
+#endif /* !LIBC_ALIAS_CLOSE */
+//End-Libc
+//Begin-Libc
+#ifndef LIBC_ALIAS_CONFSTR
+//End-Libc
+size_t  confstr(int, char *, size_t) __DARWIN_ALIAS(confstr);
+//Begin-Libc
+#else /* LIBC_ALIAS_CONFSTR */
+size_t  confstr(int, char *, size_t) LIBC_ALIAS(confstr);
+#endif /* !LIBC_ALIAS_CONFSTR */
+//End-Libc
+char   *crypt(const char *, const char *);
+char   *ctermid(char *);
+int     dup(int);
+int     dup2(int, int);
+#if __DARWIN_UNIX03
+//Begin-Libc
+#ifndef LIBC_ALIAS_ENCRYPT
+//End-Libc
+void    encrypt(char *, int) __DARWIN_ALIAS(encrypt);
+//Begin-Libc
+#else /* LIBC_ALIAS_ENCRYPT */
+void    encrypt(char *, int) LIBC_ALIAS(encrypt);
+#endif /* !LIBC_ALIAS_ENCRYPT */
+//End-Libc
+#else /* !__DARWIN_UNIX03 */
+int     encrypt(char *, int);
+#endif /* __DARWIN_UNIX03 */
+int     execl(const char *, const char *, ...);
+int     execle(const char *, const char *, ...);
+int     execlp(const char *, const char *, ...);
+int     execv(const char *, char * const *);
+int     execve(const char *, char * const *, char * const *);
+int     execvp(const char *, char * const *);
+int     fchown(int, uid_t, gid_t);
+int     fchdir(int);
+pid_t   fork(void);
+long    fpathconf(int, int);
+//Begin-Libc
+#ifndef LIBC_ALIAS_FSYNC
+//End-Libc
+int     fsync(int) __DARWIN_ALIAS_C(fsync);
+//Begin-Libc
+#else /* LIBC_ALIAS_FSYNC */
+int     fsync(int) LIBC_ALIAS_C(fsync);
+#endif /* !LIBC_ALIAS_FSYNC */
+//End-Libc
+int     ftruncate(int, off_t);
+char   *getcwd(char *, size_t);
+gid_t   getegid(void);
+uid_t   geteuid(void);
+gid_t   getgid(void);
+#if defined(_DARWIN_UNLIMITED_GETGROUPS) || defined(_DARWIN_C_SOURCE)
+int     getgroups(int, gid_t []) __DARWIN_EXTSN(getgroups);
+#else /* !_DARWIN_UNLIMITED_GETGROUPS && !_DARWIN_C_SOURCE */
+int     getgroups(int, gid_t []);
+#endif /* _DARWIN_UNLIMITED_GETGROUPS || _DARWIN_C_SOURCE */
+long    gethostid(void);
+int     gethostname(char *, size_t);
+char   *getlogin(void);
+int     getlogin_r(char *, size_t);
+//Begin-Libc
+#ifndef LIBC_ALIAS_GETOPT
+//End-Libc
+int     getopt(int, char * const [], const char *) __DARWIN_ALIAS(getopt);
+//Begin-Libc
+#else /* LIBC_ALIAS_GETOPT */
+int     getopt(int, char * const [], const char *) LIBC_ALIAS(getopt);
+#endif /* !LIBC_ALIAS_GETOPT */
+//End-Libc
+pid_t   getpgid(pid_t);
+pid_t   getpgrp(void);
+pid_t   getpid(void);
+pid_t   getppid(void);
+pid_t   getsid(pid_t);
+uid_t   getuid(void);
+char   *getwd(char *);                 /* obsoleted by getcwd() */
+int     isatty(int);
+//Begin-Libc
+#ifndef LIBC_ALIAS_LCHOWN
+//End-Libc
+int     lchown(const char *, uid_t, gid_t) __DARWIN_ALIAS(lchown);
+//Begin-Libc
+#else /* LIBC_ALIAS_LCHOWN */
+int     lchown(const char *, uid_t, gid_t) LIBC_ALIAS(lchown);
+#endif /* !LIBC_ALIAS_LCHOWN */
+//End-Libc
+int     link(const char *, const char *);
+//Begin-Libc
+#ifndef LIBC_ALIAS_LOCKF
+//End-Libc
+int     lockf(int, int, off_t) __DARWIN_ALIAS_C(lockf);
+//Begin-Libc
+#else /* LIBC_ALIAS_LOCKF */
+int     lockf(int, int, off_t) LIBC_ALIAS_C(lockf);
+#endif /* !LIBC_ALIAS_LOCKF */
+//End-Libc
+off_t   lseek(int, off_t, int);
+//Begin-Libc
+#ifndef LIBC_ALIAS_NICE
+//End-Libc
+int     nice(int) __DARWIN_ALIAS(nice);
+//Begin-Libc
+#else /* LIBC_ALIAS_NICE */
+int     nice(int) LIBC_ALIAS(nice);
+#endif /* !LIBC_ALIAS_NICE */
+//End-Libc
+long    pathconf(const char *, int);
+//Begin-Libc
+#ifndef LIBC_ALIAS_PAUSE
+//End-Libc
+int     pause(void) __DARWIN_ALIAS_C(pause);
+//Begin-Libc
+#else /* LIBC_ALIAS_PAUSE */
+int     pause(void) LIBC_ALIAS_C(pause);
+#endif /* !LIBC_ALIAS_PAUSE */
+//End-Libc
+int     pipe(int [2]);
+//Begin-Libc
+#ifndef LIBC_ALIAS_PREAD
+//End-Libc
+ssize_t         pread(int, void *, size_t, off_t) __DARWIN_ALIAS_C(pread);
+//Begin-Libc
+#else /* LIBC_ALIAS_PREAD */
+ssize_t         pread(int, void *, size_t, off_t) LIBC_ALIAS_C(pread);
+#endif /* !LIBC_ALIAS_PREAD */
+//End-Libc
+//Begin-Libc
+#ifndef LIBC_ALIAS_PWRITE
+//End-Libc
+ssize_t         pwrite(int, const void *, size_t, off_t) __DARWIN_ALIAS_C(pwrite);
+//Begin-Libc
+#else /* LIBC_ALIAS_PWRITE */
+ssize_t         pwrite(int, const void *, size_t, off_t) LIBC_ALIAS_C(pwrite);
+#endif /* !LIBC_ALIAS_PWRITE */
+//End-Libc
+//Begin-Libc
+#ifndef LIBC_ALIAS_READ
+//End-Libc
+ssize_t         read(int, void *, size_t) __DARWIN_ALIAS_C(read);
+//Begin-Libc
+#else /* LIBC_ALIAS_READ */
+ssize_t         read(int, void *, size_t) LIBC_ALIAS_C(read);
+#endif /* !LIBC_ALIAS_READ */
+//End-Libc
+ssize_t  readlink(const char * __restrict, char * __restrict, size_t);
+int     rmdir(const char *);
+int     setegid(gid_t);
+int     seteuid(uid_t);
+int     setgid(gid_t);
+int     setpgid(pid_t, pid_t);
+#if __DARWIN_UNIX03
+//Begin-Libc
+#ifndef LIBC_ALIAS_SETPGRP
+//End-Libc
+pid_t   setpgrp(void) __DARWIN_ALIAS(setpgrp);
+//Begin-Libc
+#else /* LIBC_ALIAS_SETPGRP */
+pid_t   setpgrp(void) LIBC_ALIAS(setpgrp);
+#endif /* !LIBC_ALIAS_SETPGRP */
+//End-Libc
+#else /* !__DARWIN_UNIX03 */
+int     setpgrp(pid_t pid, pid_t pgrp);        /* obsoleted by setpgid() */
+#endif /* __DARWIN_UNIX03 */
+//Begin-Libc
+#ifndef LIBC_ALIAS_SETREGID
+//End-Libc
+int     setregid(gid_t, gid_t) __DARWIN_ALIAS(setregid);
+//Begin-Libc
+#else /* LIBC_ALIAS_SETREGID */
+int     setregid(gid_t, gid_t) LIBC_ALIAS(setregid);
+#endif /* !LIBC_ALIAS_SETREGID */
+//End-Libc
+//Begin-Libc
+#ifndef LIBC_ALIAS_SETREUID
+//End-Libc
+int     setreuid(uid_t, uid_t) __DARWIN_ALIAS(setreuid);
+//Begin-Libc
+#else /* LIBC_ALIAS_SETREUID */
+int     setreuid(uid_t, uid_t) LIBC_ALIAS(setreuid);
+#endif /* !LIBC_ALIAS_SETREUID */
+//End-Libc
+pid_t   setsid(void);
+int     setuid(uid_t);
+//Begin-Libc
+#ifndef LIBC_ALIAS_SLEEP
+//End-Libc
+unsigned int
+        sleep(unsigned int) __DARWIN_ALIAS_C(sleep);
+//Begin-Libc
+#else /* LIBC_ALIAS_SLEEP */
+unsigned int
+        sleep(unsigned int) LIBC_ALIAS_C(sleep);
+#endif /* !LIBC_ALIAS_SLEEP */
+//End-Libc
+void     swab(const void * __restrict, void * __restrict, ssize_t);
+int     symlink(const char *, const char *);
+void    sync(void);
+long    sysconf(int);
+pid_t   tcgetpgrp(int);
+int     tcsetpgrp(int, pid_t);
+int     truncate(const char *, off_t);
+char   *ttyname(int);
+#if __DARWIN_UNIX03
+//Begin-Libc
+#ifndef LIBC_ALIAS_TTYNAME_R
+//End-Libc
+int     ttyname_r(int, char *, size_t) __DARWIN_ALIAS(ttyname_r);
+//Begin-Libc
+#else /* LIBC_ALIAS_TTYNAME_R */
+int     ttyname_r(int, char *, size_t) LIBC_ALIAS(ttyname_r);
+#endif /* !LIBC_ALIAS_TTYNAME_R */
+//End-Libc
+#else /* !__DARWIN_UNIX03 */
+char   *ttyname_r(int, char *, size_t);
+#endif /* __DARWIN_UNIX03 */
+useconds_t
+        ualarm(useconds_t, useconds_t);
+int     unlink(const char *);
+//Begin-Libc
+#ifndef LIBC_ALIAS_USLEEP
+//End-Libc
+int     usleep(useconds_t) __DARWIN_ALIAS_C(usleep);
+//Begin-Libc
+#else /* LIBC_ALIAS_USLEEP */
+int     usleep(useconds_t) LIBC_ALIAS_C(usleep);
+#endif /* !LIBC_ALIAS_USLEEP */
+//End-Libc
+pid_t   vfork(void);
+//Begin-Libc
+#ifndef LIBC_ALIAS_WRITE
+//End-Libc
+ssize_t         write(int, const void *, size_t) __DARWIN_ALIAS_C(write);
+//Begin-Libc
+#else /* LIBC_ALIAS_WRITE */
+ssize_t         write(int, const void *, size_t) LIBC_ALIAS_C(write);
+#endif /* !LIBC_ALIAS_WRITE */
+//End-Libc
 
 extern char *optarg;                   /* getopt(3) external variables */
-extern int optind, opterr, optopt, optreset;
-int     getopt __P((int, char * const [], const char *));
+extern int optind, opterr, optopt;
 
-#ifndef        _POSIX_SOURCE
-#ifdef __STDC__
-struct timeval;                                /* select(2) */
-#endif
-int     acct __P((const char *));
-int     async_daemon __P((void));
-char   *brk __P((const char *));
-int     chroot __P((const char *));
-char   *crypt __P((const char *, const char *));
-int     des_cipher __P((const char *, char *, long, int));
-int     des_setkey __P((const char *key));
-int     encrypt __P((char *, int));
-void    endusershell __P((void));
-int     exect __P((const char *, char * const *, char * const *));
-int     fchdir __P((int));
-int     fchown __P((int, int, int));
-char   *fflagstostr __P((u_long));
-int     fsync __P((int));
-int     ftruncate __P((int, off_t));
-int     getdtablesize __P((void));
-int     getgrouplist __P((const char *, int, int *, int *));
-long    gethostid __P((void));
-int     gethostname __P((char *, int));
-mode_t  getmode __P((const void *, mode_t));
-__pure int
-        getpagesize __P((void));
-char   *getpass __P((const char *));
-int     getpgid __P((pid_t _pid));
-int     getsid __P((pid_t _pid));
-char   *getusershell __P((void));
-char   *getwd __P((char *));                   /* obsoleted by getcwd() */
-int     initgroups __P((const char *, int));
-int     iruserok __P((unsigned long, int, const char *, const char *));
-int     issetugid __P((void));
-char   *mkdtemp __P((char *));
-int     mknod __P((const char *, mode_t, dev_t));
-int     mkstemp __P((char *));
-int     mkstemps __P((char *, int));
-char   *mktemp __P((char *));
-int     nfssvc __P((int, void *));
-int     nice __P((int));
-ssize_t         pread __P((int, void *, size_t, off_t));
-#if 0
-void    psignal __P((unsigned int, const char *));
-extern __const char *__const sys_siglist[];
-#else
-#include <signal.h>
-#endif
-int     profil __P((char *, int, int, int));
-ssize_t         pwrite __P((int, const void *, size_t, off_t));
-int     rcmd __P((char **, int, const char *,
-               const char *, const char *, int *));
-char   *re_comp __P((const char *));
-int     re_exec __P((const char *));
-int     readlink __P((const char *, char *, int));
-int     reboot __P((int));
-int     revoke __P((const char *));
-int     rresvport __P((int *));
-int     ruserok __P((const char *, int, const char *, const char *));
-char   *sbrk __P((int));
-int     select __P((int, fd_set *, fd_set *, fd_set *, struct timeval *));
-int     setegid __P((gid_t));
-int     seteuid __P((uid_t));
-int     setgroups __P((int, const gid_t *));
-void    sethostid __P((long));
-int     sethostname __P((const char *, int));
-int     setkey __P((const char *));
-int     setlogin __P((const char *));
-void   *setmode __P((const char *));
-int     setpgrp __P((pid_t pid, pid_t pgrp));  /* obsoleted by setpgid() */
-int     setregid __P((gid_t, gid_t));
-int     setreuid __P((uid_t, uid_t));
-int     setrgid __P((gid_t));
-int     setruid __P((uid_t));
-void    setusershell __P((void));
-int     strtofflags __P((char **, u_long *, u_long *));
-int     swapon __P((const char *));
-int     symlink __P((const char *, const char *));
-void    sync __P((void));
-int     syscall __P((int, ...));
-int     truncate __P((const char *, off_t));
-int     ttyslot __P((void));
-unsigned int    ualarm __P((unsigned int, unsigned int));
-int     unwhiteout __P((const char *));
-int     usleep __P((unsigned int));
-void   *valloc __P((size_t));                  
-pid_t   vfork __P((void));
+#if    !defined(_POSIX_C_SOURCE) || defined(_DARWIN_C_SOURCE)
+#include <sys/select.h>
+
+void    _Exit(int) __dead2;
+int     accessx_np(const struct accessx_descriptor *, size_t, int *, uid_t);
+int     acct(const char *);
+int     add_profil(char *, size_t, unsigned long, unsigned int);
+void   *brk(const void *);
+int     chroot(const char *);
+void    endusershell(void);
+int     execvP(const char *, const char *, char * const *);
+char   *fflagstostr(unsigned long);
+int     getdtablesize(void);
+int     getdomainname(char *, int);
+int     getgrouplist(const char *, int, int *, int *);
+int     gethostuuid(uuid_t, const struct timespec *);
+mode_t  getmode(const void *, mode_t);
+int     getpagesize(void) __pure2;
+char   *getpass(const char *);
+int     getpeereid(int, uid_t *, gid_t *);
+int     getpgid(pid_t _pid);
+int     getsgroups_np(int *, uuid_t);
+int     getsid(pid_t _pid);
+char   *getusershell(void);
+int     getwgroups_np(int *, uuid_t);
+int     initgroups(const char *, int);
+int     iruserok(unsigned long, int, const char *, const char *);
+int     iruserok_sa(const void *, int, int, const char *, const char *);
+int     issetugid(void);
+char   *mkdtemp(char *);
+int     mknod(const char *, mode_t, dev_t);
+int     mkstemp(char *);
+int     mkstemps(char *, int);
+char   *mktemp(char *);
+int     nfssvc(int, void *);
+int     profil(char *, size_t, unsigned long, unsigned int);
+int     pthread_setugid_np(uid_t, gid_t);
+int     pthread_getugid_np( uid_t *, gid_t *);
+int     rcmd(char **, int, const char *, const char *, const char *, int *);
+int     rcmd_af(char **, int, const char *, const char *, const char *, int *,
+               int);
+int     reboot(int);
+int     revoke(const char *);
+int     rresvport(int *);
+int     rresvport_af(int *, int);
+int     ruserok(const char *, int, const char *, const char *);
+void   *sbrk(int);
+int     setdomainname(const char *, int);
+int     setgroups(int, const gid_t *);
+void    sethostid(long);
+int     sethostname(const char *, int);
+#if __DARWIN_UNIX03
+//Begin-Libc
+#ifndef LIBC_ALIAS_SETKEY
+//End-Libc
+void    setkey(const char *) __DARWIN_ALIAS(setkey);
+//Begin-Libc
+#else /* LIBC_ALIAS_SETKEY */
+void    setkey(const char *) LIBC_ALIAS(setkey);
+#endif /* !LIBC_ALIAS_SETKEY */
+//End-Libc
+#else /* !__DARWIN_UNIX03 */
+int     setkey(const char *);
+#endif /* __DARWIN_UNIX03 */
+int     setlogin(const char *);
+//Begin-Libc
+#ifndef LIBC_ALIAS_SETMODE
+//End-Libc
+void   *setmode(const char *) __DARWIN_ALIAS(setmode);
+//Begin-Libc
+#else /* LIBC_ALIAS_SETMODE */
+void   *setmode(const char *) LIBC_ALIAS(setmode);
+#endif /* !LIBC_ALIAS_SETMODE */
+//End-Libc
+int     setrgid(gid_t);
+int     setruid(uid_t);
+int     setsgroups_np(int, const uuid_t);
+void    setusershell(void);
+int     setwgroups_np(int, const uuid_t);
+int     strtofflags(char **, unsigned long *, unsigned long *);
+int     swapon(const char *);
+int     syscall(int, ...);
+int     ttyslot(void);
+int     undelete(const char *);
+int     unwhiteout(const char *);
+void   *valloc(size_t);                        
 
 extern char *suboptarg;                        /* getsubopt(3) external variable */
-int     getsubopt __P((char **, char * const *, char **));
+int     getsubopt(char **, char * const *, char **);
 
 /*  HFS & HFS Plus semantics system calls go here */
-int    getattrlist __P((const char*,void*,void*,size_t,unsigned long));
-int    setattrlist __P((const char*,void*,void*,size_t,unsigned long));
-int exchangedata __P((const char*,const char*,unsigned long));
-int    checkuseraccess __P((const char*,uid_t,gid_t*,int,int,unsigned long));
-int    getdirentriesattr __P((int,void*,void*,size_t,unsigned long*,unsigned long*,unsigned long*,unsigned long));
-int    searchfs __P((const char*,void*,void*,unsigned long,unsigned long,void*));
+#ifdef __LP64__
+int    fgetattrlist(int,void*,void*,size_t,unsigned int);
+int    fsetattrlist(int,void*,void*,size_t,unsigned int);
+//Begin-Libc
+#ifndef LIBC_ALIAS_GETATTRLIST
+//End-Libc
+int    getattrlist(const char*,void*,void*,size_t,unsigned int) __DARWIN_ALIAS(getattrlist);
+//Begin-Libc
+#else /* LIBC_ALIAS_GETATTRLIST */
+int    getattrlist(const char*,void*,void*,size_t,unsigned int) LIBC_ALIAS(getattrlist);
+#endif /* !LIBC_ALIAS_GETATTRLIST */
+//End-Libc
+//Begin-Libc
+#ifndef LIBC_ALIAS_SETATTRLIST
+//End-Libc
+int    setattrlist(const char*,void*,void*,size_t,unsigned int) __DARWIN_ALIAS(setattrlist);
+//Begin-Libc
+#else /* LIBC_ALIAS_SETATTRLIST */
+int    setattrlist(const char*,void*,void*,size_t,unsigned int) LIBC_ALIAS(setattrlist);
+#endif /* !LIBC_ALIAS_SETATTRLIST */
+//End-Libc
+int exchangedata(const char*,const char*,unsigned int);
+int    getdirentriesattr(int,void*,void*,size_t,unsigned int*,unsigned int*,unsigned int*,unsigned int);
+
+#else /* __LP64__ */
+int    fgetattrlist(int,void*,void*,size_t,unsigned long);
+int    fsetattrlist(int,void*,void*,size_t,unsigned long);
+//Begin-Libc
+#ifndef LIBC_ALIAS_GETATTRLIST
+//End-Libc
+int    getattrlist(const char*,void*,void*,size_t,unsigned long) __DARWIN_ALIAS(getattrlist);
+//Begin-Libc
+#else /* LIBC_ALIAS_GETATTRLIST */
+int    getattrlist(const char*,void*,void*,size_t,unsigned long) LIBC_ALIAS(getattrlist);
+#endif /* !LIBC_ALIAS_GETATTRLIST */
+//End-Libc
+//Begin-Libc
+#ifndef LIBC_ALIAS_SETATTRLIST
+//End-Libc
+int    setattrlist(const char*,void*,void*,size_t,unsigned long) __DARWIN_ALIAS(setattrlist);
+//Begin-Libc
+#else /* LIBC_ALIAS_SETATTRLIST */
+int    setattrlist(const char*,void*,void*,size_t,unsigned long) LIBC_ALIAS(setattrlist);
+#endif /* !LIBC_ALIAS_SETATTRLIST */
+//End-Libc
+int exchangedata(const char*,const char*,unsigned long);
+int    getdirentriesattr(int,void*,void*,size_t,unsigned long*,unsigned long*,unsigned long*,unsigned long);
+
+#endif /* __LP64__ */
+
+struct fssearchblock;
+struct searchstate;
 
-int fsctl __P((const char *,unsigned long,void*,unsigned long));               
+int     searchfs(const char *, struct fssearchblock *, unsigned long *, unsigned int, unsigned int, struct searchstate *);
+int     fsctl(const char *,unsigned long,void*,unsigned int);
+int     ffsctl(int,unsigned long,void*,unsigned int);
 
+extern int optreset;
 
-#endif /* !_POSIX_SOURCE */
+#endif /* (!_POSIX_C_SOURCE || _DARWIN_C_SOURCE) */
 __END_DECLS
 
 #endif /* !_UNISTD_H_ */