8 #include <klibc/extern.h>
9 #include <klibc/compiler.h>
11 #include <sys/types.h>
12 #include <sys/select.h>
14 __extern char **environ;
15 __extern __noreturn _exit(int);
17 __extern pid_t fork(void);
18 __extern pid_t vfork(void);
19 __extern pid_t getpid(void);
20 __extern pid_t getpgid(pid_t);
21 __extern int setpgid(pid_t, pid_t);
22 __extern pid_t getppid(void);
23 __extern pid_t getpgrp(void);
24 __extern int setpgrp(void);
25 __extern pid_t setsid(void);
26 __extern pid_t getsid(pid_t);
27 __extern int execv(const char *, char * const *);
28 __extern int execvp(const char *, char * const *);
29 __extern int execve(const char *, char * const *, char * const *);
30 __extern int execvpe(const char *, char * const *, char * const *);
31 __extern int execl(const char *, const char *, ...);
32 __extern int execlp(const char *, const char *, ...);
33 __extern int execle(const char *, const char *, ...);
34 __extern int execlpe(const char *, const char *, ...);
36 __extern int setuid(uid_t);
37 __extern uid_t getuid(void);
38 __extern int seteuid(uid_t);
39 __extern uid_t geteuid(void);
40 __extern int setgid(gid_t);
41 __extern gid_t getgid(void);
42 __extern int setegid(gid_t);
43 __extern gid_t getegid(void);
44 __extern int getgroups(int, gid_t *);
45 __extern int setgroups(size_t, const gid_t *);
46 __extern int setreuid(uid_t, uid_t);
47 __extern int setregid(gid_t, gid_t);
48 __extern int setresuid(uid_t, uid_t, uid_t);
49 __extern int setresgid(gid_t, gid_t, gid_t);
50 __extern int getfsuid(uid_t);
51 __extern int setfsuid(uid_t);
53 /* Macros for access() */
54 #define R_OK 4 /* Read */
55 #define W_OK 2 /* Write */
56 #define X_OK 1 /* Execute */
57 #define F_OK 0 /* Existence */
59 __extern int access(const char *, int);
60 __extern int link(const char *, const char *);
61 __extern int unlink(const char *);
62 __extern int chdir(const char *);
63 __extern int chmod(const char *, mode_t);
64 __extern int fchmod(int, mode_t);
65 __extern int mkdir(const char *, mode_t);
66 __extern int rmdir(const char *);
67 __extern int pipe(int *);
68 __extern int chroot(const char *);
69 __extern int symlink(const char *, const char *);
70 __extern int readlink(const char *, char *, size_t);
71 __extern int chown(const char *, uid_t, gid_t);
72 __extern int fchown(int, uid_t, gid_t);
73 __extern int lchown(const char *, uid_t, gid_t);
74 __extern char *getcwd(char *, size_t);
76 __extern int sync(void);
78 __extern ssize_t read(int, void *, size_t);
79 __extern ssize_t write(int, const void *, size_t);
81 __extern __cdecl int open(const char *, int, ...);
83 __extern int close(int);
84 __extern off_t lseek(int, off_t, int);
85 __extern loff_t llseek(int, loff_t, int);
86 __extern int dup(int);
87 __extern int dup2(int, int);
88 __extern int fcntl(int, int, long);
89 __extern int ioctl(int, int, void *);
90 __extern int flock(int, int);
91 __extern int fsync(int);
92 __extern int fdatasync(int);
93 __extern int ftruncate(int, off_t);
95 __extern int pause(void);
96 __extern unsigned int alarm(unsigned int);
97 __extern unsigned int sleep(unsigned int);
98 __extern void usleep(unsigned long);
100 __extern int gethostname(char *, size_t);
101 __extern int sethostname(const char *, size_t);
102 __extern int getdomainname(char *, size_t);
103 __extern int setdomainname(const char *, size_t);
105 __extern void *__brk(void *);
106 __extern int brk(void *);
107 __extern void *sbrk(ptrdiff_t);
109 __extern int getopt(int, char * const *, const char *);
110 __extern char *optarg;
111 __extern int optind, opterr, optopt;
113 __extern int isatty(int);
115 __extern int getpagesize(void);
117 /* Standard file descriptor numbers. */
118 #define STDIN_FILENO 0
119 #define STDOUT_FILENO 1
120 #define STDERR_FILENO 2
122 #endif /* _UNISTD_H */