syscall_arch.h raw

   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
  94