Files
my-os-project2/ulib/system/system.h

61 lines
2.5 KiB
C

#ifndef ULIB_SYSTEM_SYSTEM_H_
#define ULIB_SYSTEM_SYSTEM_H_
#include <stdint.h>
#include <stddef.h>
#include <stdbool.h>
#include <sysdefs/dev.h>
#include <sysdefs/proc.h>
#include <sysdefs/fs.h>
#include <sysdefs/time.h>
#include <sysdefs/vfs.h>
void debugprint(const char *string);
int32_t mman_map(uint8_t *addr, size_t size, uint64_t prot, uint64_t flags, uint8_t **out);
int32_t mman_unmap(uint8_t *addr);
int32_t schedrelease(void);
int32_t schedsleep(uint32_t ms);
int32_t rand(void);
int32_t vfsmount(char *mountpoint, char *fstype, Dev_t *dev, bool format);
int32_t vfsunmount(char *mountpoint);
int32_t vfsavailmounts(VfsAvailMounts *availmounts);
int32_t vfsmountstat(VfsMountStat *statbuf, char *label);
int32_t ipc_piperead(PID_t pid, uint64_t pipenum, uint8_t *const buffer, size_t len);
int32_t ipc_pipewrite(PID_t pid, uint64_t pipenum, const uint8_t *buffer, size_t len);
int32_t ipc_pipemake(uint64_t pipenum);
int32_t ipc_pipedelete(uint64_t pipenum);
int32_t ipc_pipeconnect(PID_t pid1, uint64_t pipenum1, PID_t pid2, uint64_t pipenum2);
int32_t proc_kill(PID_t pid);
int32_t proc_spawn(char *path, char **args1, size_t argslen1);
int32_t proc_pollstate(PID_t pid);
int32_t proc_getpid(void);
int32_t proc_run(PID_t pid);
int32_t proc_arglen(PID_t pid);
int32_t proc_argv(PID_t pid, size_t *argslen1, char **argbuf1, size_t maxargs);
int32_t proc_listsize(void);
int32_t proc_stat(size_t idx, ProcStat *pstat);
int32_t fs_openf(char *path, uint64_t flags);
int32_t fs_closef(int32_t fsh);
int32_t fs_write(int32_t fsh, const uint8_t *buffer, size_t len, size_t off);
int32_t fs_read(int32_t fsh, uint8_t *const buffer, size_t len, size_t off);
int32_t fs_stat(char *path, FsStat *statbuf);
int32_t fs_fetchdirent(char *path, FsDirent *direntbuf, size_t idx);
int32_t fs_mkdir(char *path);
int32_t fs_delete(char *path);
int32_t dev_gethandle(Dev_t *dev, char *name);
int32_t dev_listsize(void);
int32_t dev_stat(DevStat *devstatbuf, size_t idx);
int32_t dev_cmd(Dev_t *dev, uint64_t cmd, void *buf, size_t len);
int32_t dev_delhandle(Dev_t *dev);
int32_t time(Time *time);
int32_t ipc_mbusmake(char *name, size_t objsize, size_t objmax);
int32_t ipc_mbusdelete(char *name);
int32_t ipc_mbuspublish(char *name, const uint8_t *const buffer);
int32_t ipc_mbusconsume(char *name, uint8_t *const buffer);
int32_t ipc_mbusattch(char *name);
int32_t ipc_mbusdttch(char *name);
int32_t term_write(char *buffer, size_t len);
int32_t term_getsizes(uint16_t *w, uint16_t *h);
#endif // ULIB_SYSTEM_SYSTEM_H_