Home | History | Annotate | Line # | Download | only in include
unistd.h revision 1.94
      1  1.94       agc /*	$NetBSD: unistd.h,v 1.94 2003/08/07 09:44:11 agc Exp $	*/
      2  1.22       cgd 
      3   1.1       cgd /*-
      4  1.77    kleink  * Copyright (c) 1998, 1999 The NetBSD Foundation, Inc.
      5  1.55    kleink  * All rights reserved.
      6  1.55    kleink  *
      7  1.55    kleink  * This code is derived from software contributed to The NetBSD Foundation
      8  1.55    kleink  * by Klaus Klein.
      9  1.55    kleink  *
     10  1.55    kleink  * Redistribution and use in source and binary forms, with or without
     11  1.55    kleink  * modification, are permitted provided that the following conditions
     12  1.55    kleink  * are met:
     13  1.55    kleink  * 1. Redistributions of source code must retain the above copyright
     14  1.55    kleink  *    notice, this list of conditions and the following disclaimer.
     15  1.55    kleink  * 2. Redistributions in binary form must reproduce the above copyright
     16  1.55    kleink  *    notice, this list of conditions and the following disclaimer in the
     17  1.55    kleink  *    documentation and/or other materials provided with the distribution.
     18  1.55    kleink  * 3. All advertising materials mentioning features or use of this software
     19  1.55    kleink  *    must display the following acknowledgement:
     20  1.55    kleink  *        This product includes software developed by the NetBSD
     21  1.55    kleink  *        Foundation, Inc. and its contributors.
     22  1.55    kleink  * 4. Neither the name of The NetBSD Foundation nor the names of its
     23  1.55    kleink  *    contributors may be used to endorse or promote products derived
     24  1.55    kleink  *    from this software without specific prior written permission.
     25  1.55    kleink  *
     26  1.55    kleink  * THIS SOFTWARE IS PROVIDED BY THE NETBSD FOUNDATION, INC. AND CONTRIBUTORS
     27  1.55    kleink  * ``AS IS'' AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED
     28  1.55    kleink  * TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
     29  1.55    kleink  * PURPOSE ARE DISCLAIMED.  IN NO EVENT SHALL THE FOUNDATION OR CONTRIBUTORS
     30  1.55    kleink  * BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
     31  1.55    kleink  * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
     32  1.55    kleink  * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
     33  1.55    kleink  * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
     34  1.55    kleink  * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
     35  1.55    kleink  * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
     36  1.55    kleink  * POSSIBILITY OF SUCH DAMAGE.
     37  1.55    kleink  */
     38  1.55    kleink 
     39  1.55    kleink /*
     40  1.49     perry  * Copyright (c) 1991, 1993, 1994
     41  1.49     perry  *	The Regents of the University of California.  All rights reserved.
     42   1.1       cgd  *
     43   1.1       cgd  * Redistribution and use in source and binary forms, with or without
     44   1.1       cgd  * modification, are permitted provided that the following conditions
     45   1.1       cgd  * are met:
     46   1.1       cgd  * 1. Redistributions of source code must retain the above copyright
     47   1.1       cgd  *    notice, this list of conditions and the following disclaimer.
     48   1.1       cgd  * 2. Redistributions in binary form must reproduce the above copyright
     49   1.1       cgd  *    notice, this list of conditions and the following disclaimer in the
     50   1.1       cgd  *    documentation and/or other materials provided with the distribution.
     51  1.94       agc  * 3. Neither the name of the University nor the names of its contributors
     52   1.1       cgd  *    may be used to endorse or promote products derived from this software
     53   1.1       cgd  *    without specific prior written permission.
     54   1.1       cgd  *
     55   1.1       cgd  * THIS SOFTWARE IS PROVIDED BY THE REGENTS AND CONTRIBUTORS ``AS IS'' AND
     56   1.1       cgd  * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
     57   1.1       cgd  * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
     58   1.1       cgd  * ARE DISCLAIMED.  IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE
     59   1.1       cgd  * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
     60   1.1       cgd  * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
     61   1.1       cgd  * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
     62   1.1       cgd  * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
     63   1.1       cgd  * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
     64   1.1       cgd  * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
     65   1.1       cgd  * SUCH DAMAGE.
     66   1.1       cgd  *
     67  1.49     perry  *	@(#)unistd.h	8.12 (Berkeley) 4/27/95
     68   1.1       cgd  */
     69   1.1       cgd 
     70   1.1       cgd #ifndef _UNISTD_H_
     71   1.1       cgd #define	_UNISTD_H_
     72   1.1       cgd 
     73  1.77    kleink #include <machine/ansi.h>
     74  1.85    kleink #include <machine/int_types.h>
     75   1.1       cgd #include <sys/cdefs.h>
     76  1.64   mycroft #include <sys/featuretest.h>
     77   1.1       cgd #include <sys/types.h>
     78   1.1       cgd #include <sys/unistd.h>
     79  1.50    kleink 
     80  1.55    kleink 
     81  1.55    kleink /*
     82  1.55    kleink  * IEEE Std 1003.1-90
     83  1.55    kleink  */
     84   1.4       jtc #define	STDIN_FILENO	0	/* standard input file descriptor */
     85   1.1       cgd #define	STDOUT_FILENO	1	/* standard output file descriptor */
     86   1.1       cgd #define	STDERR_FILENO	2	/* standard error file descriptor */
     87   1.1       cgd 
     88  1.80    kleink #include <sys/null.h>
     89   1.1       cgd 
     90   1.1       cgd __BEGIN_DECLS
     91  1.66   mycroft __dead	 void _exit __P((int)) __attribute__((__noreturn__));
     92   1.1       cgd int	 access __P((const char *, int));
     93  1.65   mycroft unsigned int alarm __P((unsigned int));
     94   1.1       cgd int	 chdir __P((const char *));
     95  1.55    kleink #if defined(_POSIX_C_SOURCE) || defined(_XOPEN_SOURCE)
     96  1.55    kleink int	chown __P((const char *, uid_t, gid_t)) __RENAME(__posix_chown);
     97  1.55    kleink #else
     98  1.55    kleink int	chown __P((const char *, uid_t, gid_t));
     99  1.55    kleink #endif /* defined(_POSIX_C_SOURCE) || defined(_XOPEN_SOURCE) */
    100   1.1       cgd int	 close __P((int));
    101   1.9       jtc size_t	 confstr __P((int, char *, size_t));
    102  1.86  christos #ifndef __CUSERID_DECLARED
    103  1.86  christos #define __CUSERID_DECLARED
    104  1.86  christos /* also declared in stdio.h */
    105  1.55    kleink char	*cuserid __P((char *));	/* obsolete */
    106  1.86  christos #endif /* __CUSERID_DECLARED */
    107   1.1       cgd int	 dup __P((int));
    108   1.1       cgd int	 dup2 __P((int, int));
    109   1.1       cgd int	 execl __P((const char *, const char *, ...));
    110   1.1       cgd int	 execle __P((const char *, const char *, ...));
    111   1.1       cgd int	 execlp __P((const char *, const char *, ...));
    112   1.1       cgd int	 execv __P((const char *, char * const *));
    113   1.1       cgd int	 execve __P((const char *, char * const *, char * const *));
    114   1.1       cgd int	 execvp __P((const char *, char * const *));
    115   1.1       cgd pid_t	 fork __P((void));
    116  1.49     perry long	 fpathconf __P((int, int));
    117   1.1       cgd char	*getcwd __P((char *, size_t));
    118   1.1       cgd gid_t	 getegid __P((void));
    119   1.1       cgd uid_t	 geteuid __P((void));
    120   1.1       cgd gid_t	 getgid __P((void));
    121  1.49     perry int	 getgroups __P((int, gid_t []));
    122  1.62   mycroft __aconst char *getlogin __P((void));
    123   1.3       cgd pid_t	 getpgrp __P((void));
    124   1.1       cgd pid_t	 getpid __P((void));
    125   1.1       cgd pid_t	 getppid __P((void));
    126   1.1       cgd uid_t	 getuid __P((void));
    127   1.1       cgd int	 isatty __P((int));
    128   1.1       cgd int	 link __P((const char *, const char *));
    129  1.49     perry long	 pathconf __P((const char *, int));
    130   1.1       cgd int	 pause __P((void));
    131   1.1       cgd int	 pipe __P((int *));
    132   1.1       cgd ssize_t	 read __P((int, void *, size_t));
    133   1.1       cgd int	 rmdir __P((const char *));
    134   1.1       cgd int	 setgid __P((gid_t));
    135   1.1       cgd int	 setpgid __P((pid_t, pid_t));
    136   1.1       cgd pid_t	 setsid __P((void));
    137   1.1       cgd int	 setuid __P((uid_t));
    138  1.49     perry unsigned int	 sleep __P((unsigned int));
    139  1.49     perry long	 sysconf __P((int));
    140   1.1       cgd pid_t	 tcgetpgrp __P((int));
    141   1.1       cgd int	 tcsetpgrp __P((int, pid_t));
    142  1.62   mycroft __aconst char *ttyname __P((int));
    143   1.1       cgd int	 unlink __P((const char *));
    144   1.1       cgd ssize_t	 write __P((int, const void *, size_t));
    145   1.1       cgd 
    146  1.55    kleink 
    147  1.55    kleink /*
    148  1.83  christos  * IEEE Std 1003.2-92, adopted in X/Open Portability Guide Issue 4 and later
    149  1.83  christos  */
    150  1.92     bjh21 #if (_POSIX_C_SOURCE - 0) >= 2 || (_XOPEN_SOURCE - 0) >= 4 || \
    151  1.92     bjh21     defined(_NETBSD_SOURCE)
    152  1.83  christos int	 getopt __P((int, char * const [], const char *));
    153  1.83  christos 
    154  1.83  christos extern	 char *optarg;			/* getopt(3) external variables */
    155  1.83  christos extern	 int opterr;
    156  1.83  christos extern	 int optind;
    157  1.83  christos extern	 int optopt;
    158  1.83  christos #endif
    159  1.83  christos 
    160  1.89  jdolecek /*
    161  1.91    kleink  * The Open Group Base Specifications, Issue 6; IEEE Std 1003.1-2001 (POSIX)
    162  1.89  jdolecek  */
    163  1.92     bjh21 #if (_POSIX_C_SOURCE - 0) >= 200112L || (_XOPEN_SOURCE - 0) >= 600 || \
    164  1.92     bjh21     defined(_NETBSD_SOURCE)
    165  1.89  jdolecek int	 setegid __P((gid_t));
    166  1.89  jdolecek int	 seteuid __P((uid_t));
    167  1.89  jdolecek #endif
    168  1.83  christos 
    169  1.83  christos /*
    170  1.86  christos  * The following three syscalls are also defined in <sys/types.h>
    171  1.86  christos  * We protect them against double declarations.
    172  1.86  christos  */
    173  1.86  christos #ifndef __OFF_T_SYSCALLS_DECLARED
    174  1.86  christos #define __OFF_T_SYSCALLS_DECLARED
    175  1.86  christos off_t	 lseek __P((int, off_t, int));
    176  1.86  christos int	 truncate __P((const char *, off_t));
    177  1.86  christos /*
    178  1.55    kleink  * IEEE Std 1003.1b-93,
    179  1.55    kleink  * also found in X/Open Portability Guide >= Issue 4 Verion 2
    180  1.55    kleink  */
    181  1.92     bjh21 #if (_POSIX_C_SOURCE - 0) >= 199309L || \
    182  1.55    kleink     (defined(_XOPEN_SOURCE) && defined(_XOPEN_SOURCE_EXTENDED)) || \
    183  1.92     bjh21     (_XOPEN_SOURCE - 0) >= 500 || defined(_NETBSD_SOURCE)
    184  1.55    kleink int	 ftruncate __P((int, off_t));
    185  1.55    kleink #endif
    186  1.86  christos #endif /* __OFF_T_SYSCALLS_DECLARED */
    187  1.55    kleink 
    188  1.55    kleink 
    189  1.55    kleink /*
    190  1.55    kleink  * IEEE Std 1003.1b-93, adopted in X/Open CAE Specification Issue 5 Version 2
    191  1.55    kleink  */
    192  1.92     bjh21 #if (_POSIX_C_SOURCE - 0) >= 199309L || (_XOPEN_SOURCE - 0) >= 500 || \
    193  1.92     bjh21     defined(_NETBSD_SOURCE)
    194  1.56    kleink int	 fdatasync __P((int));
    195  1.55    kleink int	 fsync __P((int));
    196  1.49     perry #endif
    197  1.55    kleink 
    198  1.55    kleink 
    199  1.55    kleink /*
    200  1.55    kleink  * X/Open Portability Guide, all issues
    201  1.55    kleink  */
    202  1.92     bjh21 #if defined(_XOPEN_SOURCE) || defined(_NETBSD_SOURCE)
    203   1.1       cgd int	 chroot __P((const char *));
    204  1.55    kleink int	 nice __P((int));
    205  1.55    kleink #endif
    206  1.55    kleink 
    207  1.55    kleink 
    208  1.55    kleink /*
    209  1.55    kleink  * X/Open Portability Guide <= Issue 3
    210  1.55    kleink  */
    211  1.55    kleink #if defined(_XOPEN_SOURCE) && (_XOPEN_SOURCE - 0) <= 3
    212  1.55    kleink int	 rename __P((const char *, const char *)) __RENAME(__posix_rename);
    213  1.55    kleink #endif
    214  1.55    kleink 
    215  1.55    kleink 
    216  1.55    kleink /*
    217  1.55    kleink  * X/Open Portability Guide >= Issue 4
    218  1.55    kleink  */
    219  1.92     bjh21 #if (_XOPEN_SOURCE - 0) >= 4 || defined(_NETBSD_SOURCE)
    220  1.62   mycroft __aconst char *crypt __P((const char *, const char *));
    221  1.55    kleink int	 encrypt __P((char *, int));
    222  1.65   mycroft char	*getpass __P((const char *));
    223  1.55    kleink pid_t	 getsid __P((pid_t));
    224  1.55    kleink #endif
    225  1.55    kleink 
    226  1.55    kleink 
    227  1.55    kleink /*
    228  1.55    kleink  * X/Open Portability Guide >= Issue 4 Version 2
    229  1.55    kleink  */
    230  1.92     bjh21 #if (defined(_XOPEN_SOURCE) && defined(_XOPEN_SOURCE_EXTENDED)) || \
    231  1.92     bjh21     (_XOPEN_SOURCE - 0) >= 500 || defined(_NETBSD_SOURCE)
    232  1.85    kleink #ifndef	intptr_t
    233  1.85    kleink typedef	__intptr_t	intptr_t;
    234  1.87    kleink #define	intptr_t	__intptr_t
    235  1.77    kleink #endif
    236  1.77    kleink 
    237  1.55    kleink #define F_ULOCK		0
    238  1.55    kleink #define F_LOCK		1
    239  1.55    kleink #define F_TLOCK		2
    240  1.55    kleink #define F_TEST		3
    241  1.55    kleink 
    242  1.71    kleink int	 brk __P((void *));
    243  1.55    kleink int	 fchdir __P((int));
    244  1.55    kleink #if defined(_XOPEN_SOURCE)
    245  1.63   mycroft int	 fchown __P((int, uid_t, gid_t)) __RENAME(__posix_fchown);
    246  1.55    kleink #else
    247  1.63   mycroft int	 fchown __P((int, uid_t, gid_t));
    248  1.55    kleink #endif
    249  1.55    kleink int	 getdtablesize __P((void));
    250  1.55    kleink long	 gethostid __P((void));
    251  1.55    kleink int	 gethostname __P((char *, size_t));
    252  1.55    kleink __pure int
    253  1.55    kleink 	 getpagesize __P((void));		/* legacy */
    254  1.68    kleink pid_t	 getpgid __P((pid_t));
    255  1.55    kleink #if defined(_XOPEN_SOURCE)
    256  1.63   mycroft int	 lchown __P((const char *, uid_t, gid_t)) __RENAME(__posix_lchown);
    257  1.55    kleink #else
    258  1.63   mycroft int	 lchown __P((const char *, uid_t, gid_t));
    259  1.55    kleink #endif
    260  1.55    kleink int	 lockf __P((int, int, off_t));
    261  1.55    kleink int	 readlink __P((const char *, char *, size_t));
    262  1.77    kleink void	*sbrk __P((intptr_t));
    263  1.55    kleink /* XXX prototype wrong! */
    264  1.93  kristerw int	 setpgrp __P((pid_t, pid_t));		/* obsoleted by setpgid() */
    265  1.55    kleink int	 setregid __P((gid_t, gid_t));
    266  1.55    kleink int	 setreuid __P((uid_t, uid_t));
    267  1.55    kleink void	 swab __P((const void *, void *, size_t));
    268  1.55    kleink int	 symlink __P((const char *, const char *));
    269  1.55    kleink void	 sync __P((void));
    270  1.55    kleink useconds_t ualarm __P((useconds_t, useconds_t));
    271  1.55    kleink int	 usleep __P((useconds_t));
    272  1.55    kleink #ifdef __LIBC12_SOURCE__
    273  1.55    kleink pid_t	 vfork __P((void));
    274  1.55    kleink pid_t	 __vfork14 __P((void));
    275  1.55    kleink #else
    276  1.55    kleink pid_t	 vfork __P((void))			__RENAME(__vfork14);
    277  1.55    kleink #endif
    278  1.55    kleink 
    279  1.63   mycroft #ifndef __AUDIT__
    280  1.63   mycroft char	*getwd __P((char *));			/* obsoleted by getcwd() */
    281  1.63   mycroft #endif
    282  1.63   mycroft 
    283  1.55    kleink /* FIXME: this should go to <sys/time.h>! */
    284  1.74    kleink #if __STDC__
    285  1.55    kleink struct timeval;				/* select(2) XXX */
    286  1.55    kleink #endif
    287  1.55    kleink int	 select __P((int, fd_set *, fd_set *, fd_set *, struct timeval *));
    288  1.92     bjh21 #endif /* _XOPEN_SOURCE_EXTENDED || _XOPEN_SOURCE >= 500 || _NETBSD_SOURCE */
    289  1.58    kleink 
    290  1.58    kleink 
    291  1.58    kleink /*
    292  1.58    kleink  * X/Open CAE Specification Issue 5 Version 2
    293  1.58    kleink  */
    294  1.92     bjh21 #if (_XOPEN_SOURCE - 0) >= 500 || defined(_NETBSD_SOURCE)
    295  1.58    kleink ssize_t	 pread __P((int, void *, size_t, off_t));
    296  1.58    kleink ssize_t	 pwrite __P((int, const void *, size_t, off_t));
    297  1.58    kleink #endif
    298  1.55    kleink 
    299  1.55    kleink 
    300  1.55    kleink /*
    301  1.55    kleink  * Implementation-defined extensions
    302  1.55    kleink  */
    303  1.92     bjh21 #if defined(_NETBSD_SOURCE)
    304  1.55    kleink int	 acct __P((const char *));
    305   1.1       cgd int	 des_cipher __P((const char *, char *, long, int));
    306  1.88       wiz int	 des_setkey __P((const char *));
    307   1.1       cgd void	 endusershell __P((void));
    308   1.1       cgd int	 exect __P((const char *, char * const *, char * const *));
    309  1.72  sommerfe int	 fchroot __P((int));
    310  1.53    kleink int	 getdomainname __P((char *, size_t));
    311  1.55    kleink int	 getgrouplist __P((const char *, gid_t, gid_t *, int *));
    312   1.1       cgd mode_t	 getmode __P((const void *, mode_t));
    313  1.83  christos int	 getsubopt __P((char **, char * const *, char **));
    314  1.61   mycroft __aconst char *getusershell __P((void));
    315  1.36    kleink int	 initgroups __P((const char *, gid_t));
    316  1.27       mrg int	 iruserok __P((u_int32_t, int, const char *, const char *));
    317  1.84   minoura int      issetugid __P((void));
    318  1.20   mycroft int	 nfssvc __P((int, void *));
    319  1.55    kleink int	 profil __P((char *, size_t, u_long, u_int));
    320  1.86  christos #ifndef __PSIGNAL_DECLARED
    321  1.86  christos #define __PSIGNAL_DECLARED
    322  1.86  christos /* also in signal.h */
    323  1.86  christos void	psignal __P((unsigned int, const char *));
    324  1.86  christos #endif /* __PSIGNAL_DECLARED */
    325   1.1       cgd int	 rcmd __P((char **, int, const char *,
    326  1.63   mycroft 	    const char *, const char *, int *));
    327  1.29       mrg int	 reboot __P((int, char *));
    328   1.1       cgd int	 revoke __P((const char *));
    329   1.1       cgd int	 rresvport __P((int *));
    330   1.1       cgd int	 ruserok __P((const char *, int, const char *, const char *));
    331  1.53    kleink int	 setdomainname __P((const char *, size_t));
    332  1.16       jtc int	 setgroups __P((int, const gid_t *));
    333  1.32       cgd int	 sethostid __P((long));
    334  1.53    kleink int	 sethostname __P((const char *, size_t));
    335   1.1       cgd int	 setlogin __P((const char *));
    336   1.1       cgd void	*setmode __P((const char *));
    337   1.1       cgd int	 setrgid __P((gid_t));
    338   1.1       cgd int	 setruid __P((uid_t));
    339   1.1       cgd void	 setusershell __P((void));
    340  1.42  christos void	 strmode __P((mode_t, char *));
    341  1.61   mycroft __aconst char *strsignal __P((int));
    342  1.35       mrg int	 swapctl __P((int, const void *, int));
    343  1.37  christos int	 swapon __P((const char *));		/* obsoleted by swapctl() */
    344   1.1       cgd int	 syscall __P((int, ...));
    345  1.33       cgd quad_t	 __syscall __P((quad_t, ...));
    346  1.24   mycroft int	 undelete __P((const char *));
    347   1.1       cgd 
    348  1.76    kleink #if 1 /*INET6*/
    349  1.81    itojun int	 rcmd_af __P((char **, int, const char *,
    350  1.81    itojun 	    const char *, const char *, int *, int));
    351  1.76    kleink int	 rresvport_af __P((int *, int));
    352  1.81    itojun int	 iruserok_sa __P((const void *, int, int, const char *, const char *));
    353  1.76    kleink #endif
    354  1.76    kleink 
    355  1.86  christos #ifndef __SYS_SIGLIST_DECLARED
    356  1.86  christos #define __SYS_SIGLIST_DECLARED
    357  1.86  christos /* also in signal.h */
    358  1.69   thorpej extern __const char *__const *sys_siglist __RENAME(__sys_siglist14);
    359  1.86  christos #endif /* __SYS_SIGLIST_DECLARED */
    360  1.83  christos extern	 int optreset;		/* getopt(3) external variable */
    361  1.83  christos extern	 char *suboptarg;	/* getsubopt(3) external variable */
    362  1.54    kleink #endif
    363  1.46    kleink 
    364   1.1       cgd __END_DECLS
    365   1.1       cgd 
    366   1.1       cgd #endif /* !_UNISTD_H_ */
    367