Syscalls in Ironclad have an architecture-dependent ABI, but the table and its indexes are always the same, this is done to simplify development. and here is a list of the supported architectures and the ABI for each of them. Here is the table:
Syscalls are invoked in Ironclad by using ecall
.
The index of the syscall is passed over x17
, while the return value is
returned in x10
, errno is returned in x11
, arguments are passed
over x10
, x11
, x12
, x13
, x14
, x15
,
and x16
.
Syscalls are invoked in Ironclad by using syscall
.
The index of the syscall is passed over %rax
, while the return value is
returned in %rax
, errno is returned on %rdx
, arguments are passed
over %rdi
, %rsi
, %rdx
, %r12
, %r8
,
%r9
, and %r10
, following the SysV ABI.