#include <stdint.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
#define FILEFLAG_SYMLINK 0x20
// === TYPES ===
+typedef uint pid_t;
+
struct s_sysACL {
union {
struct {
typedef struct s_sysFInfo t_sysFInfo;
typedef struct s_sysACL t_sysACL;
+// === VARIABLES ===
+extern int _errno;
+
// === FUNCTIONS ===
extern void _SysDebug(char *str, ...);
// --- Proc ---
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 uint read(int fd, uint length, void *buffer);
+extern uint write(int fd, uint length, void *buffer);
extern int seek(int fd, uint64_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 _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);