unistd.h revision 100145
1169695Skan/*- 2169695Skan * Copyright (c) 1991, 1993, 1994 3169695Skan * The Regents of the University of California. All rights reserved. 4169695Skan * 5169695Skan * Redistribution and use in source and binary forms, with or without 6169695Skan * modification, are permitted provided that the following conditions 7169695Skan * are met: 8169695Skan * 1. Redistributions of source code must retain the above copyright 9169695Skan * notice, this list of conditions and the following disclaimer. 10169695Skan * 2. Redistributions in binary form must reproduce the above copyright 11169695Skan * notice, this list of conditions and the following disclaimer in the 12169695Skan * documentation and/or other materials provided with the distribution. 13169695Skan * 3. All advertising materials mentioning features or use of this software 14169695Skan * must display the following acknowledgement: 15169695Skan * This product includes software developed by the University of 16169695Skan * California, Berkeley and its contributors. 17169695Skan * 4. Neither the name of the University nor the names of its contributors 18169695Skan * may be used to endorse or promote products derived from this software 19169695Skan * without specific prior written permission. 20169695Skan * 21169695Skan * THIS SOFTWARE IS PROVIDED BY THE REGENTS AND CONTRIBUTORS ``AS IS'' AND 22169695Skan * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE 23169695Skan * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE 24169695Skan * ARE DISCLAIMED. IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE 25169695Skan * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL 26169695Skan * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS 27169695Skan * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) 28169695Skan * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT 29169695Skan * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY 30169695Skan * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF 31169695Skan * SUCH DAMAGE. 32169695Skan * 33169695Skan * @(#)unistd.h 8.12 (Berkeley) 4/27/95 34169695Skan * $FreeBSD: head/include/unistd.h 100145 2002-07-15 21:32:45Z wollman $ 35169695Skan */ 36169695Skan 37169695Skan#ifndef _UNISTD_H_ 38169695Skan#define _UNISTD_H_ 39169695Skan 40169695Skan#include <sys/cdefs.h> 41169695Skan#include <sys/types.h> /* XXX adds too much pollution. */ 42169695Skan#include <sys/unistd.h> 43169695Skan#include <sys/_types.h> 44169695Skan 45169695Skan#ifdef _BSD_GID_T_ 46169695Skantypedef _BSD_GID_T_ gid_t; 47169695Skan#undef _BSD_GID_T_ 48169695Skan#endif 49169695Skan 50169695Skan#ifdef _BSD_SIZE_T_ 51169695Skantypedef _BSD_SIZE_T_ size_t; 52169695Skan#undef _BSD_SIZE_T_ 53169695Skan#endif 54169695Skan 55169695Skan#ifdef _BSD_SSIZE_T_ 56169695Skantypedef _BSD_SSIZE_T_ ssize_t; 57169695Skan#undef _BSD_SSIZE_T_ 58169695Skan#endif 59169695Skan 60169695Skan#ifdef _BSD_UID_T_ 61169695Skantypedef _BSD_UID_T_ uid_t; 62169695Skan#undef _BSD_UID_T_ 63169695Skan#endif 64169695Skan 65169695Skan/* 66169695Skan * XXX missing type definitions for off_t, pid_t and useconds_t. 67169695Skan */ 68169695Skan 69169695Skan#define STDIN_FILENO 0 /* standard input file descriptor */ 70169695Skan#define STDOUT_FILENO 1 /* standard output file descriptor */ 71169695Skan#define STDERR_FILENO 2 /* standard error file descriptor */ 72169695Skan 73169695Skan#ifndef NULL 74169695Skan#define NULL 0 /* null pointer constant */ 75169695Skan#endif 76169695Skan 77169695Skan#if __XSI_VISIBLE || __POSIX_VISIBLE >= 200112 78169695Skan#define F_ULOCK 0 /* unlock locked section */ 79169695Skan#define F_LOCK 1 /* lock a section for exclusive use */ 80169695Skan#define F_TLOCK 2 /* test and lock a section for exclusive use */ 81169695Skan#define F_TEST 3 /* test a section for locks by other procs */ 82169695Skan#endif 83169695Skan 84169695Skan__BEGIN_DECLS 85169695Skan/* 1003.1-1990 */ 86169695Skanvoid _exit(int) __dead2; 87169695Skanint access(const char *, int); 88169695Skanunsigned int alarm(unsigned int); 89169695Skanint chdir(const char *); 90169695Skanint chown(const char *, uid_t, gid_t); 91169695Skanint close(int); 92169695Skanint dup(int); 93169695Skanint dup2(int, int); 94169695Skanint eaccess(const char *, int); 95169695Skanint execl(const char *, const char *, ...); 96169695Skanint execle(const char *, const char *, ...); 97169695Skanint execlp(const char *, const char *, ...); 98169695Skanint execv(const char *, char * const *); 99169695Skanint execve(const char *, char * const *, char * const *); 100169695Skanint execvp(const char *, char * const *); 101169695Skanpid_t fork(void); 102169695Skanlong fpathconf(int, int); 103169695Skanchar *getcwd(char *, size_t); 104169695Skangid_t getegid(void); 105169695Skanuid_t geteuid(void); 106169695Skangid_t getgid(void); 107169695Skanint getgroups(int, gid_t []); 108169695Skanchar *getlogin(void); 109169695Skanpid_t getpgrp(void); 110169695Skanpid_t getpid(void); 111169695Skanpid_t getppid(void); 112169695Skanuid_t getuid(void); 113169695Skanint isatty(int); 114169695Skanint link(const char *, const char *); 115169695Skan#ifndef _LSEEK_DECLARED 116169695Skan#define _LSEEK_DECLARED 117169695Skanoff_t lseek(int, off_t, int); 118169695Skan#endif 119169695Skanlong pathconf(const char *, int); 120169695Skanint pause(void); 121169695Skanint pipe(int *); 122169695Skanssize_t read(int, void *, size_t); 123169695Skanint rmdir(const char *); 124169695Skanint setgid(gid_t); 125169695Skanint setpgid(pid_t, pid_t); 126169695Skanvoid setproctitle(const char *_fmt, ...) __printf0like(1, 2); 127169695Skanpid_t setsid(void); 128169695Skanint setuid(uid_t); 129169695Skanunsigned int sleep(unsigned int); 130169695Skanlong sysconf(int); 131169695Skanpid_t tcgetpgrp(int); 132169695Skanint tcsetpgrp(int, pid_t); 133169695Skanchar *ttyname(int); 134169695Skanint unlink(const char *); 135169695Skanssize_t write(int, const void *, size_t); 136169695Skan 137169695Skan/* 1003.2-1992 */ 138169695Skan#if __POSIX_VISIBLE >= 199209 139169695Skansize_t confstr(int, char *, size_t); 140169695Skanint getopt(int, char * const [], const char *); 141169695Skan 142169695Skanextern char *optarg; /* getopt(3) external variables */ 143169695Skanextern int optind, opterr, optopt; 144169695Skan#endif 145169695Skan 146169695Skan/* ISO/IEC 9945-1: 1996 */ 147169695Skan#if __POSIX_VISIBLE >= 199506 148169695Skanint fsync(int); 149169695Skan 150169695Skan/* 151169695Skan * ftruncate() was in the POSIX Realtime Extension (it's used for shared 152169695Skan * memory), but truncate() was not. 153169695Skan */ 154169695Skan#ifndef _FTRUNCATE_DECLARED 155169695Skan#define _FTRUNCATE_DECLARED 156169695Skanint ftruncate(int, off_t); 157169695Skan#endif 158169695Skan 159169695Skanint getlogin_r(char *, int); 160169695Skan#endif 161169695Skan 162169695Skan/* 1003.1-2001 */ 163169695Skan#if __POSIX_VISIBLE >= 200112 164169695Skanint fchown(int, uid_t, gid_t); 165169695Skanint gethostname(char *, int /* socklen_t */); 166169695Skanint setegid(gid_t); 167169695Skanint seteuid(uid_t); 168169695Skan#endif 169169695Skan 170169695Skan/* 171169695Skan * symlink() was originally in POSIX.1a, which was withdrawn after 172169695Skan * being overtaken by events (1003.1-2001). It was in XPG4.2, and of 173169695Skan * course has been in BSD practically forever. 174169695Skan */ 175169695Skan#if __POSIX_VISIBLE >= 200112 || __XSI_VISIBLE >= 402 || __BSD_VISIBLE 176169695Skanint symlink(const char *__restrict, const char *__restrict); 177169695Skan#endif 178169695Skan 179169695Skan/* X/Open System Interfaces */ 180169695Skan#if __XSI_VISIBLE 181169695Skanchar *crypt(const char *, const char *); 182169695Skan/* char *ctermid(char *); */ /* XXX ??? */ 183169695Skanint encrypt(char *, int); 184169695Skanint fchdir(int); 185169695Skanint getpgid(pid_t _pid); 186169695Skanint getsid(pid_t _pid); 187169695Skanchar *getwd(char *); /* LEGACY: obsoleted by getcwd() */ 188169695Skanint lchown(const char *, uid_t, gid_t); 189169695Skanint lockf(int, int, off_t); 190169695Skanint nice(int); 191169695Skanssize_t pread(int, void *, size_t, off_t); 192169695Skanssize_t pwrite(int, const void *, size_t, off_t); 193169695Skanint setpgrp(pid_t _pid, pid_t _pgrp); /* obsoleted by setpgid() */ 194169695Skanint setregid(gid_t, gid_t); 195169695Skanint setreuid(uid_t, uid_t); 196169695Skan/* void swab(const void *__restrict, void *__restrict, ssize_t); */ 197169695Skanvoid sync(void); 198169695Skanunsigned int ualarm(unsigned int, unsigned int); 199169695Skanint usleep(unsigned int); 200169695Skanpid_t vfork(void); 201169695Skan 202169695Skan/* See comment at ftruncate() above. */ 203169695Skan#ifndef _TRUNCATE_DECLARED 204169695Skan#define _TRUNCATE_DECLARED 205169695Skanint truncate(const char *, off_t); 206169695Skan#endif 207169695Skan#endif /* __XSI_VISIBLE */ 208169695Skan 209169695Skan#if __BSD_VISIBLE 210169695Skanstruct timeval; /* select(2) */ 211169695Skanint acct(const char *); 212169695Skanint async_daemon(void); 213169695Skanint brk(const void *); 214169695Skanint chroot(const char *); 215169695Skanconst char * 216169695Skan crypt_get_format(void); 217169695Skanint crypt_set_format(const char *); 218169695Skanint des_cipher(const char *, char *, long, int); 219169695Skanint des_setkey(const char *key); 220169695Skanvoid endusershell(void); 221169695Skanint exect(const char *, char * const *, char * const *); 222169695Skanchar *fflagstostr(u_long); 223169695Skanint getdomainname(char *, int); 224169695Skanint getdtablesize(void); 225169695Skanint getgrouplist(const char *, gid_t, gid_t *, int *); 226169695Skanlong gethostid(void); 227169695Skanmode_t getmode(const void *, mode_t); 228169695Skanint getpagesize(void) __pure2; 229169695Skanchar *getpass(const char *); 230169695Skanint getpeereid(int, uid_t *, gid_t *); 231169695Skanint getresgid(gid_t *, gid_t *, gid_t *); 232169695Skanint getresuid(uid_t *, uid_t *, uid_t *); 233169695Skanchar *getusershell(void); 234169695Skanint initgroups(const char *, gid_t); 235169695Skanint iruserok(unsigned long, int, const char *, const char *); 236169695Skanint iruserok_sa(const void *, int, int, const char *, const char *); 237169695Skanint issetugid(void); 238169695Skanchar *mkdtemp(char *); 239169695Skanint mknod(const char *, mode_t, dev_t); 240169695Skanint mkstemp(char *); 241169695Skanint mkstemps(char *, int); 242169695Skanchar *mktemp(char *); 243169695Skanint nfsclnt(int, void *); 244169695Skanint nfssvc(int, void *); 245169695Skanint profil(char *, size_t, vm_offset_t, int); 246169695Skanint rcmd(char **, int, const char *, const char *, const char *, int *); 247169695Skanint rcmd_af(char **, int, const char *, 248169695Skan const char *, const char *, int *, int); 249169695Skanint rcmdsh(char **, int, const char *, 250169695Skan const char *, const char *, const char *); 251169695Skanchar *re_comp(const char *); 252169695Skanint re_exec(const char *); 253169695Skanint readlink(const char *, char *, int); 254169695Skanint reboot(int); 255169695Skanint revoke(const char *); 256169695Skanpid_t rfork(int); 257169695Skanpid_t rfork_thread(int, void *, int (*)(void *), void *); 258169695Skanint rresvport(int *); 259169695Skanint rresvport_af(int *, int); 260169695Skanint ruserok(const char *, int, const char *, const char *); 261169695Skanvoid *sbrk(intptr_t); 262169695Skanint select(int, fd_set *, fd_set *, fd_set *, struct timeval *); 263169695Skanint setdomainname(const char *, int); 264169695Skanint setgroups(int, const gid_t *); 265169695Skanvoid sethostid(long); 266169695Skanint sethostname(const char *, int); 267169695Skanint setkey(const char *); 268169695Skanint setlogin(const char *); 269169695Skanvoid *setmode(const char *); 270169695Skanint setresgid(gid_t, gid_t, gid_t); 271169695Skanint setresuid(uid_t, uid_t, uid_t); 272169695Skanint setrgid(gid_t); 273169695Skanint setruid(uid_t); 274169695Skanvoid setusershell(void); 275int strtofflags(char **, u_long *, u_long *); 276int swapon(const char *); 277int syscall(int, ...); 278off_t __syscall(quad_t, ...); 279int ttyslot(void); 280int undelete(const char *); 281int unwhiteout(const char *); 282void *valloc(size_t); /* obsoleted by malloc() */ 283 284extern char *suboptarg; /* getsubopt(3) external variable */ 285int getsubopt(char **, char * const *, char **); 286extern int optreset; /* getopt(3) external variable */ 287#endif /* __BSD_VISIBLE */ 288__END_DECLS 289 290#endif /* !_UNISTD_H_ */ 291