/*
* Acess2 System Interface Header
*/
-#ifndef _SYS_SYS_H_
-#define _SYS_SYS_H_
+#ifndef _ACESS_SYS_H_
+#define _ACESS_SYS_H_
#include <stdint.h>
+#include <sys/types.h>
// === CONSTANTS ===
+#ifndef NULL
+# define NULL ((void*)0)
+#endif
+
#define OPENFLAG_EXEC 0x01
#define OPENFLAG_READ 0x02
#define OPENFLAG_WRITE 0x04
#define OPENFLAG_NOLINK 0x40
+#define OPENFLAG_CREATE 0x80
#ifndef SEEK_CUR
# define SEEK_SET 1
# define SEEK_CUR 0
typedef struct s_sysFInfo t_sysFInfo;
typedef struct s_sysACL t_sysACL;
+// === VARIABLES ===
+extern int _errno;
+
// === FUNCTIONS ===
-extern void _SysDebug(char *str, ...);
+extern void _SysDebug(const char *format, ...);
// --- Proc ---
extern void _exit(int status) __attribute__((noreturn));
extern void sleep();
extern int execve(char *path, char **argv, char **envp);
extern int gettid();
extern int getpid();
+extern int _SysSetFaultHandler(int (*Handler)(int));
// --- Permissions ---
extern int getuid();
extern void setgid(int id);
// --- VFS ---
-extern int chdir(char *dir);
-extern int open(char *path, int flags);
-extern int reopen(int fd, char *path, int flags);
+extern int chdir(const char *dir);
+extern int open(const char *path, int flags);
+extern int reopen(int fd, const char *path, int flags);
extern void close(int fd);
-extern uint64_t read(int fd, uint64_t length, void *buffer);
-extern uint64_t write(int fd, uint64_t length, void *buffer);
-extern int seek(int fd, uint64_t offset, int whence);
+extern uint read(int fd, uint length, void *buffer);
+extern uint write(int fd, uint length, void *buffer);
+extern int seek(int fd, int64_t offset, int whence);
extern uint64_t tell(int fd);
extern int ioctl(int fd, int id, void *data);
extern int finfo(int fd, t_sysFInfo *info, int maxacls);
extern int readdir(int fd, char *dest);
+extern int _SysOpenChild(int fd, char *name, int flags);
extern int _SysGetACL(int fd, t_sysACL *dest);
-extern int _SysMount(char *Device, char *Directory, char *Type, char *Options);
+extern int _SysMount(const char *Device, const char *Directory, const char *Type, const char *Options);
// --- IPC ---
-extern int SysSendMessage(int dest, int length, void *Data);
-extern int SysGetMessage(int *src, void *Data);
+extern int SysSendMessage(pid_t dest, uint length, void *Data);
+extern int SysGetMessage(pid_t *src, void *Data);
// --- MEMORY ---
uint64_t _SysGetPhys(uint vaddr);