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