1 /* The <unistd.h> header contains a few miscellaneous manifest constants. */
7 #include <minix/types.h>
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 */
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 */
21 /* This value is required by POSIX Table 2-10. */
22 #define _POSIX_VERSION 199009L /* which standard is being conformed to */
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 */
30 /* How to exit the system or stop a server process. */
31 #define RBT_HALT 0 /* shutdown and return to monitor */
32 #define RBT_REBOOT 1 /* reboot the system through the monitor */
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 #define RBT_INVALID 5 /* first invalid reboot flag */
38 #define _PM_SEG_FLAG (1L << 30) /* for read() and write() to FS by PM */
41 /* What system info to retrieve with sysgetinfo(). */
42 #define SI_KINFO 0 /* get kernel info via PM */
43 #define SI_PROC_ADDR 1 /* address of process table */
44 #define SI_PROC_TAB 2 /* copy of entire process table */
45 #define SI_DMAP_TAB 3 /* get device <-> driver mappings */
46 #define SI_MEM_ALLOC 4 /* get memory allocation data */
47 #define SI_DATA_STORE 5 /* get copy of data store mappings */
48 #define SI_SUBSCRIPTION 6 /* get copy of data store subscriptions */
49 #define SI_LOADINFO 7 /* get copy of load average structure */
50 #define SI_KPROC_TAB 8 /* copy of kernel process table */
51 #define SI_CALL_STATS 9 /* system call statistics */
52 #define SI_PCI_INFO 10 /* get kernel info via PM */
53 #define SI_PROCPUB_TAB 11 /* copy of public entries of process table */
55 /* NULL must be defined in <unistd.h> according to POSIX Sec. 2.7.1. */
56 #define NULL ((void *)0)
58 /* The following relate to configurable system variables. POSIX Table 4-2. */
60 #define _SC_CHILD_MAX 2
61 #define _SC_CLOCKS_PER_SEC 3
63 #define _SC_NGROUPS_MAX 4
64 #define _SC_OPEN_MAX 5
65 #define _SC_JOB_CONTROL 6
66 #define _SC_SAVED_IDS 7
68 #define _SC_STREAM_MAX 9
69 #define _SC_TZNAME_MAX 10
70 #define _SC_PAGESIZE 11
71 #define _SC_PAGE_SIZE _SC_PAGESIZE
73 /* The following relate to configurable pathname variables. POSIX Table 5-2. */
74 #define _PC_LINK_MAX 1 /* link count */
75 #define _PC_MAX_CANON 2 /* size of the canonical input queue */
76 #define _PC_MAX_INPUT 3 /* type-ahead buffer size */
77 #define _PC_NAME_MAX 4 /* file name size */
78 #define _PC_PATH_MAX 5 /* pathname size */
79 #define _PC_PIPE_BUF 6 /* pipe size */
80 #define _PC_NO_TRUNC 7 /* treatment of long name components */
81 #define _PC_VDISABLE 8 /* tty disable */
82 #define _PC_CHOWN_RESTRICTED 9 /* chown restricted or not */
84 /* POSIX defines several options that may be implemented or not, at the
85 * implementer's whim. This implementer has made the following choices:
87 * _POSIX_JOB_CONTROL not defined: no job control
88 * _POSIX_SAVED_IDS not defined: no saved uid/gid
89 * _POSIX_NO_TRUNC defined as -1: long path names are truncated
90 * _POSIX_CHOWN_RESTRICTED defined: you can't give away files
91 * _POSIX_VDISABLE defined: tty functions can be disabled
93 #define _POSIX_NO_TRUNC (-1)
94 #define _POSIX_CHOWN_RESTRICTED 1
96 /* Function Prototypes. */
97 _PROTOTYPE( void _exit
, (int _status
) );
98 _PROTOTYPE( int access
, (const char *_path
, int _amode
) );
99 _PROTOTYPE( unsigned int alarm
, (unsigned int _seconds
) );
100 _PROTOTYPE( int chdir
, (const char *_path
) );
101 _PROTOTYPE( int fchdir
, (int fd
) );
102 _PROTOTYPE( int chown
, (const char *_path
, _mnx_Uid_t _owner
, _mnx_Gid_t _group
) );
103 _PROTOTYPE( int fchown
, (int fd
, _mnx_Uid_t _owner
, _mnx_Gid_t _group
) );
104 _PROTOTYPE( int close
, (int _fd
) );
105 _PROTOTYPE( char *ctermid
, (char *_s
) );
106 _PROTOTYPE( char *cuserid
, (char *_s
) );
107 _PROTOTYPE( int dup
, (int _fd
) );
108 _PROTOTYPE( int dup2
, (int _fd
, int _fd2
) );
109 _PROTOTYPE( int execl
, (const char *_path
, const char *_arg
, ...) );
110 _PROTOTYPE( int execle
, (const char *_path
, const char *_arg
, ...) );
111 _PROTOTYPE( int execlp
, (const char *_file
, const char *arg
, ...) );
112 _PROTOTYPE( int execv
, (const char *_path
, char *const _argv
[]) );
113 _PROTOTYPE( int execve
, (const char *_path
, char *const _argv
[],
114 char *const _envp
[]) );
115 _PROTOTYPE( int execvp
, (const char *_file
, char *const _argv
[]) );
116 _PROTOTYPE( pid_t fork
, (void) );
117 _PROTOTYPE( long fpathconf
, (int _fd
, int _name
) );
118 _PROTOTYPE( char *getcwd
, (char *_buf
, size_t _size
) );
119 _PROTOTYPE( gid_t getegid
, (void) );
120 _PROTOTYPE( uid_t geteuid
, (void) );
121 _PROTOTYPE( gid_t getgid
, (void) );
122 _PROTOTYPE( int getgroups
, (int _gidsetsize
, gid_t _grouplist
[]) );
123 _PROTOTYPE( int setgroups
, (int _ngroups
, gid_t
const *grps
) );
124 _PROTOTYPE( char *getlogin
, (void) );
125 _PROTOTYPE( pid_t getpgrp
, (void) );
126 _PROTOTYPE( pid_t getpid
, (void) );
127 _PROTOTYPE( pid_t getppid
, (void) );
128 _PROTOTYPE( uid_t getuid
, (void) );
129 _PROTOTYPE( int isatty
, (int _fd
) );
130 _PROTOTYPE( int link
, (const char *_existing
, const char *_new
) );
131 _PROTOTYPE( off_t lseek
, (int _fd
, off_t _offset
, int _whence
) );
132 _PROTOTYPE( long pathconf
, (const char *_path
, int _name
) );
133 _PROTOTYPE( int pause
, (void) );
134 _PROTOTYPE( int pipe
, (int _fildes
[2]) );
135 _PROTOTYPE( ssize_t read
, (int _fd
, void *_buf
, size_t _n
) );
136 _PROTOTYPE( ssize_t pread
, (int, void *, size_t, off_t
) );
137 _PROTOTYPE( int rmdir
, (const char *_path
) );
138 _PROTOTYPE( int setgid
, (_mnx_Gid_t _gid
) );
139 _PROTOTYPE( int setegid
, (_mnx_Gid_t _gid
) );
140 _PROTOTYPE( int setpgid
, (pid_t _pid
, pid_t _pgid
) );
141 _PROTOTYPE( pid_t setsid
, (void) );
142 _PROTOTYPE( int setuid
, (_mnx_Uid_t _uid
) );
143 _PROTOTYPE( int seteuid
, (_mnx_Uid_t _uid
) );
144 _PROTOTYPE( unsigned int sleep
, (unsigned int _seconds
) );
145 _PROTOTYPE( long sysconf
, (int _name
) );
146 _PROTOTYPE( pid_t tcgetpgrp
, (int _fd
) );
147 _PROTOTYPE( int tcsetpgrp
, (int _fd
, pid_t _pgrp_id
) );
148 _PROTOTYPE( char *ttyname
, (int _fd
) );
149 _PROTOTYPE( int unlink
, (const char *_path
) );
150 _PROTOTYPE( ssize_t write
, (int _fd
, const void *_buf
, size_t _n
) );
151 _PROTOTYPE( int truncate
, (const char *_path
, off_t _length
) );
152 _PROTOTYPE( int ftruncate
, (int _fd
, off_t _length
) );
153 _PROTOTYPE( int nice
, (int _incr
) );
155 /* Open Group Base Specifications Issue 6 (not complete) */
156 _PROTOTYPE( int symlink
, (const char *path1
, const char *path2
) );
157 _PROTOTYPE( int readlink
, (const char *, char *, size_t) );
158 _PROTOTYPE( int getopt
, (int _argc
, char * const _argv
[], char const *_opts
) );
160 extern int optind
, opterr
, optopt
;
161 _PROTOTYPE( int usleep
, (useconds_t _useconds
) );
165 #include <minix/type.h>
168 extern int optreset
; /* Reset getopt state */
170 _PROTOTYPE( int brk
, (char *_addr
) );
171 _PROTOTYPE( int chroot
, (const char *_name
) );
172 _PROTOTYPE( int lseek64
, (int _fd
, u64_t _offset
, int _whence
,
174 _PROTOTYPE( int mknod
, (const char *_name
, _mnx_Mode_t _mode
, Dev_t _addr
) );
175 _PROTOTYPE( int mknod4
, (const char *_name
, _mnx_Mode_t _mode
, Dev_t _addr
,
177 _PROTOTYPE( char *mktemp
, (char *_template
) );
178 _PROTOTYPE( long ptrace
, (int _req
, pid_t _pid
, long _addr
, long _data
) );
179 _PROTOTYPE( char *sbrk
, (int _incr
) );
180 _PROTOTYPE( int sync
, (void) );
181 _PROTOTYPE( int fsync
, (int fd
) );
182 _PROTOTYPE( int reboot
, (int _how
, ...) );
183 _PROTOTYPE( int gethostname
, (char *_hostname
, size_t _len
) );
184 _PROTOTYPE( int getdomainname
, (char *_domain
, size_t _len
) );
185 _PROTOTYPE( int ttyslot
, (void) );
186 _PROTOTYPE( int fttyslot
, (int _fd
) );
187 _PROTOTYPE( char *crypt
, (const char *_key
, const char *_salt
) );
188 _PROTOTYPE( int getsysinfo
, (endpoint_t who
, int what
, void *where
) );
189 _PROTOTYPE( int getsigset
, (sigset_t
*sigset
) );
190 _PROTOTYPE( int getprocnr
, (void) );
191 _PROTOTYPE( int getnprocnr
, (pid_t pid
) );
192 _PROTOTYPE( int getpprocnr
, (void) );
193 _PROTOTYPE( int _pm_findproc
, (char *proc_name
, int *proc_nr
) );
194 _PROTOTYPE( int mapdriver
, (char *label
, int major
, int style
,
196 _PROTOTYPE(int adddma
, (endpoint_t proc_e
,
197 phys_bytes start
, phys_bytes size
) );
198 _PROTOTYPE(int deldma
, (endpoint_t proc_e
,
199 phys_bytes start
, phys_bytes size
) );
200 _PROTOTYPE(int getdma
, (endpoint_t
*procp
, phys_bytes
*basep
,
201 phys_bytes
*sizep
) );
203 _PROTOTYPE( pid_t getnpid
, (endpoint_t proc_ep
) );
204 _PROTOTYPE( uid_t getnuid
, (endpoint_t proc_ep
) );
205 _PROTOTYPE( gid_t getngid
, (endpoint_t proc_ep
) );
207 /* For compatibility with other Unix systems */
208 _PROTOTYPE( int getpagesize
, (void) );
209 _PROTOTYPE( int setgroups
, (int ngroups
, const gid_t
*gidset
) );
210 _PROTOTYPE( int initgroups
, (const char *name
, gid_t basegid
) );
215 _PROTOTYPE( int getdtablesize
, (void) );
218 #endif /* _UNISTD_H */