struc s_stat { .st_dev dq 0 .st_ino dq 0 .st_nlink dq 0 .st_mode dd 0 .st_uid dd 0 .st_gid dq 0 .st_rdev dq 0 .st_size dq 0 .st_blksize dq 0 .st_blocks dq 0 .st_atim dq 0 .st_atim_nano dq 0 .st_mtim dq 0 .st_mtim_nano dq 0 .st_ctim dq 0 .st_ctim_nano dq 0 .st_atim_idk dq 0 .st_mtim_idk dq 0 .st_ctim_idk dq 0 } macro syscall1 nr, arg1 { mov rax, nr mov rdi, arg1 syscall } macro syscall2 nr, arg1, arg2 { mov rax, nr mov rdi, arg1 mov rsi, arg2 syscall } macro syscall3 nr, arg1, arg2, arg3 { mov rax, nr mov rdi, arg1 mov rsi, arg2 mov rdx, arg3 syscall } macro syscall4 nr, arg1, arg2, arg3, arg4 { mov rax, nr mov rdi, arg1 mov rsi, arg2 mov rdx, arg3 mov r10, arg4 syscall } macro syscall5 nr, arg1, arg2, arg3, arg4, arg5 { mov rax, nr mov rdi, arg1 mov rsi, arg2 mov rdx, arg3 mov r10, arg4 mov r8, arg5 syscall } macro syscall6 nr, arg1, arg2, arg3, arg4, arg5, arg6 { mov rax, nr mov rdi, arg1 mov rsi, arg2 mov rdx, arg3 mov r10, arg4 mov r8, arg5 mov r9, arg6 syscall }