tuxanci2-sdk
SDK for tuxanci2
Log | Files | Refs | README | LICENSE

syscall.h (692B)


      1 #ifndef TA_SYSCALL_H
      2 #define TA_SYSCALL_H
      3 
      4 #include <stdint.h>
      5 
      6 static inline uint32_t ta_syscall(uint32_t number, uint32_t arg0, uint32_t arg1, uint32_t arg2, uint32_t arg3, uint32_t arg4, uint32_t arg5) {
      7 	register uint32_t reg0 __asm__("a0") = arg0;
      8 	register uint32_t reg1 __asm__("a1") = arg1;
      9 	register uint32_t reg2 __asm__("a2") = arg2;
     10 	register uint32_t reg3 __asm__("a3") = arg3;
     11 	register uint32_t reg4 __asm__("a4") = arg4;
     12 	register uint32_t reg5 __asm__("a5") = arg5;
     13 	register uint32_t reg7 __asm__("a7") = number;
     14 
     15 	__asm__ volatile("ecall" : "+r"(reg0) : "r"(reg1), "r"(reg2), "r"(reg3), "r"(reg4), "r"(reg5), "r"(reg7) : "memory");
     16 
     17 	return reg0;
     18 }
     19 
     20 #endif // TA_SYSCALL_H