Skip to content

Types and ABI

Structs

struct timespec

Offset Field Type Size
0 tv_sec time_t 8
8 tv_nsec long 8

Total Size: 16 bytes · Alignment: 8 bytes


struct timeval

Offset Field Type Size
0 tv_sec time_t 8
8 tv_usec suseconds_t 8

Total Size: 16 bytes · Alignment: 8 bytes


struct timezone

Offset Field Type Size
0 tz_minuteswest int 4
4 tz_dsttime int 4

Total Size: 8 bytes · Alignment: 4 bytes


stack_t

Offset Field Type Size
0 ss_sp void* 4
4 ss_flags int32_t 4
8 ss_size size_t 4

Total Size: 12 bytes · Alignment: 4 bytes


struct dirent

Offset Field Type Size
0 d_ino ino_t 8
8 d_off off_t 8
16 d_reclen unsigned short 2
18 d_type uint8_t 1
19 d_name uint8_t[256] 256

Total Size: 280 bytes · Alignment: 8 bytes


struct epoll_event

Offset Field Type Size
0 events uint32_t 4
4 data epoll_data_t 8

Total Size: 12 bytes · Alignment: 1 bytes · Packed


struct iovec

Offset Field Type Size
0 iov_base void* 4
4 iov_len size_t 4

Total Size: 8 bytes · Alignment: 4 bytes


struct pollfd

Offset Field Type Size
0 fd int32_t 4
4 events short 2
6 revents short 2

Total Size: 8 bytes · Alignment: 4 bytes


struct rlimit

Offset Field Type Size
0 rlim_cur rlim_t 8
8 rlim_max rlim_t 8

Total Size: 16 bytes · Alignment: 8 bytes


struct sigaction

Offset Field Type Size
0 sa_handler ptr_func 4
8 sa_mask sigset_t 128
136 sa_flags int32_t 4
140 sa_restorer ptr_func 4

Total Size: 144 bytes · Alignment: 8 bytes


struct sockaddr

Offset Field Type Size
0 sa_family sa_family_t 2
2 sa_data uint8_t[14] 14

Total Size: 16 bytes · Alignment: 2 bytes


struct statfs

Offset Field Type Size
0 f_type unsigned long 8
8 f_bsize unsigned long 8
16 f_blocks fsblkcnt_t 8
24 f_bfree fsblkcnt_t 8
32 f_bavail fsblkcnt_t 8
40 f_files fsfilcnt_t 8
48 f_ffree fsfilcnt_t 8
56 f_fsid fsid_t 8
64 f_namelen unsigned long 8
72 f_frsize unsigned long 8
80 f_flags unsigned long 8
88 f_spare unsigned long[4] 32

Total Size: 120 bytes · Alignment: 8 bytes


stx_time

Offset Field Type Size
0 tv_sec int64_t 8
8 tv_nsec uint32_t 4
12 pad int32_t 4

Total Size: 16 bytes · Alignment: 8 bytes


struct sysinfo

Offset Field Type Size
0 uptime unsigned long 8
8 loads unsigned long[3] 24
32 totalram unsigned long 8
40 freeram unsigned long 8
48 sharedram unsigned long 8
56 bufferram unsigned long 8
64 totalswap unsigned long 8
72 freeswap unsigned long 8
80 procs unsigned short 2
82 pad unsigned short 2
88 totalhigh unsigned long 8
96 freehigh unsigned long 8
104 mem_unit uint32_t 4
108 reserved uint8_t[256] 256

Total Size: 368 bytes · Alignment: 8 bytes


struct utimbuf

Offset Field Type Size
0 actime time_t 8
8 modtime time_t 8

Total Size: 16 bytes · Alignment: 8 bytes


struct utsname

Offset Field Type Size
0 sysname uts_str 65
65 nodename uts_str 65
130 release uts_str 65
195 version uts_str 65
260 machine uts_str 65
325 domainname uts_str 65

Total Size: 390 bytes · Alignment: 1 bytes


fd_set

Offset Field Type Size
0 fds_bits uint8_t[128] 128

Total Size: 128 bytes · Alignment: 1 bytes


cpu_set_t

Offset Field Type Size
0 bits uint8_t[128] 128

Total Size: 128 bytes · Alignment: 1 bytes


struct itimerval

Offset Field Type Size
0 it_interval struct timeval 16
16 it_value struct timeval 16

Total Size: 32 bytes · Alignment: 8 bytes


struct msghdr

Offset Field Type Size
0 msg_name void* 4
4 msg_namelen socklen_t 4
8 msg_iov struct iovec* 4
12 msg_iovlen int32_t 4
16 pad1 int32_t 4
20 msg_control void* 4
24 msg_controllen socklen_t 4
28 pad2 int32_t 4
32 msg_flags int32_t 4

Total Size: 36 bytes · Alignment: 4 bytes


struct rusage

Offset Field Type Size
0 ru_utime struct timeval 16
16 ru_stime struct timeval 16
32 ru_maxrss long 8
40 ru_ixrss long 8
48 ru_idrss long 8
56 ru_isrss long 8
64 ru_minflt long 8
72 ru_majflt long 8
80 ru_nswap long 8
88 ru_inblock long 8
96 ru_oublock long 8
104 ru_msgsng long 8
112 ru_msgrcv long 8
120 ru_nsignals long 8
128 ru_nvcsw long 8
136 ru_nivcsw long 8
144 reserved long[16] 128

Total Size: 272 bytes · Alignment: 8 bytes


struct stat

Offset Field Type Size
0 st_dev dev_t 8
8 st_ino ino_t 8
16 st_nlink nlink_t 8
24 st_mode mode_t 4
28 st_uid uid_t 4
32 st_gid gid_t 4
36 pad0 uint32_t 4
40 st_rdev dev_t 8
48 st_size off_t 8
56 st_blksize blksize_t 8
64 st_blocks blkcnt_t 8
72 st_atim struct timespec 16
88 st_mtim struct timespec 16
104 st_ctim struct timespec 16
120 unused long[3] 24

Total Size: 144 bytes · Alignment: 8 bytes


struct statx

Offset Field Type Size
0 stx_mask uint32_t 4
4 stx_blksize uint32_t 4
8 stx_attributes uint64_t 8
16 stx_nlink uint32_t 4
20 stx_uid uint32_t 4
24 stx_gid uint32_t 4
28 stx_mode uint16_t 2
30 pad1 uint16_t 2
32 stx_ino uint64_t 8
40 stx_size uint64_t 8
48 stx_blocks uint64_t 8
56 stx_attributes_mask uint64_t 8
64 stx_atime stx_time 16
80 stx_btime stx_time 16
96 stx_ctime stx_time 16
112 stx_mtime stx_time 16
128 stx_rdev_major uint32_t 4
132 stx_rdev_minor uint32_t 4
136 stx_dev_major uint32_t 4
140 stx_dev_minor uint32_t 4
144 spare uint64_t[14] 112

Total Size: 256 bytes · Alignment: 8 bytes


Type Aliases

Name Target
off_t long long
size_t unsigned int
nfds_t unsigned long long
socklen_t unsigned int
clockid_t int
mode_t int
uid_t int
pid_t int
gid_t int
rlim_t unsigned long long
time_t int64_t
suseconds_t int64_t
sa_family_t unsigned short
ino_t uint64_t
dev_t uint64_t
nlink_t unsigned reg
blksize_t long
blkcnt_t int64_t
fsblkcnt_t uint64_t
fsfilcnt_t uint64_t
epoll_data_t int64_t
sigset_t long[16]
fsid_t int32_t[2]
uts_str uint8_t[65]

C Primitives

Name Size Alignment
int 4 4
long 8 8
long long 8 8
short 2 2
reg 8 8
unsigned 4 4
unsigned int 4 4
unsigned long 8 8
unsigned long long 8 8
unsigned short 2 2
unsigned reg 8 8
syscall_result 8 8
uint8_t 1 1
uint16_t 2 2
uint32_t 4 4
uint64_t 8 8
int8_t 1 1
int16_t 2 2
int32_t 4 4
int64_t 8 8
ptr 4 4
ptr_func 4 4