Rizin
unix-like reverse engineering framework and cli tools
sfsyscall.h File Reference

Go to the source code of this file.

Macros

#define __sfsyscall_return(type, res)
 
#define PENE   __NR_##name
 
#define _sfsyscall0(type, name)
 
#define _sfsyscall1(type, name, type1, arg1)
 
#define _sfsyscall2(type, name, type1, arg1, type2, arg2)
 
#define _sfsyscall3ipi(type, name, type1, arg1, type2, arg2, type3, arg3)
 
#define _sfsyscall3(type, name, type1, arg1, type2, arg2, type3, arg3)
 
#define _sfsyscall4(type, name, type1, arg1, type2, arg2, type3, arg3, type4, arg4)
 
#define _sfsyscall5(type, name, type1, arg1, type2, arg2, type3, arg3, type4, arg4, type5, arg5)
 
#define _sfsyscall6(type, name, type1, arg1, type2, arg2, type3, arg3, type4, arg4, type5, arg5, type6, arg6)
 

Macro Definition Documentation

◆ __sfsyscall_return

#define __sfsyscall_return (   type,
  res 
)
Value:
do { \
return (type)(res); \
} while (0)
int type
Definition: mipsasm.c:17

Definition at line 29 of file sfsyscall.h.

◆ _sfsyscall0

#define _sfsyscall0 (   type,
  name 
)
Value:
type name(void) { \
long __res; \
__asm__ volatile( \
"movz x16, %1\n" \
"svc 0x80" \
: "=r"(__res) \
: "K"(__NR_##name)); \
__sfsyscall_return(type, __res); \
}
const char * name
Definition: op.c:541
Definition: z80asm.h:102

Definition at line 40 of file sfsyscall.h.

◆ _sfsyscall1

#define _sfsyscall1 (   type,
  name,
  type1,
  arg1 
)
Value:
type name(type1 arg1) { \
long __res; \
__asm__ volatile( \
"movz x16, %1\n" \
"ldr x0, %2\n\t" \
"svc 0x80\n\t" \
: "=r"(__res) \
: "g"(__NR_##name), "g"((long)(arg1))); \
__sfsyscall_return(type, __res); \
}
static static sync static getppid static getegid const char static filename char static len const char char static bufsiz static mask static vfork const void static prot static getpgrp const char static swapflags long
Definition: sflib.h:79

Definition at line 51 of file sfsyscall.h.

◆ _sfsyscall2

#define _sfsyscall2 (   type,
  name,
  type1,
  arg1,
  type2,
  arg2 
)
Value:
type name(type1 arg1, type2 arg2) { \
long __res; \
__asm__ volatile( \
"ldr x0, %2\n\t" \
"ldr x1, %3\n\t" \
"mov x16, %1\n\t" \
"svc 0x80\n\t" \
: "=r"(__res) \
: "I"(__NR_##name), "g"((long)(arg1)), "g"((long)(arg2))); \
__sfsyscall_return(type, __res); \
}

Definition at line 63 of file sfsyscall.h.

◆ _sfsyscall3

#define _sfsyscall3 (   type,
  name,
  type1,
  arg1,
  type2,
  arg2,
  type3,
  arg3 
)
Value:
type name(type1 arg1, type2 arg2, type3 arg3) { \
long __res; \
__asm__ volatile( \
"movz x0, %2\n\t" \
"ldr x1, %3\n\t" \
"movz x2, %4\n\t" \
"ldr x16, %1\n\t" \
"svc 0x80\n\t" \
: "=r"(__res) \
: "I"(__NR_##name), "g"((long)(arg1)), "g"((long)(arg2)), \
"g"((long)(arg3))); \
__sfsyscall_return(type, __res); \
}

Definition at line 93 of file sfsyscall.h.

◆ _sfsyscall3ipi

#define _sfsyscall3ipi (   type,
  name,
  type1,
  arg1,
  type2,
  arg2,
  type3,
  arg3 
)
Value:
type name(type1 arg1, type2 arg2, type3 arg3) { \
long __res; \
__asm__ volatile( \
"movz x0, %2\n\t" \
"ldr x1, %3\n\t" \
"mov x2, %4\n\t" \
"mov x16, %1\n\t" \
"svc 0x80\n\t" \
: "=r"(__res) \
: "S"(__NR_##name), \
"r"(arg1), \
"S"(arg2), \
"g"((long)(arg3))); \
__sfsyscall_return(type, __res); \
}

Definition at line 76 of file sfsyscall.h.

◆ _sfsyscall4

#define _sfsyscall4 (   type,
  name,
  type1,
  arg1,
  type2,
  arg2,
  type3,
  arg3,
  type4,
  arg4 
)
Value:
type name(type1 arg1, type2 arg2, type3 arg3, type4 arg4) { \
long __res; \
__asm__ volatile( \
"mov x0, %2\n\t" \
"mov x1, %3\n\t" \
"mov x2, %4\n\t" \
"mov x3, %5\n\t" \
"mov x16, %1\n\t" \
"svc 0x80\n\t" \
: "=r"(__res) \
: "I"(__NR_##name), "g"((long)(arg1)), "r"((long)(arg2)), \
"r"((long)(arg3)), "S"((long)(arg4))); \
__sfsyscall_return(type, __res); \
}

Definition at line 108 of file sfsyscall.h.

◆ _sfsyscall5

#define _sfsyscall5 (   type,
  name,
  type1,
  arg1,
  type2,
  arg2,
  type3,
  arg3,
  type4,
  arg4,
  type5,
  arg5 
)
Value:
type name(type1 arg1, type2 arg2, type3 arg3, type4 arg4, type5 arg5) { \
long __res; \
__asm__ volatile("mov x0, %2\n\t" \
"mov x1, %3\n\t" \
"mov x2, %4\n\t" \
"mov x3, %5\n\t" \
"mov x4, %6\n\t" \
"mov x16, %1\n\t" \
"svc 0x80\n\t" \
: "=r"(__res) \
: "I"(__NR_##name), "g"((long)(arg1)), "g"((long)(arg2)), \
"g"((long)(arg3)), "g"((long)(arg4)), "g"((long)(arg5))); \
__sfsyscall_return(type, __res); \
}

Definition at line 124 of file sfsyscall.h.

◆ _sfsyscall6

#define _sfsyscall6 (   type,
  name,
  type1,
  arg1,
  type2,
  arg2,
  type3,
  arg3,
  type4,
  arg4,
  type5,
  arg5,
  type6,
  arg6 
)
Value:
type name(type1 arg1, type2 arg2, type3 arg3, type4 arg4, type5 arg5, type6 arg6) { \
long __res; \
__asm__ volatile("mov x0, %2\n\t" \
"mov x1, %3\n\t" \
"mov x2, %4\n\t" \
"mov x3, %5\n\t" \
"mov x4, %6\n\t" \
"mov x5, %7\n\t" \
"mov x16, %1\n\t" \
"svc 0x80\n\t" \
: "=r"(__res) \
: "I"(__NR_##name), "g"((long)(arg1)), "g"((long)(arg2)), \
"g"((long)(arg3)), "g"((long)(arg4)), "g"((long)(arg5)), \
"g"((long)(arg6))); \
__sfsyscall_return(type, __res); \
}

Definition at line 141 of file sfsyscall.h.

◆ PENE

#define PENE   __NR_##name

Definition at line 38 of file sfsyscall.h.