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

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