Adding usermode tree
[tpg/acess2.git] / Usermode / include / acess / sys.h
1 /*
2  * Acess2 System Interface Header
3  */
4 #ifndef _SYS_SYS_H_
5 #define _SYS_SYS_H_
6
7 #include <stdint.h>
8
9 // === CONSTANTS ===
10 #define OPENFLAG_EXEC   0x01
11 #define OPENFLAG_READ   0x02
12 #define OPENFLAG_WRITE  0x04
13 #define OPENFLAG_NOLINK 0x40
14 #define SEEK_SET        1
15 #define SEEK_CUR        0
16 #define SEEK_END        -1
17 #define CLONE_VM        0x10
18 #define FILEFLAG_DIRECTORY      0x10
19
20 // === TYPES ===
21 struct s_sysFInfo {
22         uint    uid, gid;
23         uint    flags;
24          int    numacls;
25         uint64_t        size;
26         uint64_t        atime;
27         uint64_t        mtime;
28         uint64_t        ctime;
29 };
30 typedef struct s_sysFInfo       t_sysFInfo;
31
32 // === FUNCTIONS ===
33 // --- Proc ---
34 void    sleep();
35  int    clone(int flags, void *stack);
36  int    execve(char *path, char **argv, char **envp);
37 // --- VFS ---
38  int    open(char *path, int flags);
39  int    reopen(int fd, char *path, int flags);
40 void    close(int fd);
41 uint64_t        read(int fd, uint64_t length, void *buffer);
42 uint64_t        write(int fd, uint64_t length, void *buffer);
43  int    seek(int fd, uint64_t offset, int whence);
44  int    ioctl(int fd, int id, void *data);
45  int    finfo(int fd, t_sysFInfo *info);
46
47 // --- MEMORY ---
48 uint64_t        _SysGetPhys(uint vaddr);
49 uint64_t        _SysAllocate(uint vaddr);
50
51 #endif

UCC git Repository :: git.ucc.asn.au