| // Copyright 2009 The Go Authors. All rights reserved. |
| // Use of this source code is governed by a BSD-style |
| // license that can be found in the LICENSE file. |
| |
| /* |
| * 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)); |
| |