1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
#![no_std]
#![feature(asm)]

#[cfg(target_arch = "x86_64")]
pub unsafe fn system_call(number: usize, _1: usize, _2: usize, _3: usize, _4: usize, _5: usize, _6: usize) -> usize {
    let mut return_value;

    asm!("syscall"
       : "={rax}" (return_value)
       : "{rax}" (number), "{rdi}" (_1), "{rsi}" (_2), "{rdx}" (_3), "{r10}" (_4), "{r8}" (_5), "{r9}" (_6)
       : "rcx", "r8", "r9", "r10" "r11", "cc", "memory"
       : "volatile"
       );

    return_value
}