Diff markup
001 001
002 002
003 003
004 004
005 005
006 006
007 007
008 008
009 009
010 010
011 011
012 012
013 013
014 014
015 015
016 016
017 017
018 018
019 #ifndef _SOS_USER_LIBC_H_ 019 #ifndef _SOS_USER_LIBC_H_
020 #define _SOS_USER_LIBC_H_ 020 #define _SOS_USER_LIBC_H_
021 021
022 #include <types.h> 022 #include <types.h>
023 023
024 024
025 025
026 026
027 027
028 028
029 029
030 030
031 031
032 032
033 void exit (int status); 033 void exit (int status);
034 034
035 035
036 036
037 037
038 038
039 pid_t fork(void); 039 pid_t fork(void);
040 040
041 041
042 042
043 043
044 044
045 045
046 int exec(const char *progname); 046 int exec(const char *progname);
047 047
048 048
049 int nanosleep(unsigned long int sec, 049 int nanosleep(unsigned long int sec,
050 unsigned long int nanosec); 050 unsigned long int nanosec);
051 051
052 052
053 int sleep(unsigned int seconds); 053 int sleep(unsigned int seconds);
054 054
055 055
056 056
057 057
058 058
059 059
060 #define PROT_NONE 0 060 #define PROT_NONE 0
061 #define PROT_READ (1<<0) 061 #define PROT_READ (1<<0)
062 #define PROT_WRITE (1<<1) 062 #define PROT_WRITE (1<<1)
063 #define PROT_EXEC (1<<2) 063 #define PROT_EXEC (1<<2)
064 064
065 #define MAP_SHARED (1 << 0) !! 065 #define MAP_PRIVATE (0 << 0)
066 #define MAP_FIXED (1 << 31) !! 066 #define MAP_SHARED (1 << 0)
>> 067 #define MAP_FIXED (1 << 31)
067 068
068 069
069 070
070 071
071 072
072 int munmap(void * start, size_t length); 073 int munmap(void * start, size_t length);
073 074
074 075
075 076
076 077
077 078
078 int mprotect(const void *addr, size_t len, int 079 int mprotect(const void *addr, size_t len, int prot);
079 080
080 081
081 082
082 083
083 084
084 #define MREMAP_MAYMOVE (1 << 30) 085 #define MREMAP_MAYMOVE (1 << 30)
085 086
086 087
087 088
088 089
089 void * mremap(void * old_addr, size_t old_len, 090 void * mremap(void * old_addr, size_t old_len,
090 size_t new_len, 091 size_t new_len,
091 unsigned long flags); 092 unsigned long flags);
092 093
093 094
>> 095
>> 096 #define MS_SYNC (1 << 0)
>> 097 #define MS_ASYNC (0 << 0)
>> 098
>> 099
>> 100 int msync(void *start, size_t length, int flags);
>> 101
>> 102
094 103
095 104
096 105
097 106
098 107
099 int brk(void *end_data_seg); 108 int brk(void *end_data_seg);
100 109
101 110
102 void *sbrk(ptrdiff_t increment); 111 void *sbrk(ptrdiff_t increment);
103 112
104 113
105 void * calloc (size_t nmemb, size_t size); 114 void * calloc (size_t nmemb, size_t size);
106 115
107 116
108 void * malloc (size_t size); 117 void * malloc (size_t size);
109 118
110 119
111 void free(void *ptr); 120 void free(void *ptr);
112 121
113 122
114 123
115 124
116 125
117 126
118 int mount(const char *source, const char *targ 127 int mount(const char *source, const char *target,
119 const char *filesystemtype, unsigned 128 const char *filesystemtype, unsigned long mountflags,
120 const char *data); 129 const char *data);
121 130
122 131
123 int umount(const char *target); 132 int umount(const char *target);
124 133
125 134
126 void sync(void); 135 void sync(void);
127 136
128 137
129 struct statvfs 138 struct statvfs
130 { 139 {
131 unsigned int f_rdev_major; 140 unsigned int f_rdev_major;
132 unsigned int f_rdev_minor; 141 unsigned int f_rdev_minor;
133 size_t f_sz_total; 142 size_t f_sz_total;
134 size_t f_sz_free; 143 size_t f_sz_free;
135 unsigned int f_node_total; 144 unsigned int f_node_total;
136 unsigned int f_node_avail; 145 unsigned int f_node_avail;
137 unsigned int f_flags; 146 unsigned int f_flags;
138 }; 147 };
139 148
140 int statvfs(const char *path, struct statvfs * 149 int statvfs(const char *path, struct statvfs *buf);
141 150
142 151
143 #define O_EXCL (1 << 0) 152 #define O_EXCL (1 << 0)
144 #define O_CREAT (1 << 1) 153 #define O_CREAT (1 << 1)
145 #define O_TRUNC (1 << 2) 154 #define O_TRUNC (1 << 2)
146 #define O_NOFOLLOW (1 << 3) 155 #define O_NOFOLLOW (1 << 3)
147 #define O_DIRECTORY (1 << 4) 156 #define O_DIRECTORY (1 << 4)
148 #define O_SYNC (1 << 5) 157 #define O_SYNC (1 << 5)
149 158
150 #define O_RDONLY (1 << 16) 159 #define O_RDONLY (1 << 16)
151 #define O_WRONLY (1 << 17) 160 #define O_WRONLY (1 << 17)
152 #define O_RDWR (O_RDONLY | O_WRONLY) 161 #define O_RDWR (O_RDONLY | O_WRONLY)
153 162
154 163
155 164
156 165
157 #define S_IRUSR 00400 166 #define S_IRUSR 00400
158 #define S_IWUSR 00200 167 #define S_IWUSR 00200
159 #define S_IXUSR 00100 168 #define S_IXUSR 00100
160 #define S_IRWXALL 07777 169 #define S_IRWXALL 07777
161 170
162 int open(const char *pathname, int flags, 171 int open(const char *pathname, int flags, ...);
163 172
164 int close(int fd); 173 int close(int fd);
165 174
166 175
167 int read(int fd, char * buf, size_t len); 176 int read(int fd, char * buf, size_t len);
168 int write(int fd, const char * buf, size_t len 177 int write(int fd, const char * buf, size_t len);
169 178
170 179
171 #define SEEK_SET 42 180 #define SEEK_SET 42
172 #define SEEK_CUR 24 181 #define SEEK_CUR 24
173 #define SEEK_END 84 182 #define SEEK_END 84
174 off_t lseek(int fd, off_t offset, int whence); 183 off_t lseek(int fd, off_t offset, int whence);
175 loff_t lseek64(int fd, loff_t offset, int when 184 loff_t lseek64(int fd, loff_t offset, int whence);
176 void * mmap(void *start, size_t length, int pr 185 void * mmap(void *start, size_t length, int prot , int flags,
177 int fd, loff_t offset); 186 int fd, loff_t offset);
178 int ftruncate(int fd, off_t length); 187 int ftruncate(int fd, off_t length);
179 int ftruncate64(int fd, loff_t length); 188 int ftruncate64(int fd, loff_t length);
180 int fcntl(int fd, int cmd, int arg); 189 int fcntl(int fd, int cmd, int arg);
181 int ioctl(int fd, int cmd, int arg); 190 int ioctl(int fd, int cmd, int arg);
182 191
183 int creat(const char *pathname, mode_t mode); 192 int creat(const char *pathname, mode_t mode);
184 int link (const char *oldpath, const char *new 193 int link (const char *oldpath, const char *newpath);
185 int unlink(const char *pathname); 194 int unlink(const char *pathname);
186 int rename(const char *oldpath, const char *ne 195 int rename(const char *oldpath, const char *newpath);
187 int symlink(const char *target, const char *pa 196 int symlink(const char *target, const char *path);
188 197
189 198
190 #define S_IFREG 0x42 199 #define S_IFREG 0x42
191 #define S_IFDIR 0x24 200 #define S_IFDIR 0x24
192 #define S_IFLNK 0x84 201 #define S_IFLNK 0x84
193 #define S_IFCHR 0x48 202 #define S_IFCHR 0x48
>> 203 #define S_IFBLK 0x12
194 int mknod(const char *pathname, mode_t mode, 204 int mknod(const char *pathname, mode_t mode,
195 int type, 205 int type,
196 unsigned int major, unsigned minor); 206 unsigned int major, unsigned minor);
197 207
198 208
199 int mkdir(const char *pathname, mode_t mode); 209 int mkdir(const char *pathname, mode_t mode);
200 210
201 211
202 int rmdir(const char *pathname); 212 int rmdir(const char *pathname);
203 213
204 214
205 int chmod(const char *path, mode_t mode); 215 int chmod(const char *path, mode_t mode);
206 216
207 217
208 struct dirent 218 struct dirent
209 { 219 {
210 unsigned long long int storage_location; 220 unsigned long long int storage_location;
211 unsigned long long int offset_in_dirfile; 221 unsigned long long int offset_in_dirfile;
212 unsigned int type; 222 unsigned int type;
213 unsigned short namelen; 223 unsigned short namelen;
214 224
215 #define SOS_FS_DIRENT_NAME_MAXLEN 128 225 #define SOS_FS_DIRENT_NAME_MAXLEN 128
216 char name[SOS_FS_DIRENT_NAME_MAXLEN]; 226 char name[SOS_FS_DIRENT_NAME_MAXLEN];
217 }; 227 };
218 228
219 229
220 struct sos_DIR_struct; 230 struct sos_DIR_struct;
221 #define DIR struct sos_DIR_struct 231 #define DIR struct sos_DIR_struct
222 232
223 DIR *opendir(const char *name); 233 DIR *opendir(const char *name);
224 int dirfd(const DIR * dir); 234 int dirfd(const DIR * dir);
225 struct dirent *readdir(DIR *dir); 235 struct dirent *readdir(DIR *dir);
226 int closedir(DIR *dir); 236 int closedir(DIR *dir);
227 237
228 struct stat 238 struct stat
229 { 239 {
230 unsigned int st_rdev_major; 240 unsigned int st_rdev_major;
231 unsigned int st_rdev_minor; 241 unsigned int st_rdev_minor;
232 int st_type; 242 int st_type;
233 unsigned long long int st_storage_location; 243 unsigned long long int st_storage_location;
234 int st_access_rights; 244 int st_access_rights;
235 unsigned int st_nlink; 245 unsigned int st_nlink;
236 signed long long int st_size; 246 signed long long int st_size;
237 }; 247 };
238 248
239 int stat(const char *file_name, struct stat *b 249 int stat(const char *file_name, struct stat *buf);
240 int lstat(const char *file_name, struct stat * 250 int lstat(const char *file_name, struct stat *buf);
241 int chroot(const char *path); 251 int chroot(const char *path);
242 int chdir(const char *path); 252 int chdir(const char *path);
243 int fchdir(int fd); 253 int fchdir(int fd);
244 254
245 int printf(const char *, ...); 255 int printf(const char *, ...);
246 256
247 #endif 257 #endif