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

     1  #define __SYSCALL_LL_E(x) (x)
     2  #define __SYSCALL_LL_O(x) (x)
     3  
     4  #define __scc(X) sizeof(1?(X):0ULL) < 8 ? (unsigned long) (X) : (long long) (X)
     5  typedef long long syscall_arg_t;
     6  
     7  static __inline long __syscall0(long long n)
     8  {
     9  	unsigned long ret;
    10  	__asm__ __volatile__ ("syscall" : "=a"(ret) : "a"(n) : "rcx", "r11", "memory");
    11  	return ret;
    12  }
    13  
    14  static __inline long __syscall1(long long n, long long a1)
    15  {
    16  	unsigned long ret;
    17  	__asm__ __volatile__ ("syscall" : "=a"(ret) : "a"(n), "D"(a1) : "rcx", "r11", "memory");
    18  	return ret;
    19  }
    20  
    21  static __inline long __syscall2(long long n, long long a1, long long a2)
    22  {
    23  	unsigned long ret;
    24  	__asm__ __volatile__ ("syscall" : "=a"(ret) : "a"(n), "D"(a1), "S"(a2)
    25  					: "rcx", "r11", "memory");
    26  	return ret;
    27  }
    28  
    29  static __inline long __syscall3(long long n, long long a1, long long a2, long long a3)
    30  {
    31  	unsigned long ret;
    32  	__asm__ __volatile__ ("syscall" : "=a"(ret) : "a"(n), "D"(a1), "S"(a2),
    33  						  "d"(a3) : "rcx", "r11", "memory");
    34  	return ret;
    35  }
    36  
    37  static __inline long __syscall4(long long n, long long a1, long long a2, long long a3,
    38                                       long long a4_)
    39  {
    40  	unsigned long ret;
    41  	register long long a4 __asm__("r10") = a4_;
    42  	__asm__ __volatile__ ("syscall" : "=a"(ret) : "a"(n), "D"(a1), "S"(a2),
    43  					  "d"(a3), "r"(a4): "rcx", "r11", "memory");
    44  	return ret;
    45  }
    46  
    47  static __inline long __syscall5(long long n, long long a1, long long a2, long long a3,
    48                                       long long a4_, long long a5_)
    49  {
    50  	unsigned long ret;
    51  	register long long a4 __asm__("r10") = a4_;
    52  	register long long a5 __asm__("r8") = a5_;
    53  	__asm__ __volatile__ ("syscall" : "=a"(ret) : "a"(n), "D"(a1), "S"(a2),
    54  					  "d"(a3), "r"(a4), "r"(a5) : "rcx", "r11", "memory");
    55  	return ret;
    56  }
    57  
    58  static __inline long __syscall6(long long n, long long a1, long long a2, long long a3,
    59                                       long long a4_, long long a5_, long long a6_)
    60  {
    61  	unsigned long ret;
    62  	register long long a4 __asm__("r10") = a4_;
    63  	register long long a5 __asm__("r8") = a5_;
    64  	register long long a6 __asm__("r9") = a6_;
    65  	__asm__ __volatile__ ("syscall" : "=a"(ret) : "a"(n), "D"(a1), "S"(a2),
    66  					  "d"(a3), "r"(a4), "r"(a5), "r"(a6) : "rcx", "r11", "memory");
    67  	return ret;
    68  }
    69  
    70  #undef SYS_futimesat
    71  
    72  #define SYS_clock_gettime64 SYS_clock_gettime
    73  #define SYS_clock_settime64 SYS_clock_settime
    74  #define SYS_clock_adjtime64 SYS_clock_adjtime
    75  #define SYS_clock_nanosleep_time64 SYS_clock_nanosleep
    76  #define SYS_timer_gettime64 SYS_timer_gettime
    77  #define SYS_timer_settime64 SYS_timer_settime
    78  #define SYS_timerfd_gettime64 SYS_timerfd_gettime
    79  #define SYS_timerfd_settime64 SYS_timerfd_settime
    80  #define SYS_utimensat_time64 SYS_utimensat
    81  #define SYS_pselect6_time64 SYS_pselect6
    82  #define SYS_ppoll_time64 SYS_ppoll
    83  #define SYS_recvmmsg_time64 SYS_recvmmsg
    84  #define SYS_mq_timedsend_time64 SYS_mq_timedsend
    85  #define SYS_mq_timedreceive_time64 SYS_mq_timedreceive
    86  #define SYS_semtimedop_time64 SYS_semtimedop
    87  #define SYS_rt_sigtimedwait_time64 SYS_rt_sigtimedwait
    88  #define SYS_futex_time64 SYS_futex
    89  #define SYS_sched_rr_get_interval_time64 SYS_sched_rr_get_interval
    90  #define SYS_getrusage_time64 SYS_getrusage
    91  #define SYS_wait4_time64 SYS_wait4
    92  
    93  #define IPC_64 0