| git.druid.rocks | index | druid520 | kaboom | src/ | user/ | syscalls.nsh |
src/user/syscalls.nsh
/*
* every syscall wrapper crt.s provides -- one shared header instead
* of every program in src/user/ repeating its own subset of extern
* lines by hand. see crt.s for the asm side and idt.nsc's own syscall
* table comment for what each number does.
*/
i64 sys_debug_print(ptr str);
i64 sys_write(i32 fd, ptr buf, u64 len);
i64 sys_read(i32 fd, ptr buf, u64 maxlen);
i32 sys_open(ptr path, u64 path_len);
i32 sys_close(i32 fd);
i32 sys_listdir(ptr names_out, i32 max);
i64 sys_exec(ptr path, u64 path_len, i64 argc, ptr argv);
u64 sys_klog_read(ptr buf, u64 maxlen);
i32 sys_mkdir(ptr name, u64 name_len, u64 perm);
i32 sys_rmdir(ptr name, u64 name_len);
i32 sys_rm(ptr name, u64 name_len);
i32 sys_cd(ptr name, u64 name_len);
u64 sys_pwd(ptr buf);
void sys_info(ptr buf);
i32 sys_writefile(ptr name, u64 name_len, ptr data, u64 len);
void sys_vga_clear(void);
i32 sys_chmod(ptr name, u64 name_len, u64 perm);
ptr sys_alloc(u64 size);
void sys_free(ptr p);
i64 sys_stat(ptr path, u64 path_len);
i32 sys_listdir_path(ptr path, u64 path_len, ptr names_out, i32 max);
void sys_date(ptr buf);
i64 sys_errno(void);
i32 sys_getperm(ptr name, u64 name_len);
i64 sys_fsize(i32 fd);
i64 sys_ino(ptr path, u64 path_len);