github.com/afumu/libc@v0.0.6/musl/arch/x86_64/syscall_arch.h (about)

     1  #define __SYSCALL_LL_E(x) (x)
     2  #define __SYSCALL_LL_O(x) (x)
     3  
     4  __inline long __syscall0(long n)
     5  {
     6  	unsigned long ret;
     7  	__asm__ __volatile__ ("syscall" : "=a"(ret) : "a"(n) : "rcx", "r11", "memory");
     8  	return ret;
     9  }
    10  
    11  __inline long __syscall1(long n, long a1)
    12  {
    13  	unsigned long ret;
    14  	__asm__ __volatile__ ("syscall" : "=a"(ret) : "a"(n), "D"(a1) : "rcx", "r11", "memory");
    15  	return ret;
    16  }
    17  
    18  __inline long __syscall2(long n, long a1, long a2)
    19  {
    20  	unsigned long ret;
    21  	__asm__ __volatile__ ("syscall" : "=a"(ret) : "a"(n), "D"(a1), "S"(a2)
    22  						  : "rcx", "r11", "memory");
    23  	return ret;
    24  }
    25  
    26  __inline long __syscall3(long n, long a1, long a2, long a3)
    27  {
    28  	unsigned long ret;
    29  	__asm__ __volatile__ ("syscall" : "=a"(ret) : "a"(n), "D"(a1), "S"(a2),
    30  						  "d"(a3) : "rcx", "r11", "memory");
    31  	return ret;
    32  }
    33  
    34  __inline long __syscall4(long n, long a1, long a2, long a3, long a4)
    35  {
    36  	unsigned long ret;
    37  	register long r10 __asm__("r10") = a4;
    38  	__asm__ __volatile__ ("syscall" : "=a"(ret) : "a"(n), "D"(a1), "S"(a2),
    39  						  "d"(a3), "r"(r10): "rcx", "r11", "memory");
    40  	return ret;
    41  }
    42  
    43  __inline long __syscall5(long n, long a1, long a2, long a3, long a4, long a5)
    44  {
    45  	unsigned long ret;
    46  	register long r10 __asm__("r10") = a4;
    47  	register long r8 __asm__("r8") = a5;
    48  	__asm__ __volatile__ ("syscall" : "=a"(ret) : "a"(n), "D"(a1), "S"(a2),
    49  						  "d"(a3), "r"(r10), "r"(r8) : "rcx", "r11", "memory");
    50  	return ret;
    51  }
    52  
    53  __inline long __syscall6(long n, long a1, long a2, long a3, long a4, long a5, long a6)
    54  {
    55  	unsigned long ret;
    56  	register long r10 __asm__("r10") = a4;
    57  	register long r8 __asm__("r8") = a5;
    58  	register long r9 __asm__("r9") = a6;
    59  	__asm__ __volatile__ ("syscall" : "=a"(ret) : "a"(n), "D"(a1), "S"(a2),
    60  						  "d"(a3), "r"(r10), "r"(r8), "r"(r9) : "rcx", "r11", "memory");
    61  	return ret;
    62  }
    63  
    64  #define VDSO_USEFUL
    65  #define VDSO_CGT_SYM "__vdso_clock_gettime"
    66  #define VDSO_CGT_VER "LINUX_2.6"
    67  #define VDSO_GETCPU_SYM "__vdso_getcpu"
    68  #define VDSO_GETCPU_VER "LINUX_2.6"
    69  
    70  #define IPC_64 0