return result;
}
+static inline uint32_t linux_syscall4(int syscall_number,
+ uint32_t arg1, uint32_t arg2,
+ uint32_t arg3, uint32_t arg4) {
+ uint32_t result;
+ __asm__ __volatile__("int $0x80\n"
+ : "=a"(result)
+ : "a"(syscall_number), "b"(arg1), "c"(arg2), "d"(arg3),
+ "S"(arg4));
+ return result;
+}
+
static inline uint32_t linux_syscall5(int syscall_number,
uint32_t arg1, uint32_t arg2,
uint32_t arg3, uint32_t arg4,
return result;
}
+static inline uint32_t linux_syscall4(int syscall_number,
+ uint32_t arg1, uint32_t arg2,
+ uint32_t arg3, uint32_t arg4) {
+ register uint32_t sysno __asm__("r7") = syscall_number;
+ register uint32_t a1 __asm__("r0") = arg1;
+ register uint32_t a2 __asm__("r1") = arg2;
+ register uint32_t a3 __asm__("r2") = arg3;
+ register uint32_t a4 __asm__("r3") = arg4;
+ register uint32_t result __asm__("r0");
+ __asm__ __volatile__("svc #0\n"
+ : "=r"(result)
+ : "r"(sysno),
+ "r"(a1), "r"(a2), "r"(a3), "r"(a4)
+ : "memory");
+ return result;
+}
+
static inline uint32_t linux_syscall5(int syscall_number,
uint32_t arg1, uint32_t arg2,
uint32_t arg3, uint32_t arg4,