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