diff options
Diffstat (limited to 'src/runtime/linux/amd64/defs.h')
-rw-r--r-- | src/runtime/linux/amd64/defs.h | 48 |
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)); + |