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 _sfsyscall0(type, name)
 
#define _sfsyscall1(type, name, type1, arg1)
 
#define _sfsyscall2(type, name, type1, arg1, type2, arg2)
 
#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 44 of file sfsyscall.h.

◆ _sfsyscall0

#define _sfsyscall0 (   type,
  name 
)
Value:
type name(void) { \
long __res; \
__asm__ volatile("###> " #name " <###\n\t" \
"syscall" \
: "=a" (__res) \
: "0" (__NR_##name) \
: "memory", "rcx", "r11", "cc" \
); \
__sfsyscall_return(type,__res); \
}
const char * name
Definition: op.c:541
Definition: z80asm.h:102

Definition at line 54 of file sfsyscall.h.

◆ _sfsyscall1

#define _sfsyscall1 (   type,
  name,
  type1,
  arg1 
)
Value:
type name(type1 arg1) { \
long __res; \
register type1 rdi asm("rdi"); \
rdi = arg1; \
asm volatile("###> " #name "(%2) <###\n\t" \
"syscall" \
: "=a" (__res) \
: "0" (__NR_##name), \
"r" (rdi) \
: "memory", "rcx", "r11", "cc" \
); \
__sfsyscall_return(type,__res); \
}

Definition at line 66 of file sfsyscall.h.

◆ _sfsyscall2

#define _sfsyscall2 (   type,
  name,
  type1,
  arg1,
  type2,
  arg2 
)
Value:
type name(type1 arg1, type2 arg2) { \
long __res; \
register type1 rdi asm("rdi"); \
register type2 rsi asm("rsi"); \
rdi = arg1; \
rsi = arg2; \
__asm__ volatile("###> " #name "(%2, %3) <###\n\t" \
"syscall" \
: "=a" (__res) \
: "0" (__NR_##name), \
"r" (rdi), \
"r" (rsi) \
: "memory", "rcx", "r11", "cc" \
); \
__sfsyscall_return(type, __res); \
}
rsi

Definition at line 81 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; \
register type1 rdi asm("rdi"); \
register type2 rsi asm("rsi"); \
register type3 rdx asm("rdx"); \
rdi = arg1; \
rsi = arg2; \
rdx = arg3; \
asm volatile("###> " #name "(%2, %3, %4) <###\n\t" \
"syscall" \
: "=a" (__res) \
: "0" (__NR_##name), \
"r" (rdi), \
"r" (rsi), \
"r" (rdx) \
: "memory", "rcx", "r11", "cc" \
); \
__sfsyscall_return(type, __res); \
}

Definition at line 99 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; \
register type1 rdi asm("rdi"); \
register type2 rsi asm("rsi"); \
register type3 rdx asm("rdx"); \
register type4 r10 asm("r10"); \
rdi = arg1; \
rsi = arg2; \
rdx = arg3; \
r10 = arg4; \
asm volatile("###> " #name "(%2, %3, %4, %5) <###\n\t" \
"syscall" \
: "=a" (__res) \
: "0" (__NR_##name), \
"r" (rdi), \
"r" (rsi), \
"r" (rdx), \
"r" (r10) \
: "memory", "rcx", "r11", "cc" \
); \
__sfsyscall_return(type, __res); \
}

Definition at line 120 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; \
register type1 rdi asm("rdi"); \
register type2 rsi asm("rsi"); \
register type3 rdx asm("rdx"); \
register type4 r10 asm("r10"); \
register type5 r8 asm("r8"); \
rdi = arg1; \
rsi = arg2; \
rdx = arg3; \
r10 = arg4; \
r8 = arg5; \
asm volatile("###> " #name "(%2, %3, %4, %5, %6) <###\n\t" \
"syscall" \
: "=a" (__res) \
: "0" (__NR_##name), \
"r" (rdi), \
"r" (rsi), \
"r" (rdx), \
"r" (r10), \
"r" (r8) \
: "memory", "rcx", "r11", "cc" \
); \
__sfsyscall_return(type, __res); \
}

Definition at line 144 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; \
register type1 rdi asm("rdi"); \
register type2 rsi asm("rsi"); \
register type3 rdx asm("rdx"); \
register type4 r10 asm("r10"); \
register type5 r8 asm("r8"); \
register type6 r9 asm("r9"); \
rdi = arg1; \
rsi = arg2; \
rdx = arg3; \
r10 = arg4; \
r8 = arg5; \
r9 = arg6; \
asm volatile("###> " #name "(%2, %3, %4, %5, %6, %7) <###\n\t" \
"syscall" \
: "=a" (__res) \
: "0" (__NR_##name), \
"r" (rdi), \
"r" (rsi), \
"r" (rdx), \
"r" (r10), \
"r" (r8), \
"r" (r9) \
: "memory", "rcx", "r11", "cc" \
); \
__sfsyscall_return(type, __res); \
}

Definition at line 172 of file sfsyscall.h.