rendered paste body#include <stdio.h>
#include <sys/utsname.h>
#include <asm/unistd.h>
#include <errno.h>
#define __sys2(x) #x
#define __sys1(x) __sys2(x)
#ifndef __syscall
#define __syscall(name) "swi\t" __sys1(__NR_##name) "\n\t"
#endif
#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);
}