summaryrefslogtreecommitdiff
path: root/src/include/tce
diff options
context:
space:
mode:
Diffstat (limited to 'src/include/tce')
-rw-r--r--src/include/tce/syscalls.h38
-rw-r--r--src/include/tce/vfs.h42
2 files changed, 80 insertions, 0 deletions
diff --git a/src/include/tce/syscalls.h b/src/include/tce/syscalls.h
new file mode 100644
index 0000000..6c67523
--- /dev/null
+++ b/src/include/tce/syscalls.h
@@ -0,0 +1,38 @@
+#ifndef DEF_TCE_SYSCALLS_H
+#define DEF_TCE_SYSCALLS_H
+
+#define SC_THREAD_EXIT 1
+#define SC_SCHEDULE 2
+#define SC_THREAD_SLEEP 3
+#define SC_PROCESS_EXIT 4
+#define SC_PRINTK 5
+#define SC_THREAD_NEW 6
+#define SC_IRQ_WAIT 7
+#define SC_PROC_PRIV 8
+
+#define SC_SBRK 10
+#define SC_BRK 11
+// NOT YET IMPLEMENTED
+#define SC_MMAP 12
+#define SC_MUNMAP 13
+
+#define SC_OPEN 20
+#define SC_OPEN_RELATIVE 21
+#define SC_STAT 22
+#define SC_STAT_RELATIVE 23
+#define SC_STATF 24
+#define SC_CLOSE 25
+#define SC_READ 26
+#define SC_WRITE 27
+#define SC_LINK 28
+
+
+// ERRORS
+#define E_NOT_IMPLEMENTED -1
+#define E_NOT_FOUND -2
+#define E_INVALID_FD -3
+#define E_TOO_SHORT -4 // not enough space for data to be copied to
+#define E_INVALID_RANGE -5
+#define E_INVALID -6 // anything went wrong - invalid parameter, usually
+
+#endif
diff --git a/src/include/tce/vfs.h b/src/include/tce/vfs.h
new file mode 100644
index 0000000..20ea03b
--- /dev/null
+++ b/src/include/tce/vfs.h
@@ -0,0 +1,42 @@
+#ifndef DEF_TCE_VFS_H
+#define DEF_TCE_VFS_H
+
+#include <types.h>
+
+typedef size_t FILE;
+
+typedef struct _file_info {
+ uint32_t type;
+ uint32_t dev_type;
+ uint32_t mode;
+ uint32_t uid, gid;
+ size_t size;
+} file_info;
+
+// file open flags
+#define FM_READ 0x00000001
+#define FM_WRITE 0x00000002
+#define FM_APPEND 0x00000004
+#define FM_TRUNC 0x00000008
+#define FM_CREATE 0x00000010
+#define FM_DELETE 0x00000020
+
+// link modes
+#define LM_SYMLINK 1
+#define LM_HARDLINK 2
+#define LM_MOUNT 3
+#define LM_OUTPUT_TO 4
+
+// file type flags
+#define FT_FILE 0x00000001
+#define FT_DIR 0x00000002
+#define FT_SYMLINK 0x00000004
+#define FT_DEV 0x00000008
+#define FT_TERMINAL 0x00000010
+
+// device types
+#define DT_BLOCK 1
+#define DT_KEYBOARD 2
+#define DT_DISPLAY 3
+
+#endif