unistd.h revision 93514
11539Srgrimes/*-
21539Srgrimes * Copyright (c) 1991, 1993, 1994
31539Srgrimes *	The Regents of the University of California.  All rights reserved.
41539Srgrimes *
51539Srgrimes * Redistribution and use in source and binary forms, with or without
61539Srgrimes * modification, are permitted provided that the following conditions
71539Srgrimes * are met:
81539Srgrimes * 1. Redistributions of source code must retain the above copyright
91539Srgrimes *    notice, this list of conditions and the following disclaimer.
101539Srgrimes * 2. Redistributions in binary form must reproduce the above copyright
111539Srgrimes *    notice, this list of conditions and the following disclaimer in the
121539Srgrimes *    documentation and/or other materials provided with the distribution.
131539Srgrimes * 3. All advertising materials mentioning features or use of this software
141539Srgrimes *    must display the following acknowledgement:
151539Srgrimes *	This product includes software developed by the University of
161539Srgrimes *	California, Berkeley and its contributors.
171539Srgrimes * 4. Neither the name of the University nor the names of its contributors
181539Srgrimes *    may be used to endorse or promote products derived from this software
191539Srgrimes *    without specific prior written permission.
201539Srgrimes *
211539Srgrimes * THIS SOFTWARE IS PROVIDED BY THE REGENTS AND CONTRIBUTORS ``AS IS'' AND
221539Srgrimes * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
231539Srgrimes * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
241539Srgrimes * ARE DISCLAIMED.  IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE
251539Srgrimes * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
261539Srgrimes * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
271539Srgrimes * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
281539Srgrimes * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
291539Srgrimes * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
301539Srgrimes * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
311539Srgrimes * SUCH DAMAGE.
321539Srgrimes *
3323657Speter *	@(#)unistd.h	8.12 (Berkeley) 4/27/95
3455033Sbde * $FreeBSD: head/include/unistd.h 93514 2002-04-01 08:12:25Z mike $
351539Srgrimes */
361539Srgrimes
371539Srgrimes#ifndef _UNISTD_H_
381539Srgrimes#define	_UNISTD_H_
391539Srgrimes
401539Srgrimes#include <sys/cdefs.h>
4193514Smike#include <sys/types.h>			/* XXX adds too much pollution. */
421539Srgrimes#include <sys/unistd.h>
4393514Smike#include <sys/_types.h>
441539Srgrimes
4593514Smike#ifdef	_BSD_GID_T_
4693514Smiketypedef	_BSD_GID_T_	gid_t;
4793514Smike#undef	_BSD_GID_T_
4893514Smike#endif
4993514Smike
5093514Smike#ifdef	_BSD_SIZE_T_
5193514Smiketypedef	_BSD_SIZE_T_	size_t;
5293514Smike#undef	_BSD_SIZE_T_
5393514Smike#endif
5493514Smike
5593514Smike#ifdef	_BSD_SSIZE_T_
5693514Smiketypedef	_BSD_SSIZE_T_	ssize_t;
5793514Smike#undef	_BSD_SSIZE_T_
5893514Smike#endif
5993514Smike
6093514Smike#ifdef	_BSD_UID_T_
6193514Smiketypedef	_BSD_UID_T_	uid_t;
6293514Smike#undef	_BSD_UID_T_
6393514Smike#endif
6493514Smike
6593514Smike/*
6693514Smike * XXX missing type definitions for off_t, pid_t and useconds_t.
6793514Smike */
6893514Smike
691539Srgrimes#define	 STDIN_FILENO	0	/* standard input file descriptor */
701539Srgrimes#define	STDOUT_FILENO	1	/* standard output file descriptor */
711539Srgrimes#define	STDERR_FILENO	2	/* standard error file descriptor */
721539Srgrimes
731539Srgrimes#ifndef NULL
741539Srgrimes#define	NULL		0	/* null pointer constant */
751539Srgrimes#endif
761539Srgrimes
7737509Sdt#ifndef _POSIX_SOURCE
7837566Sbde#define	F_ULOCK		0	/* unlock locked section */
7937566Sbde#define	F_LOCK		1	/* lock a section for exclusive use */
8037566Sbde#define	F_TLOCK		2	/* test and lock a section for exclusive use */
8137566Sbde#define	F_TEST		3	/* test a section for locks by other procs */
8237509Sdt#endif
8337509Sdt
841539Srgrimes__BEGIN_DECLS
8593032Simpvoid	 _exit(int) __dead2;
8693032Simpint	 access(const char *, int);
8793032Simpunsigned int	 alarm(unsigned int);
8893032Simpint	 chdir(const char *);
8993032Simpint	 chown(const char *, uid_t, gid_t);
9093032Simpint	 close(int);
9193032Simpint	 dup(int);
9293032Simpint	 dup2(int, int);
9393032Simpint	 eaccess(const char *, int);
9493032Simpint	 execl(const char *, const char *, ...);
9593032Simpint	 execle(const char *, const char *, ...);
9693032Simpint	 execlp(const char *, const char *, ...);
9793032Simpint	 execv(const char *, char * const *);
9893032Simpint	 execve(const char *, char * const *, char * const *);
9993032Simpint	 execvp(const char *, char * const *);
10093032Simppid_t	 fork(void);
10193032Simplong	 fpathconf(int, int);
10293032Simpchar	*getcwd(char *, size_t);
10393032Simpgid_t	 getegid(void);
10493032Simpuid_t	 geteuid(void);
10593032Simpgid_t	 getgid(void);
10693032Simpint	 getgroups(int, gid_t []);
10793032Simpchar	*getlogin(void);
10893032Simppid_t	 getpgrp(void);
10993032Simppid_t	 getpid(void);
11093032Simppid_t	 getppid(void);
11193032Simpuid_t	 getuid(void);
11293032Simpint	 isatty(int);
11393032Simpint	 link(const char *, const char *);
11424896Sbde#ifndef _LSEEK_DECLARED
11524896Sbde#define	_LSEEK_DECLARED
11693032Simpoff_t	 lseek(int, off_t, int);
11724896Sbde#endif
11893032Simplong	 pathconf(const char *, int);
11993032Simpint	 pause(void);
12093032Simpint	 pipe(int *);
12193032Simpssize_t	 read(int, void *, size_t);
12293032Simpint	 rmdir(const char *);
12393032Simpint	 setgid(gid_t);
12493032Simpint	 setpgid(pid_t, pid_t);
12593032Simpvoid	 setproctitle(const char *_fmt, ...) __printf0like(1, 2);
12693032Simppid_t	 setsid(void);
12793032Simpint	 setuid(uid_t);
12893032Simpunsigned int	 sleep(unsigned int);
12993032Simplong	 sysconf(int);
13093032Simppid_t	 tcgetpgrp(int);
13193032Simpint	 tcsetpgrp(int, pid_t);
13293032Simpchar	*ttyname(int);
13393032Simpint	 unlink(const char *);
13493032Simpssize_t	 write(int, const void *, size_t);
1351539Srgrimes
13623657Speterextern char *optarg;			/* getopt(3) external variables */
13723657Speterextern int optind, opterr, optopt;
13893032Simpint	 getopt(int, char * const [], const char *);
13923657Speter
1401539Srgrimes#ifndef	_POSIX_SOURCE
1411539Srgrimesstruct timeval;				/* select(2) */
14293032Simpint	 acct(const char *);
14393032Simpint	 async_daemon(void);
14493032Simpint	 brk(const void *);
14593032Simpint	 chroot(const char *);
14693032Simpsize_t	 confstr(int, char *, size_t);
14793032Simpchar	*crypt(const char *, const char *);
14888399Smike__const char *
14993032Simp	 crypt_get_format(void);
15093032Simpint	 crypt_set_format(const char *);
15193032Simpint	 des_cipher(const char *, char *, long, int);
15293032Simpint	 des_setkey(const char *key);
15393032Simpint	 encrypt(char *, int);
15493032Simpvoid	 endusershell(void);
15593032Simpint	 exect(const char *, char * const *, char * const *);
15693032Simpint	 fchdir(int);
15793032Simpint	 fchown(int, uid_t, gid_t);
15893032Simpchar	*fflagstostr(u_long);
15993032Simpint	 fsync(int);
16024896Sbde#ifndef _FTRUNCATE_DECLARED
16124896Sbde#define	_FTRUNCATE_DECLARED
16293032Simpint	 ftruncate(int, off_t);
16324896Sbde#endif
16493032Simpint	 getdomainname(char *, int);
16593032Simpint	 getdtablesize(void);
16693032Simpint	 getgrouplist(const char *, gid_t, gid_t *, int *);
16793032Simplong	 gethostid(void);
16893032Simpint	 gethostname(char *, int);
16993032Simpint	 getlogin_r(char *, int);
17093032Simpmode_t	 getmode(const void *, mode_t);
17193032Simpint	 getpagesize(void) __pure2;
17293032Simpchar	*getpass(const char *);
17393032Simpint	 getpeereid(int, uid_t *, gid_t *);
17493032Simpint	 getpgid(pid_t _pid);
17593032Simpint	 getresgid(gid_t *, gid_t *, gid_t *);
17693032Simpint	 getresuid(uid_t *, uid_t *, uid_t *);
17793032Simpint	 getsid(pid_t _pid);
17893032Simpchar	*getusershell(void);
17993032Simpchar	*getwd(char *);			/* obsoleted by getcwd() */
18093032Simpint	 initgroups(const char *, gid_t);
18193032Simpint	 iruserok(unsigned long, int, const char *, const char *);
18293032Simpint	 iruserok_sa(const void *, int, int, const char *, const char *);
18393032Simpint	 issetugid(void);
18493032Simpint	 lchown(const char *, uid_t, gid_t);
18593032Simpint	 lockf(int, int, off_t);
18693032Simpchar	*mkdtemp(char *);
18793032Simpint	 mknod(const char *, mode_t, dev_t);
18893032Simpint	 mkstemp(char *);
18993032Simpint	 mkstemps(char *, int);
19093032Simpchar	*mktemp(char *);
19193032Simpint	 nfsclnt(int, void *);
19293032Simpint	 nfssvc(int, void *);
19393032Simpint	 nice(int);
19493032Simpssize_t	 pread(int, void *, size_t, off_t);
19593032Simpint	 profil(char *, size_t, vm_offset_t, int);
19693032Simpssize_t	 pwrite(int, const void *, size_t, off_t);
19793032Simpint	 rcmd(char **, int, const char *, const char *, const char *, int *);
19893032Simpint	 rcmd_af(char **, int, const char *,
19993032Simp		const char *, const char *, int *, int);
20093032Simpint	 rcmdsh(char **, int, const char *,
20193032Simp		const char *, const char *, const char *);
20293032Simpchar	*re_comp(const char *);
20393032Simpint	 re_exec(const char *);
20493032Simpint	 readlink(const char *, char *, int);
20593032Simpint	 reboot(int);
20693032Simpint	 revoke(const char *);
20793032Simppid_t	 rfork(int);
20893032Simppid_t	 rfork_thread(int, void *, int (*)(void *), void *);
20993032Simpint	 rresvport(int *);
21093032Simpint	 rresvport_af(int *, int);
21193032Simpint	 ruserok(const char *, int, const char *, const char *);
21293032Simpvoid	*sbrk(intptr_t);
21393032Simpint	 select(int, fd_set *, fd_set *, fd_set *, struct timeval *);
21493032Simpint	 setdomainname(const char *, int);
21593032Simpint	 setegid(gid_t);
21693032Simpint	 seteuid(uid_t);
21793032Simpint	 setgroups(int, const gid_t *);
21893032Simpvoid	 sethostid(long);
21993032Simpint	 sethostname(const char *, int);
22093032Simpint	 setkey(const char *);
22193032Simpint	 setlogin(const char *);
22293032Simpvoid	*setmode(const char *);
22393032Simpint	 setpgrp(pid_t _pid, pid_t _pgrp); /* obsoleted by setpgid() */
22493032Simpint	 setregid(gid_t, gid_t);
22593032Simpint	 setresgid(gid_t, gid_t, gid_t);
22693032Simpint	 setresuid(uid_t, uid_t, uid_t);
22793032Simpint	 setreuid(uid_t, uid_t);
22893032Simpint	 setrgid(gid_t);
22993032Simpint	 setruid(uid_t);
23093032Simpvoid	 setusershell(void);
23193032Simpint	 strtofflags(char **, u_long *, u_long *);
23293032Simpint	 swapon(const char *);
23393032Simpint	 symlink(const char *, const char *);
23493032Simpvoid	 sync(void);
23593032Simpint	 syscall(int, ...);
23693032Simpoff_t	 __syscall(quad_t, ...);
23724896Sbde#ifndef _TRUNCATE_DECLARED
23824896Sbde#define	_TRUNCATE_DECLARED
23993032Simpint	 truncate(const char *, off_t);
24024896Sbde#endif
24193032Simpint	 ttyslot(void);
24293032Simpunsigned int	 ualarm(unsigned int, unsigned int);
24393032Simpint	 undelete(const char *);
24493032Simpint	 unwhiteout(const char *);
24593032Simpint	 usleep(unsigned int);
24693032Simpvoid	*valloc(size_t);			/* obsoleted by malloc() */
24793032Simppid_t	 vfork(void);
24823657Speter
24923657Speterextern char *suboptarg;			/* getsubopt(3) external variable */
25093032Simpint	 getsubopt(char **, char * const *, char **);
2511539Srgrimes#endif /* !_POSIX_SOURCE */
25242518Smsmithextern int optreset;			/* getopt(3) external variable */
2531539Srgrimes__END_DECLS
2541539Srgrimes
2551539Srgrimes#endif /* !_UNISTD_H_ */
256