metal-cos/include/syscall.h

52 lines
1.4 KiB
C
Raw Permalink Normal View History

#ifndef __SYSCALL_H__
#define __SYSCALL_H__
#include <sys/stat.h>
#include <sys/nic.h>
2015-01-27 18:34:44 +00:00
#include <sys/mbuf.h>
2015-11-15 23:17:18 +00:00
#include <sys/mount.h>
2015-01-02 22:04:14 +00:00
uint64_t OSTime();
uint64_t OSGetPID();
2015-01-18 23:08:12 +00:00
void OSExit(int status);
2023-08-20 23:04:28 +00:00
uint64_t OSSpawn(const char *path, const char *argv[]);
2015-01-18 23:08:12 +00:00
uint64_t OSWait(uint64_t pid);
// Memory
2015-01-02 22:04:14 +00:00
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);
2014-10-14 23:24:47 +00:00
// IO
2015-01-02 22:04:14 +00:00
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);
2014-10-14 23:24:47 +00:00
// Directory
2015-01-02 22:04:14 +00:00
int OSStat(const char *path, struct stat *sb);
int OSReadDir(uint64_t fd, char *buf, size_t length, uint64_t *offset);
2014-11-29 23:46:17 +00:00
// Threads
2015-01-17 01:57:21 +00:00
int OSThreadCreate(uint64_t rip, uint64_t arg);
2015-01-31 04:43:28 +00:00
int OSGetTID();
int OSThreadExit(uint64_t status);
2015-01-02 22:04:14 +00:00
int OSThreadSleep(uint64_t time);
int OSThreadWait(uint64_t tid);
2014-11-29 23:46:17 +00:00
// Network
int OSNICStat(uint64_t nicNo, NIC *nic);
2015-01-27 18:34:44 +00:00
int OSNICSend(uint64_t nicNo, MBuf *mbuf);
int OSNICRecv(uint64_t nicNo, MBuf *mbuf);
2015-11-15 23:17:18 +00:00
// System
int OSSysCtl(const char *node, void *oldval, void *newval);
int OSFSMount(const char *mntpt, const char *device, uint64_t flags);
int OSFSUnmount(const char *mntpt);
int OSFSInfo(struct statfs *info, uint64_t max);
#endif /* __SYSCALL_H__ */