2008-06-26 16:26:27 -06:00
|
|
|
/*
|
2008-08-04 17:43:49 -06:00
|
|
|
* System structs for Linux, amd64
|
2008-06-26 16:26:27 -06:00
|
|
|
*/
|
|
|
|
|
|
|
|
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;
|
|
|
|
};
|
|
|
|
|
2008-08-04 17:43:49 -06:00
|
|
|
struct timeval {
|
|
|
|
time_t tv_sec;
|
|
|
|
int64 tv_usec;
|
|
|
|
};
|
|
|
|
|
2008-06-26 16:26:27 -06:00
|
|
|
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 */
|
2008-06-26 16:35:43 -06:00
|
|
|
mode_t st_mode; /* protection */
|
2008-06-26 16:26:27 -06:00
|
|
|
uid_t st_uid; /* user ID of owner */
|
|
|
|
gid_t st_gid; /* group ID of owner */
|
2008-06-26 16:35:43 -06:00
|
|
|
int32 pad0;
|
2008-06-26 16:26:27 -06:00
|
|
|
dev_t st_rdev; /* device ID (if special file) */
|
2008-06-26 16:35:43 -06:00
|
|
|
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 */
|
2008-06-26 16:26:27 -06:00
|
|
|
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 */
|
|
|
|
};
|
2008-07-15 09:27:50 -06:00
|
|
|
|
|
|
|
#define O_CREAT 0100
|
2008-08-04 17:43:49 -06:00
|
|
|
|
|
|
|
// Linux-specific system calls
|
|
|
|
int64 futex(uint32*, int32, uint32, struct timespec*, uint32*, uint32);
|
2008-08-05 15:18:47 -06:00
|
|
|
int64 clone(int32, void*, M*, G*, void(*)(void));
|
2008-08-04 17:43:49 -06:00
|
|
|
|