unistd.h revision 103929
1163953Srrs/*- 2185694Srrs * Copyright (c) 1991, 1993, 1994 3235828Stuexen * The Regents of the University of California. All rights reserved. 4235828Stuexen * 5163953Srrs * Redistribution and use in source and binary forms, with or without 6163953Srrs * modification, are permitted provided that the following conditions 7163953Srrs * are met: 8163953Srrs * 1. Redistributions of source code must retain the above copyright 9163953Srrs * notice, this list of conditions and the following disclaimer. 10228653Stuexen * 2. Redistributions in binary form must reproduce the above copyright 11163953Srrs * notice, this list of conditions and the following disclaimer in the 12163953Srrs * documentation and/or other materials provided with the distribution. 13163953Srrs * 3. All advertising materials mentioning features or use of this software 14228653Stuexen * must display the following acknowledgement: 15163953Srrs * This product includes software developed by the University of 16163953Srrs * California, Berkeley and its contributors. 17163953Srrs * 4. Neither the name of the University nor the names of its contributors 18163953Srrs * may be used to endorse or promote products derived from this software 19163953Srrs * without specific prior written permission. 20163953Srrs * 21163953Srrs * THIS SOFTWARE IS PROVIDED BY THE REGENTS AND CONTRIBUTORS ``AS IS'' AND 22163953Srrs * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE 23163953Srrs * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE 24163953Srrs * ARE DISCLAIMED. IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE 25163953Srrs * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL 26163953Srrs * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS 27163953Srrs * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) 28163953Srrs * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT 29163953Srrs * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY 30163953Srrs * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF 31163953Srrs * SUCH DAMAGE. 32163953Srrs * 33163953Srrs * @(#)unistd.h 8.12 (Berkeley) 4/27/95 34163953Srrs * $FreeBSD: head/include/unistd.h 103929 2002-09-25 01:58:56Z wollman $ 35163953Srrs */ 36235828Stuexen 37235828Stuexen#ifndef _UNISTD_H_ 38163953Srrs#define _UNISTD_H_ 39267724Stuexen 40179157Srrs#include <sys/cdefs.h> 41267724Stuexen#include <sys/types.h> /* XXX adds too much pollution. */ 42267724Stuexen#include <sys/unistd.h> 43167598Srrs#include <sys/_types.h> 44167598Srrs 45163953Srrs#ifndef _GID_T_DECLARED 46167598Srrstypedef __gid_t gid_t; 47168299Srrs#define _GID_T_DECLARED 48167598Srrs#endif 49167598Srrs 50167598Srrs#ifndef _SIZE_T_DECLARED 51167598Srrstypedef __size_t size_t; 52168299Srrs#define _SIZE_T_DECLARED 53168299Srrs#endif 54167598Srrs 55167598Srrs#ifndef _SSIZE_T_DECLARED 56167598Srrstypedef __ssize_t ssize_t; 57168299Srrs#define _SSIZE_T_DECLARED 58168299Srrs#endif 59168299Srrs 60168299Srrs#ifndef _UID_T_DECLARED 61167598Srrstypedef __uid_t_ uid_t; 62168299Srrs#define _UID_T_DECLARED 63167598Srrs#endif 64171990Srrs 65171990Srrs/* 66171990Srrs * XXX missing type definitions for off_t, pid_t and useconds_t. 67171990Srrs */ 68171990Srrs 69294157Stuexen#define STDIN_FILENO 0 /* standard input file descriptor */ 70294157Stuexen#define STDOUT_FILENO 1 /* standard output file descriptor */ 71167598Srrs#define STDERR_FILENO 2 /* standard error file descriptor */ 72167598Srrs 73167598Srrs#ifndef NULL 74170056Srrs#define NULL 0 /* null pointer constant */ 75170181Srrs#endif 76170056Srrs 77167598Srrs#if __XSI_VISIBLE || __POSIX_VISIBLE >= 200112 78167598Srrs#define F_ULOCK 0 /* unlock locked section */ 79167598Srrs#define F_LOCK 1 /* lock a section for exclusive use */ 80167598Srrs#define F_TLOCK 2 /* test and lock a section for exclusive use */ 81167598Srrs#define F_TEST 3 /* test a section for locks by other procs */ 82163953Srrs#endif 83163953Srrs 84163953Srrs/* 85163953Srrs * POSIX options and option groups we unconditionally do or don't 86167598Srrs * implement. This list includes those options which are exclusively 87167598Srrs * implemented (or not) in user mode. Please keep this list in 88199866Stuexen * alphabetical order. 89167598Srrs * 90218211Srrs * Anything which is defined as zero below **must** have an 91167598Srrs * implementation for the corresponding sysconf() which is able to 92218211Srrs * determine conclusively whether or not the feature is supported. 93167598Srrs * Anything which is defined as other than -1 below **must** have 94167598Srrs * complete headers, types, and function declarations as specified by 95167598Srrs * the POSIX standard; however, if the relevant sysconf() function 96167598Srrs * returns -1, the functions may be stubbed out. 97167598Srrs */ 98171477Srrs#define _POSIX_BARRIERS -1 99171477Srrs#define _POSIX_READER_WRITER_LOCKS 200112L 100171477Srrs#define _POSIX_REGEXP 1 101171477Srrs#define _POSIX_SHELL 1 102171440Srrs#define _POSIX_SPAWN -1 103171440Srrs#define _POSIX_SPIN_LOCKS -1 104171440Srrs#define _POSIX_THREAD_ATTR_STACKADDR 200112L 105171440Srrs#define _POSIX_THREAD_ATTR_STACKSIZE 200112L 106171440Srrs#define _POSIX_THREAD_CPUTIME -1 107163953Srrs#define _POSIX_THREAD_PRIO_INHERIT 200112L 108163953Srrs#define _POSIX_THREAD_PRIO_PROTECT 200112L 109163953Srrs#define _POSIX_THREAD_PRIORITY_SCHEDULING 200112L 110163953Srrs#define _POSIX_THREAD_PROCESS_SHARED -1 111163953Srrs#define _POSIX_THREAD_SAFE_FUNCTIONS -1 112163953Srrs#define _POSIX_THREAD_SPORADIC_SERVER -1 113163953Srrs#define _POSIX_THREADS 200112L 114163953Srrs#define _POSIX_TRACE -1 115163953Srrs#define _POSIX_TRACE_EVENT_FILTER -1 116163953Srrs#define _POSIX_TRACE_INHERIT -1 117163953Srrs#define _POSIX_TRACE_LOG -1 118163953Srrs#define _POSIX2_C_BIND 200112L /* mandatory */ 119163953Srrs#define _POSIX2_C_DEV -1 /* need c99 utility */ 120163953Srrs#define _POSIX2_CHAR_TERM 1 121163953Srrs#define _POSIX2_FORT_DEV -1 /* need fort77 utility */ 122163953Srrs#define _POSIX2_FORT_RUN 200112L 123163953Srrs#define _POSIX2_LOCALEDEF -1 124163953Srrs#define _POSIX2_PBS -1 125163953Srrs#define _POSIX2_PBS_ACCOUNTING -1 126163953Srrs#define _POSIX2_PBS_CHECKPOINT -1 127163953Srrs#define _POSIX2_PBS_LOCATE -1 128163953Srrs#define _POSIX2_PBS_MESSAGE -1 129163953Srrs#define _POSIX2_PBS_TRACK -1 130163953Srrs#define _POSIX2_SW_DEV -1 /* XXX ??? */ 131163953Srrs#define _POSIX2_UPE 200112L 132163953Srrs#define _V6_ILP32_OFF32 -1 133163953Srrs#define _V6_ILP32_OFFBIG 0 134163953Srrs#define _V6_LP64_OFF64 0 135163953Srrs#define _V6_LPBIG_OFFBIG -1 136163953Srrs 137163953Srrs#if __XSI_VISIBLE 138163953Srrs#define _XOPEN_CRYPT -1 /* XXX ??? */ 139163953Srrs#define _XOPEN_ENH_I18N -1 /* mandatory in XSI */ 140163953Srrs#define _XOPEN_LEGACY -1 141163953Srrs#define _XOPEN_REALTIME -1 142163953Srrs#define _XOPEN_REALTIME_THREADS -1 143163953Srrs#define _XOPEN_UNIX -1 144163953Srrs#endif 145163953Srrs 146163953Srrs/* Define the versions we target for compliance. */ 147163953Srrs#define _POSIX_VERSION 200112L 148163953Srrs#define _POSIX2_VERSION 199212L 149163953Srrs 150163953Srrs/* 151163953Srrs * POSIX-style system configuration variable accessors (for the 152163953Srrs * sysconf function). The kernel does not directly implement the 153163953Srrs * sysconf() interface; rather, a C library stub translates references 154163953Srrs * to sysconf() into calls to sysctl() using a giant switch statement. 155163953Srrs * Those that are marked `user' are implemented entirely in the C 156163953Srrs * library and never query the kernel. pathconf() is implemented 157163953Srrs * directly by the kernel so those are not defined here. 158163953Srrs */ 159163953Srrs#define _SC_ARG_MAX 1 160163953Srrs#define _SC_CHILD_MAX 2 161163953Srrs#define _SC_CLK_TCK 3 162163953Srrs#define _SC_NGROUPS_MAX 4 163163953Srrs#define _SC_OPEN_MAX 5 164163953Srrs#define _SC_JOB_CONTROL 6 165163953Srrs#define _SC_SAVED_IDS 7 166163953Srrs#define _SC_VERSION 8 167163953Srrs#define _SC_BC_BASE_MAX 9 /* user */ 168163953Srrs#define _SC_BC_DIM_MAX 10 /* user */ 169163953Srrs#define _SC_BC_SCALE_MAX 11 /* user */ 170163953Srrs#define _SC_BC_STRING_MAX 12 /* user */ 171163953Srrs#define _SC_COLL_WEIGHTS_MAX 13 /* user */ 172163953Srrs#define _SC_EXPR_NEST_MAX 14 /* user */ 173163953Srrs#define _SC_LINE_MAX 15 /* user */ 174163953Srrs#define _SC_RE_DUP_MAX 16 /* user */ 175163953Srrs#define _SC_2_VERSION 17 /* user */ 176163953Srrs#define _SC_2_C_BIND 18 /* user */ 177163953Srrs#define _SC_2_C_DEV 19 /* user */ 178163953Srrs#define _SC_2_CHAR_TERM 20 /* user */ 179163953Srrs#define _SC_2_FORT_DEV 21 /* user */ 180163953Srrs#define _SC_2_FORT_RUN 22 /* user */ 181163953Srrs#define _SC_2_LOCALEDEF 23 /* user */ 182163953Srrs#define _SC_2_SW_DEV 24 /* user */ 183163953Srrs#define _SC_2_UPE 25 /* user */ 184163953Srrs#define _SC_STREAM_MAX 26 /* user */ 185163953Srrs#define _SC_TZNAME_MAX 27 /* user */ 186163953Srrs 187163953Srrs#if __POSIX_VISIBLE >= 199309 188163953Srrs#define _SC_ASYNCHRONOUS_IO 28 189163953Srrs#define _SC_MAPPED_FILES 29 190163953Srrs#define _SC_MEMLOCK 30 191163953Srrs#define _SC_MEMLOCK_RANGE 31 192163953Srrs#define _SC_MEMORY_PROTECTION 32 193163953Srrs#define _SC_MESSAGE_PASSING 33 194163953Srrs#define _SC_PRIORITIZED_IO 34 195163953Srrs#define _SC_PRIORITY_SCHEDULING 35 196163953Srrs#define _SC_REALTIME_SIGNALS 36 197163953Srrs#define _SC_SEMAPHORES 37 198163953Srrs#define _SC_FSYNC 38 199163953Srrs#define _SC_SHARED_MEMORY_OBJECTS 39 200178197Srrs#define _SC_SYNCHRONIZED_IO 40 201178197Srrs#define _SC_TIMERS 41 202178197Srrs#define _SC_AIO_LISTIO_MAX 42 203178197Srrs#define _SC_AIO_MAX 43 204178197Srrs#define _SC_AIO_PRIO_DELTA_MAX 44 205178197Srrs#define _SC_DELAYTIMER_MAX 45 206178197Srrs#define _SC_MQ_OPEN_MAX 46 207178197Srrs#define _SC_PAGESIZE 47 208178197Srrs#define _SC_RTSIG_MAX 48 209178197Srrs#define _SC_SEM_NSEMS_MAX 49 210178197Srrs#define _SC_SEM_VALUE_MAX 50 211178197Srrs#define _SC_SIGQUEUE_MAX 51 212178197Srrs#define _SC_TIMER_MAX 52 213178197Srrs#endif 214178197Srrs 215178197Srrs#if __POSIX_VISIBLE >= 200112 216178197Srrs#define _SC_2_PBS 59 /* user */ 217178197Srrs#define _SC_2_PBS_ACCOUNTING 60 /* user */ 218178197Srrs#define _SC_2_PBS_CHECKPOINT 61 /* user */ 219178197Srrs#define _SC_2_PBS_LOCATE 62 /* user */ 220178197Srrs#define _SC_2_PBS_MESSAGE 63 /* user */ 221178197Srrs#define _SC_2_PBS_TRACK 64 /* user */ 222178197Srrs#define _SC_ADVISORY_INFO 65 223178197Srrs#define _SC_BARRIERS 66 /* user */ 224178197Srrs#define _SC_CLOCK_SELECTION 67 225178197Srrs#define _SC_CPUTIME 68 226178197Srrs#define _SC_FILE_LOCKING 69 227178197Srrs#define _SC_GETGR_R_SIZE_MAX 70 /* user */ 228189371Srrs#define _SC_GETPW_R_SIZE_MAX 71 /* user */ 229189790Srrs#define _SC_HOST_NAME_MAX 72 230189790Srrs#define _SC_LOGIN_NAME_MAX 73 231163953Srrs#define _SC_MONOTONIC_CLOCK 74 232170744Srrs#define _SC_MQ_PRIO_MAX 75 233170744Srrs#define _SC_READER_WRITER_LOCKS 76 /* user */ 234170744Srrs#define _SC_REGEXP 77 /* user */ 235170744Srrs#define _SC_SHELL 78 /* user */ 236163953Srrs#define _SC_SPAWN 79 /* user */ 237170744Srrs#define _SC_SPIN_LOCKS 80 /* user */ 238170744Srrs#define _SC_SPORADIC_SERVER 81 239163953Srrs#define _SC_THREAD_ATTR_STACKADDR 82 /* user */ 240171943Srrs#define _SC_THREAD_ATTR_STACKSIZE 83 /* user */ 241163953Srrs#define _SC_THREAD_CPUTIME 84 /* user */ 242163953Srrs#define _SC_THREAD_DESTRUCTOR_ITERATIONS 85 /* user */ 243163953Srrs#define _SC_THREAD_KEYS_MAX 86 /* user */ 244163953Srrs#define _SC_THREAD_PRIO_INHERIT 87 /* user */ 245163953Srrs#define _SC_THREAD_PRIO_PROTECT 88 /* user */ 246163953Srrs#define _SC_THREAD_PRIORITY_SCHEDULING 89 /* user */ 247163953Srrs#define _SC_THREAD_PROCESS_SHARED 90 /* user */ 248163953Srrs#define _SC_THREAD_SAFE_FUNCTIONS 91 /* user */ 249163953Srrs#define _SC_THREAD_SPORADIC_SERVER 92 /* user */ 250163953Srrs#define _SC_THREAD_STACK_MIN 93 /* user */ 251163953Srrs#define _SC_THREAD_THREADS_MAX 94 /* user */ 252163953Srrs#define _SC_TIMEOUTS 95 /* user */ 253163953Srrs#define _SC_THREADS 96 /* user */ 254163953Srrs#define _SC_TRACE 97 /* user */ 255163953Srrs#define _SC_TRACE_EVENT_FILTER 98 /* user */ 256163953Srrs#define _SC_TRACE_INHERIT 99 /* user */ 257163953Srrs#define _SC_TRACE_LOG 100 /* user */ 258163953Srrs#define _SC_TTY_NAME_MAX 101 /* user */ 259170744Srrs#define _SC_TYPED_MEMORY_OBJECTS 102 260170744Srrs#define _SC_V6_ILP32_OFF32 103 /* user */ 261163953Srrs#define _SC_V6_ILP32_OFFBIG 104 /* user */ 262170744Srrs#define _SC_V6_LP64_OFF64 105 /* user */ 263163953Srrs#define _SC_V6_LPBIG_OFFBIG 106 /* user */ 264163953Srrs#endif 265163953Srrs 266163953Srrs#if __XSI_VISIBLE 267163953Srrs#define _SC_ATEXIT_MAX 107 /* user */ 268163953Srrs#define _SC_IOV_MAX 56 269163953Srrs#define _SC_PAGE_SIZE _SC_PAGESIZE 270163953Srrs#define _SC_XOPEN_CRYPT 108 /* user */ 271163953Srrs#define _SC_XOPEN_ENH_I18N 109 /* user */ 272179157Srrs#define _SC_XOPEN_LEGACY 110 /* user */ 273179157Srrs#define _SC_XOPEN_REALTIME 111 274179157Srrs#define _SC_XOPEN_REALTIME_THREADS 112 275163953Srrs#define _SC_XOPEN_SHM 113 276163953Srrs#define _SC_XOPEN_STREAMS 114 277163953Srrs#define _SC_XOPEN_UNIX 115 278163953Srrs#define _SC_XOPEN_VERSION 116 279163953Srrs#define _SC_XOPEN_XCU_VERSION 117 /* user */ 280163953Srrs#endif 281163953Srrs 282163953Srrs#if __BSD_VISIBLE 283163953Srrs#define _SC_NPROCESSORS_CONF 57 284163953Srrs#define _SC_NPROCESSORS_ONLN 58 285163953Srrs#endif 286163953Srrs 287163953Srrs/* Keys for the confstr(3) function. */ 288163953Srrs#if __POSIX_VISIBLE >= 199209 289163953Srrs#define _CS_PATH 1 /* default value of PATH */ 290163953Srrs#endif 291163953Srrs 292163953Srrs#if __POSIX_VISIBLE >= 200112 293163953Srrs#define _CS_POSIX_V6_ILP32_OFF32_CFLAGS 2 294163953Srrs#define _CS_POSIX_V6_ILP32_OFF32_LDFLAGS 3 295163953Srrs#define _CS_POSIX_V6_ILP32_OFF32_LIBS 4 296163953Srrs#define _CS_POSIX_V6_ILP32_OFFBIG_CFLAGS 5 297163953Srrs#define _CS_POSIX_V6_ILP32_OFFBIG_LDFLAGS 6 298163953Srrs#define _CS_POSIX_V6_ILP32_OFFBIG_LIBS 7 299163953Srrs#define _CS_POSIX_V6_LP64_OFF64_CFLAGS 8 300163953Srrs#define _CS_POSIX_V6_LP64_OFF64_LDFLAGS 9 301163953Srrs#define _CS_POSIX_V6_LP64_OFF64_LIBS 10 302163953Srrs#define _CS_POSIX_V6_LPBIG_OFFBIG_CFLAGS 11 303163953Srrs#define _CS_POSIX_V6_LPBIG_OFFBIG_LDFLAGS 12 304163953Srrs#define _CS_POSIX_V6_LPBIG_OFFBIG_LIBS 13 305163953Srrs#define _CS_POSIX_V6_WIDTH_RESTRICTED_ENVS 14 306163953Srrs#endif 307163953Srrs 308163953Srrs__BEGIN_DECLS 309163953Srrs/* 1003.1-1990 */ 310163953Srrsvoid _exit(int) __dead2; 311163953Srrsint access(const char *, int); 312163953Srrsunsigned int alarm(unsigned int); 313163953Srrsint chdir(const char *); 314163953Srrsint chown(const char *, uid_t, gid_t); 315163953Srrsint close(int); 316163953Srrsint dup(int); 317163953Srrsint dup2(int, int); 318163953Srrsint eaccess(const char *, int); 319163953Srrsint execl(const char *, const char *, ...); 320163953Srrsint execle(const char *, const char *, ...); 321163953Srrsint execlp(const char *, const char *, ...); 322163953Srrsint execv(const char *, char * const *); 323163953Srrsint execve(const char *, char * const *, char * const *); 324163953Srrsint execvp(const char *, char * const *); 325163953Srrspid_t fork(void); 326163953Srrslong fpathconf(int, int); 327163953Srrschar *getcwd(char *, size_t); 328163953Srrsgid_t getegid(void); 329163953Srrsuid_t geteuid(void); 330163953Srrsgid_t getgid(void); 331163953Srrsint getgroups(int, gid_t []); 332163953Srrschar *getlogin(void); 333163953Srrspid_t getpgrp(void); 334163953Srrspid_t getpid(void); 335217913Stuexenpid_t getppid(void); 336235557Stuexenuid_t getuid(void); 337218186Srrsint isatty(int); 338218186Srrsint link(const char *, const char *); 339218186Srrs#ifndef _LSEEK_DECLARED 340218186Srrs#define _LSEEK_DECLARED 341218186Srrsoff_t lseek(int, off_t, int); 342218186Srrs#endif 343219397Srrslong pathconf(const char *, int); 344219397Srrsint pause(void); 345218186Srrsint pipe(int *); 346218186Srrsssize_t read(int, void *, size_t); 347163953Srrsint rmdir(const char *); 348163953Srrsint setgid(gid_t); 349163953Srrsint setpgid(pid_t, pid_t); 350163953Srrsvoid setproctitle(const char *_fmt, ...) __printf0like(1, 2); 351163953Srrspid_t setsid(void); 352163953Srrsint setuid(uid_t); 353163953Srrsunsigned int sleep(unsigned int); 354163953Srrslong sysconf(int); 355163953Srrspid_t tcgetpgrp(int); 356163953Srrsint tcsetpgrp(int, pid_t); 357163953Srrschar *ttyname(int); 358163953Srrsint unlink(const char *); 359163953Srrsssize_t write(int, const void *, size_t); 360243157Stuexen 361163953Srrs/* 1003.2-1992 */ 362163953Srrs#if __POSIX_VISIBLE >= 199209 363163953Srrssize_t confstr(int, char *, size_t); 364163953Srrsint getopt(int, char * const [], const char *); 365163953Srrs 366163953Srrsextern char *optarg; /* getopt(3) external variables */ 367163953Srrsextern int optind, opterr, optopt; 368163953Srrs#endif 369163953Srrs 370163953Srrs/* ISO/IEC 9945-1: 1996 */ 371163953Srrs#if __POSIX_VISIBLE >= 199506 372163953Srrsint fsync(int); 373163953Srrs 374163953Srrs/* 375163953Srrs * ftruncate() was in the POSIX Realtime Extension (it's used for shared 376163953Srrs * memory), but truncate() was not. 377164205Srrs */ 378167598Srrs#ifndef _FTRUNCATE_DECLARED 379171990Srrs#define _FTRUNCATE_DECLARED 380228391Stuexenint ftruncate(int, off_t); 381228391Stuexen#endif 382163953Srrs 383163953Srrsint getlogin_r(char *, int); 384163953Srrs#endif 385228907Stuexen 386163953Srrs/* 1003.1-2001 */ 387163953Srrs#if __POSIX_VISIBLE >= 200112 388163953Srrsint fchown(int, uid_t, gid_t); 389163953Srrsint gethostname(char *, int /* socklen_t */); 390163953Srrsint setegid(gid_t); 391163953Srrsint seteuid(uid_t); 392163953Srrs#endif 393163953Srrs 394163953Srrs/* 395163953Srrs * symlink() was originally in POSIX.1a, which was withdrawn after 396163953Srrs * being overtaken by events (1003.1-2001). It was in XPG4.2, and of 397163953Srrs * course has been in BSD since 4.2. 398163953Srrs */ 399163953Srrs#if __POSIX_VISIBLE >= 200112 || __XSI_VISIBLE >= 402 || __BSD_VISIBLE 400163953Srrsint symlink(const char * __restrict, const char * __restrict); 401163953Srrs#endif 402188854Srrs 403163953Srrs/* X/Open System Interfaces */ 404163953Srrs#if __XSI_VISIBLE 405163953Srrschar *crypt(const char *, const char *); 406163953Srrs/* char *ctermid(char *); */ /* XXX ??? */ 407233660Srrsint encrypt(char *, int); 408233660Srrsint fchdir(int); 409163953Srrsint getpgid(pid_t _pid); 410163953Srrsint getsid(pid_t _pid); 411163953Srrschar *getwd(char *); /* LEGACY: obsoleted by getcwd() */ 412163953Srrsint lchown(const char *, uid_t, gid_t); 413163953Srrsint lockf(int, int, off_t); 414163953Srrsint nice(int); 415163953Srrsssize_t pread(int, void *, size_t, off_t); 416163953Srrsssize_t pwrite(int, const void *, size_t, off_t); 417218129Srrsint setpgrp(pid_t _pid, pid_t _pgrp); /* obsoleted by setpgid() */ 418163953Srrsint setregid(gid_t, gid_t); 419163953Srrsint setreuid(uid_t, uid_t); 420163953Srrs/* void swab(const void * __restrict, void * __restrict, ssize_t); */ 421163953Srrsvoid sync(void); 422163953Srrsunsigned int ualarm(unsigned int, unsigned int); 423163953Srrsint usleep(unsigned int); 424163953Srrspid_t vfork(void); 425163953Srrs 426163953Srrs/* See comment at ftruncate() above. */ 427163953Srrs#ifndef _TRUNCATE_DECLARED 428163953Srrs#define _TRUNCATE_DECLARED 429163953Srrsint truncate(const char *, off_t); 430163953Srrs#endif 431163953Srrs#endif /* __XSI_VISIBLE */ 432163953Srrs 433163953Srrs#if __BSD_VISIBLE 434163953Srrsstruct timeval; /* select(2) */ 435163953Srrsint acct(const char *); 436163953Srrsint async_daemon(void); 437163953Srrsint brk(const void *); 438163953Srrsint chroot(const char *); 439163953Srrsconst char * 440163953Srrs crypt_get_format(void); 441163953Srrsint crypt_set_format(const char *); 442163953Srrsint des_cipher(const char *, char *, long, int); 443163953Srrsint des_setkey(const char *key); 444163953Srrsvoid endusershell(void); 445185694Srrsint exect(const char *, char * const *, char * const *); 446185694Srrschar *fflagstostr(u_long); 447185694Srrsint getdomainname(char *, int); 448163953Srrsint getdtablesize(void); 449163953Srrsint getgrouplist(const char *, gid_t, gid_t *, int *); 450163953Srrslong gethostid(void); 451163953Srrsmode_t getmode(const void *, mode_t); 452163953Srrsint getpagesize(void) __pure2; 453163953Srrschar *getpass(const char *); 454163953Srrsint getpeereid(int, uid_t *, gid_t *); 455163953Srrsint getresgid(gid_t *, gid_t *, gid_t *); 456163953Srrsint getresuid(uid_t *, uid_t *, uid_t *); 457163953Srrschar *getusershell(void); 458163953Srrsint initgroups(const char *, gid_t); 459163953Srrsint iruserok(unsigned long, int, const char *, const char *); 460163953Srrsint iruserok_sa(const void *, int, int, const char *, const char *); 461163953Srrsint issetugid(void); 462163953Srrschar *mkdtemp(char *); 463294149Stuexenint mknod(const char *, mode_t, dev_t); 464163953Srrs#ifndef _MKSTEMP_DECLARED 465163953Srrsint mkstemp(char *); 466163953Srrs#define _MKSTEMP_DECLARED 467163953Srrs#endif 468163953Srrsint mkstemps(char *, int); 469163953Srrs#ifndef _MKTEMP_DECLARED 470163953Srrschar *mktemp(char *); 471163953Srrs#define _MKTEMP_DECLARED 472163953Srrs#endif 473163953Srrsint nfsclnt(int, void *); 474163953Srrsint nfssvc(int, void *); 475163953Srrsint profil(char *, size_t, vm_offset_t, int); 476163953Srrsint rcmd(char **, int, const char *, const char *, const char *, int *); 477171745Srrsint rcmd_af(char **, int, const char *, 478207924Srrs const char *, const char *, int *, int); 479163953Srrsint rcmdsh(char **, int, const char *, 480163953Srrs const char *, const char *, const char *); 481163953Srrschar *re_comp(const char *); 482171943Srrsint re_exec(const char *); 483172703Srrsint readlink(const char *, char *, int); 484172703Srrsint reboot(int); 485163953Srrsint revoke(const char *); 486163953Srrspid_t rfork(int); 487163953Srrspid_t rfork_thread(int, void *, int (*)(void *), void *); 488225635Stuexenint rresvport(int *); 489163953Srrsint rresvport_af(int *, int); 490163953Srrsint ruserok(const char *, int, const char *, const char *); 491163953Srrsvoid *sbrk(intptr_t); 492163953Srrs#if __BSD_VISIBLE 493163953Srrs#ifndef _SELECT_DECLARED 494167598Srrs#define _SELECT_DECLARED 495171440Srrsint select(int, fd_set *, fd_set *, fd_set *, struct timeval *); 496217635Srrs#endif 497163953Srrs#endif 498163953Srrsint setdomainname(const char *, int); 499163953Srrsint setgroups(int, const gid_t *); 500163953Srrsvoid sethostid(long); 501163953Srrsint sethostname(const char *, int); 502163953Srrs#ifndef _SETKEY_DECLARED 503163953Srrsint setkey(const char *); 504163953Srrs#define _SETKEY_DECLARED 505163953Srrs#endif 506163953Srrsint setlogin(const char *); 507163953Srrsvoid *setmode(const char *); 508169655Srrsint setresgid(gid_t, gid_t, gid_t); 509169655Srrsint setresuid(uid_t, uid_t, uid_t); 510163953Srrsint setrgid(gid_t); 511163953Srrsint setruid(uid_t); 512163953Srrsvoid setusershell(void); 513163953Srrsint strtofflags(char **, u_long *, u_long *); 514163953Srrsint swapon(const char *); 515163953Srrsint syscall(int, ...); 516163953Srrsoff_t __syscall(quad_t, ...); 517163953Srrsint ttyslot(void); 518206137Stuexenint undelete(const char *); 519163953Srrsint unwhiteout(const char *); 520163953Srrsvoid *valloc(size_t); /* obsoleted by malloc() */ 521163953Srrs 522163953Srrsextern char *suboptarg; /* getsubopt(3) external variable */ 523163953Srrs#ifndef _GETSUBOPT_DECLARED 524163953Srrsint getsubopt(char **, char * const *, char **); 525163953Srrs#define _GETSUBOPT_DECLARED 526163953Srrs#endif 527163953Srrsextern int optreset; /* getopt(3) external variable */ 528163953Srrs#endif /* __BSD_VISIBLE */ 529163953Srrs__END_DECLS 530163953Srrs 531163953Srrs#endif /* !_UNISTD_H_ */ 532163953Srrs