aboutsummaryrefslogtreecommitdiff
path: root/include/sys.h
diff options
context:
space:
mode:
Diffstat (limited to 'include/sys.h')
-rw-r--r--include/sys.h35
1 files changed, 28 insertions, 7 deletions
diff --git a/include/sys.h b/include/sys.h
index 773ff3a..15fba2a 100644
--- a/include/sys.h
+++ b/include/sys.h
@@ -1,12 +1,33 @@
#pragma once
-#include <sys/constants.h>
+#include <arch/constants.h>
+#include <arch/errno.h>
-#define sys·Oread 0x0u
-#define sys·Owrite 0x1u
-#define sys·Ordwr 0x2u
+// -----------------------------------------------------------------------
+// global constants
-/* system calls */
+/* open */
+#define sys·ORead 0x0u
+#define sys·OWrite 0x1u
+#define sys·ORdwr 0x2u
+
+/* seek */
+#define sys·SeekSet 0u
+#define sys·SeekCur 1u
+#define sys·SeekEnd 2u
+
+// -----------------------------------------------------------------------
+// functions
+
+/*
+ * system calls with errno-free interface
+ */
int sys·call(int num, ...);
-int sys·open(char *path, int flag, int mode, int *ret);
-int sys·close(char *path, int flag, int mode, int *ret);
+
+/* file operations */
+int sys·open(char *path, int flag, int mode, int *fd);
+int sys·close(int fd);
+int sys·write(int fd, intptr len, void *buf, intptr *nw);
+int sys·read(int fd, intptr len, void *buf, intptr *nr);
+int sys·seek(int fd, intptr offset, int from, intptr *pos);
+int sys·dup(int from, int to);