aoc_omni/fasm/lib/macros.inc

80 lines
1.1 KiB
PHP

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
}