1: /* The <unistd.h> header contains a few miscellaneous manifest constants. */ 2: 3: #ifndef _UNISTD_H 4: #define _UNISTD_H 5: 6: #ifndef _TYPES_H 7: #include <sys/types.h> 8: #endif 9: 10: /* Values used by access(). POSIX Table 2-8. */ 11: #define F_OK 0 /* test if file exists */ 12: #define X_OK 1 /* test if file is executable */ 13: #define W_OK 2 /* test if file is writable */ 14: #define R_OK 4 /* test if file is readable */ 15: 16: /* Values used for whence in lseek(fd, offset, whence). POSIX Table 2-9. */ 17: #define SEEK_SET 0 /* offset is absolute */ 18: #define SEEK_CUR 1 /* offset is relative to current position */ 19: #define SEEK_END 2 /* offset is relative to end of file */ 20: 21: /* This value is required by POSIX Table 2-10. */ 22: #define _POSIX_VERSION 199009L /* which standard is being conformed to */ 23: 24: /* These three definitions are required by POSIX Sec. 8.2.1.2. */ 25: #define STDIN_FILENO 0 /* file descriptor for stdin */ 26: #define STDOUT_FILENO 1 /* file descriptor for stdout */ 27: #define STDERR_FILENO 2 /* file descriptor for stderr */ 28: 29: #ifdef _MINIX 30: /* How to exit the system or stop a server process. */ 31: #define RBT_HALT 0 32: #define RBT_REBOOT 1 33: #define RBT_PANIC 2 /* a server panics */ 34: #define RBT_MONITOR 3 /* let the monitor do this */ 35: #define RBT_RESET 4 /* hard reset the system */ 36: #endif 37: 38: /* What system info to retrieve with sysgetinfo(). */ 39: #define SI_KINFO 0 /* get kernel info via PM */ 40: #define SI_PROC_ADDR 1 /* address of process table */ 41: #define SI_PROC_TAB 2 /* copy of entire process table */ 42: #define SI_DMAP_TAB 3 /* get device <-> driver mappings */ 43: #define SI_MEM_ALLOC 4 /* get memory allocation data */ 44: #define SI_DATA_STORE 5 /* get copy of data store */ 45: 46: /* NULL must be defined in <unistd.h> according to POSIX Sec. 2.7.1. */ 47: #define NULL ((void *)0) 48: 49: /* The following relate to configurable system variables. POSIX Table 4-2. */ 50: #define _SC_ARG_MAX 1 51: #define _SC_CHILD_MAX 2 52: #define _SC_CLOCKS_PER_SEC 3 53: #define _SC_CLK_TCK 3 54: #define _SC_NGROUPS_MAX 4 55: #define _SC_OPEN_MAX 5 56: #define _SC_JOB_CONTROL 6 57: #define _SC_SAVED_IDS 7 58: #define _SC_VERSION 8 59: #define _SC_STREAM_MAX 9 60: #define _SC_TZNAME_MAX 10 61: 62: /* The following relate to configurable pathname variables. POSIX Table 5-2. */ 63: #define _PC_LINK_MAX 1 /* link count */ 64: #define _PC_MAX_CANON 2 /* size of the canonical input queue */ 65: #define _PC_MAX_INPUT 3 /* type-ahead buffer size */ 66: #define _PC_NAME_MAX 4 /* file name size */ 67: #define _PC_PATH_MAX 5 /* pathname size */ 68: #define _PC_PIPE_BUF 6 /* pipe size */ 69: #define _PC_NO_TRUNC 7 /* treatment of long name components */ 70: #define _PC_VDISABLE 8 /* tty disable */ 71: #define _PC_CHOWN_RESTRICTED 9 /* chown restricted or not */ 72: 73: /* POSIX defines several options that may be implemented or not, at the 74: * implementer's whim. This implementer has made the following choices: 75: * 76: * _POSIX_JOB_CONTROL not defined: no job control 77: * _POSIX_SAVED_IDS not defined: no saved uid/gid 78: * _POSIX_NO_TRUNC defined as -1: long path names are truncated 79: * _POSIX_CHOWN_RESTRICTED defined: you can't give away files 80: * _POSIX_VDISABLE defined: tty functions can be disabled 81: */ 82: #define _POSIX_NO_TRUNC (-1) 83: #define _POSIX_CHOWN_RESTRICTED 1 84: 85: /* Function Prototypes. */ 86: _PROTOTYPE( void _exit, (int _status) ); 87: _PROTOTYPE( int access, (const char *_path, int _amode) ); 88: _PROTOTYPE( unsigned int alarm, (unsigned int _seconds) ); 89: _PROTOTYPE( int chdir, (const char *_path) ); 90: _PROTOTYPE( int fchdir, (int fd) ); 91: _PROTOTYPE( int chown, (const char *_path, _mnx_Uid_t _owner, _mnx_Gid_t _group) ); 92: _PROTOTYPE( int close, (int _fd) ); 93: _PROTOTYPE( char *ctermid, (char *_s) ); 94: _PROTOTYPE( char *cuserid, (char *_s) ); 95: _PROTOTYPE( int dup, (int _fd) ); 96: _PROTOTYPE( int dup2, (int _fd, int _fd2) ); 97: _PROTOTYPE( int execl, (const char *_path, const char *_arg, ...) ); 98: _PROTOTYPE( int execle, (const char *_path, const char *_arg, ...) ); 99: _PROTOTYPE( int execlp, (const char *_file, const char *arg, ...) ); 100: _PROTOTYPE( int execv, (const char *_path, char *const _argv[]) ); 101: _PROTOTYPE( int execve, (const char *_path, char *const _argv[], 102: char *const _envp[]) ); 103: _PROTOTYPE( int execvp, (const char *_file, char *const _argv[]) ); 104: _PROTOTYPE( pid_t fork, (void) ); 105: _PROTOTYPE( long fpathconf, (int _fd, int _name) ); 106: _PROTOTYPE( char *getcwd, (char *_buf, size_t _size) ); 107: _PROTOTYPE( gid_t getegid, (void) ); 108: _PROTOTYPE( uid_t geteuid, (void) ); 109: _PROTOTYPE( gid_t getgid, (void) ); 110: _PROTOTYPE( int getgroups, (int _gidsetsize, gid_t _grouplist[]) ); 111: _PROTOTYPE( char *getlogin, (void) ); 112: _PROTOTYPE( pid_t getpgrp, (void) ); 113: _PROTOTYPE( pid_t getpid, (void) ); 114: _PROTOTYPE( pid_t getnpid, (int proc_nr) ); 115: _PROTOTYPE( pid_t getppid, (void) ); 116: _PROTOTYPE( uid_t getuid, (void) ); 117: _PROTOTYPE( int isatty, (int _fd) ); 118: _PROTOTYPE( int link, (const char *_existing, const char *_new) ); 119: _PROTOTYPE( off_t lseek, (int _fd, off_t _offset, int _whence) ); 120: _PROTOTYPE( long pathconf, (const char *_path, int _name) ); 121: _PROTOTYPE( int pause, (void) ); 122: _PROTOTYPE( int pipe, (int _fildes[2]) ); 123: _PROTOTYPE( ssize_t read, (int _fd, void *_buf, size_t _n) ); 124: _PROTOTYPE( int rmdir, (const char *_path) ); 125: _PROTOTYPE( int setgid, (_mnx_Gid_t _gid) ); 126: _PROTOTYPE( int setpgid, (pid_t _pid, pid_t _pgid) ); 127: _PROTOTYPE( pid_t setsid, (void) ); 128: _PROTOTYPE( int setuid, (_mnx_Uid_t _uid) ); 129: _PROTOTYPE( unsigned int sleep, (unsigned int _seconds) ); 130: _PROTOTYPE( long sysconf, (int _name) ); 131: _PROTOTYPE( pid_t tcgetpgrp, (int _fd) ); 132: _PROTOTYPE( int tcsetpgrp, (int _fd, pid_t _pgrp_id) ); 133: _PROTOTYPE( char *ttyname, (int _fd) ); 134: _PROTOTYPE( int unlink, (const char *_path) ); 135: _PROTOTYPE( ssize_t write, (int _fd, const void *_buf, size_t _n) ); 136: 137: /* Open Group Base Specifications Issue 6 (not complete) */ 138: _PROTOTYPE( int symlink, (const char *path1, const char *path2) ); 139: _PROTOTYPE( int getopt, (int _argc, char **_argv, char *_opts) ); 140: extern char *optarg; 141: extern int optind, opterr, optopt; 142: _PROTOTYPE( int usleep, (useconds_t _useconds) ); 143: 144: #ifdef _MINIX 145: #ifndef _TYPE_H 146: #include <minix/type.h> 147: #endif 148: _PROTOTYPE( int brk, (char *_addr) ); 149: _PROTOTYPE( int chroot, (const char *_name) ); 150: _PROTOTYPE( int mknod, (const char *_name, _mnx_Mode_t _mode, Dev_t _addr) ); 151: _PROTOTYPE( int mknod4, (const char *_name, _mnx_Mode_t _mode, Dev_t _addr, 152: long _size) ); 153: _PROTOTYPE( char *mktemp, (char *_template) ); 154: _PROTOTYPE( int mount, (char *_spec, char *_name, int _flag) ); 155: _PROTOTYPE( long ptrace, (int _req, pid_t _pid, long _addr, long _data) ); 156: _PROTOTYPE( char *sbrk, (int _incr) ); 157: _PROTOTYPE( int sync, (void) ); 158: _PROTOTYPE( int fsync, (int fd) ); 159: _PROTOTYPE( int umount, (const char *_name) ); 160: _PROTOTYPE( int reboot, (int _how, ...) ); 161: _PROTOTYPE( int gethostname, (char *_hostname, size_t _len) ); 162: _PROTOTYPE( int getdomainname, (char *_domain, size_t _len) ); 163: _PROTOTYPE( int ttyslot, (void) ); 164: _PROTOTYPE( int fttyslot, (int _fd) ); 165: _PROTOTYPE( char *crypt, (const char *_key, const char *_salt) ); 166: _PROTOTYPE( int getsysinfo, (int who, int what, void *where) ); 167: _PROTOTYPE( int getprocnr, (void) ); 168: _PROTOTYPE( int getnprocnr, (pid_t pid) ); 169: _PROTOTYPE( int getpprocnr, (void) ); 170: _PROTOTYPE( int findproc, (char *proc_name, int *proc_nr) ); 171: _PROTOTYPE( int allocmem, (phys_bytes size, phys_bytes *base) ); 172: _PROTOTYPE( int freemem, (phys_bytes size, phys_bytes base) ); 173: #define DEV_MAP 1 174: #define DEV_UNMAP 2 175: #define mapdriver(driver, device, style) devctl(DEV_MAP, driver, device, style) 176: #define unmapdriver(device) devctl(DEV_UNMAP, 0, device, 0) 177: _PROTOTYPE( int devctl, (int ctl_req, int driver, int device, int style)); 178: 179: /* For compatibility with other Unix systems */ 180: _PROTOTYPE( int getpagesize, (void) ); 181: _PROTOTYPE( int setgroups, (int ngroups, const gid_t *gidset) ); 182: 183: #endif 184: 185: _PROTOTYPE( int readlink, (const char *, char *, int)); 186: _PROTOTYPE( int getopt, (int, char **, char *)); 187: extern int optind, opterr, optopt; 188: 189: #endif /* _UNISTD_H */