#include #include #include #include #define syscall1(type,name,type1,arg1) \ type name(type1 arg1) { \ long __res; \ __asm__ __volatile__ ( \ "mov\tr0,%1\n\t" \ __syscall(uname) \ "mov %0,r0" \ : "=r" (__res) \ : "r" ((long)(arg1)) \ : "r0","lr"); \ __syscall_return(type,__res); \ } static inline syscall1(int, my_uname, struct utsname *, utsn); int main() { struct utsname utsn; int ret = my_uname(&utsn); printf("%s\n", utsn.sysname); }