metal-cos/include/syscall.h
2015-01-14 14:57:47 -08:00

36 lines
893 B
C

#ifndef __SYSCALL_H__
#define __SYSCALL_H__
#include <sys/stat.h>
uint64_t OSTime();
void OSExit(int status);
uint64_t OSGetPID();
uint64_t OSSpawn(const char *path);
// Memory
void *OSMemMap(void *addr, uint64_t len, int flags);
int OSMemUnmap(void *addr, uint64_t len);
int OSMemProtect(void *addr, uint64_t len, int flags);
// IO
int OSRead(uint64_t fd, void *addr, uint64_t off, uint64_t length);
int OSWrite(uint64_t fd, const void *addr, uint64_t off, uint64_t length);
int OSFlush(uint64_t fd);
uint64_t OSOpen(const char *path, uint64_t flags);
int OSClose(uint64_t fd);
// Directory
int OSStat(const char *path, struct stat *sb);
int OSReadDir(uint64_t fd, char *buf, size_t length, uint64_t *offset);
// Threads
int OSThreadCreate(uint64_t rip);
int OSThreadExit(uint64_t status);
int OSThreadSleep(uint64_t time);
int OSThreadWait(uint64_t tid);
#endif /* __SYSCALL_H__ */