Merge branch 'master' of git://cadel.mutabah.net/acess2
[tpg/acess2.git] / Usermode / Libraries / libposix.so_src / include_exp / unistd.h
1 /*
2  * Acess2 POSIX Emulation Layer
3  * - By John Hodge
4  * 
5  * unistd.h
6  * - 
7  */
8 #ifndef _UNISTD_H_
9 #define _UNISTD_H_
10
11 #include <stddef.h>
12
13 //! \brief flags for open(2)
14 #define O_WRONLY        0x01
15 #define O_RDONLY        0x02
16 #define O_RDWR          0x03
17 #define O_APPEND        0x04
18 #define O_CREAT         0x08
19 #define O_DIRECTORY     0x10
20 #define O_ASYNC         0x20
21 #define O_TRUNC         0x40
22 #define O_NOFOLLOW      0x80    // don't follow symlinks
23 #define O_EXCL          0x100
24 #define O_NOCTTY        0       // unsupported
25 #define O_NONBLOCK      0x200
26 #define O_SYNC  0       // not supported
27
28 #define STDIN_FILENO    0
29 #define STDOUT_FILENO   1
30 #define STDERR_FILENO   2
31
32 typedef signed long     ssize_t;
33
34 #include "sys/stat.h"   // mode_t
35
36 extern int      open(const char *path, int flags, ...);
37 extern int      creat(const char *path, mode_t mode);
38 extern int      close(int fd);
39
40 extern ssize_t  write(int fd, const void *buf, size_t count);
41 extern ssize_t  read(int fd, void *buf, size_t count);
42 extern off_t    lseek(int fd, off_t offset, int whence);
43
44 extern int      fork(void);
45 extern int      execv(const char *b, char *v[]);
46
47 extern int      dup2(int oldfd, int newfd);
48
49 extern int      chown(const char *path, uid_t owner, gid_t group);
50
51 #define S_ISUID 04000
52 #define S_ISGID 02000
53 #define S_ISVTX 01000
54 #define S_IRWXU 00700
55 #define S_IRUSR 00400
56 #define S_IWUSR 00300
57 #define S_IXUSR 00100
58 #define S_IRWXG 00070
59 #define S_IRGRP 00040
60 #define S_IWGRP 00020
61 #define S_IXGRP 00010
62 #define S_IRWXO 0007
63 #define S_IROTH 00004
64 #define S_IWOTH 00002
65 #define S_IXOTH 00001
66 extern int      chmod(const char *path, mode_t mode);
67
68 extern pid_t    setsid(void);
69
70 extern uid_t    getuid(void);
71 //extern int    setuid(uid_t uid);
72 extern uid_t    geteuid(void);
73 extern pid_t    getpid(void);
74 extern int      seteuid(uid_t euid);
75 extern int      setegid(gid_t egid);
76 //extern int    setgid(gid_t gid);
77
78 typedef uint32_t        useconds_t;
79
80 extern unsigned int     sleep(unsigned int seconds);
81 extern int      usleep(useconds_t usec);
82
83 // - crypt.c
84 extern char     *crypt(const char *key, const char *salt);
85
86 // - pty.c
87 extern char     *ttyname(int fd);
88 extern int      ttyname_r(int fd, char *buf, size_t buflen);
89
90 // signal.h / sys/types.h
91 extern int kill(pid_t pid, int sig);
92
93 extern int      chdir(const char *dir);
94 extern int      rmdir(const char *pathname);
95
96 // Deprecated POSIX.1-2001
97 #define PASS_MAX        63
98 extern char *getpass(const char *prompt);
99
100 #endif
101

UCC git Repository :: git.ucc.asn.au