summaryrefslogtreecommitdiff
path: root/src/runtime/linux/amd64/defs.h
diff options
context:
space:
mode:
Diffstat (limited to 'src/runtime/linux/amd64/defs.h')
-rw-r--r--src/runtime/linux/amd64/defs.h48
1 files changed, 48 insertions, 0 deletions
diff --git a/src/runtime/linux/amd64/defs.h b/src/runtime/linux/amd64/defs.h
new file mode 100644
index 000000000..e4c9ec08c
--- /dev/null
+++ b/src/runtime/linux/amd64/defs.h
@@ -0,0 +1,48 @@
+/*
+ * System structs for Linux, amd64
+ */
+
+typedef uint64 dev_t;
+typedef uint64 ino_t;
+typedef uint32 mode_t;
+typedef uint64 nlink_t;
+typedef uint32 uid_t;
+typedef uint32 gid_t;
+typedef int64 off_t;
+typedef int64 blksize_t;
+typedef int64 blkcnt_t;
+typedef int64 time_t;
+
+struct timespec {
+ time_t tv_sec;
+ int64 tv_nsec;
+};
+
+struct timeval {
+ time_t tv_sec;
+ int64 tv_usec;
+};
+
+struct stat {
+ dev_t st_dev; /* ID of device containing file */
+ ino_t st_ino; /* inode number */
+ nlink_t st_nlink; /* number of hard links */
+ mode_t st_mode; /* protection */
+ uid_t st_uid; /* user ID of owner */
+ gid_t st_gid; /* group ID of owner */
+ int32 pad0;
+ dev_t st_rdev; /* device ID (if special file) */
+ off_t st_size; /* total size, in bytes */
+ blksize_t st_blksize; /* blocksize for filesystem I/O */
+ blkcnt_t st_blocks; /* number of blocks allocated */
+ struct timespec st_atime; /* time of last access */
+ struct timespec st_mtime; /* time of last modification */
+ struct timespec st_ctime; /* time of last status change */
+};
+
+#define O_CREAT 0100
+
+// Linux-specific system calls
+int64 futex(uint32*, int32, uint32, struct timespec*, uint32*, uint32);
+int64 clone(int32, void*, M*, G*, void(*)(void));
+