DMTCP
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Macros Pages
Macros
sysdep-x86_64.h File Reference

Go to the source code of this file.

Macros

#define SYS_ify(syscall_name)   __NR_##syscall_name
 
#define __NR_semtimedop   220
 
#define INLINE_SYSCALL(name, nr, args...)
 
#define INTERNAL_SYSCALL_DECL(err)   do { } while (0)
 
#define INTERNAL_SYSCALL_NCS(name, err, nr, args...)
 
#define INTERNAL_SYSCALL(name, err, nr, args...)   INTERNAL_SYSCALL_NCS (__NR_##name, err, nr, ##args)
 
#define INTERNAL_SYSCALL_ERROR_P(val, err)   ((unsigned long) (val) >= -4095L)
 
#define INTERNAL_SYSCALL_ERRNO(val, err)   (-(val))
 
#define LOAD_ARGS_0()
 
#define LOAD_REGS_0
 
#define ASM_ARGS_0
 
#define LOAD_ARGS_1(a1)
 
#define LOAD_REGS_1
 
#define ASM_ARGS_1   ASM_ARGS_0, "r" (_a1)
 
#define LOAD_ARGS_2(a1, a2)
 
#define LOAD_REGS_2
 
#define ASM_ARGS_2   ASM_ARGS_1, "r" (_a2)
 
#define LOAD_ARGS_3(a1, a2, a3)
 
#define LOAD_REGS_3
 
#define ASM_ARGS_3   ASM_ARGS_2, "r" (_a3)
 
#define LOAD_ARGS_4(a1, a2, a3, a4)
 
#define LOAD_REGS_4
 
#define ASM_ARGS_4   ASM_ARGS_3, "r" (_a4)
 
#define LOAD_ARGS_5(a1, a2, a3, a4, a5)
 
#define LOAD_REGS_5
 
#define ASM_ARGS_5   ASM_ARGS_4, "r" (_a5)
 
#define LOAD_ARGS_6(a1, a2, a3, a4, a5, a6)
 
#define LOAD_REGS_6
 
#define ASM_ARGS_6   ASM_ARGS_5, "r" (_a6)
 
#define PTR_MANGLE(var)
 
#define PTR_DEMANGLE(var)   PTR_MANGLE (var)
 

Macro Definition Documentation

#define __NR_semtimedop   220

Definition at line 54 of file sysdep-x86_64.h.

#define ASM_ARGS_0

Definition at line 264 of file sysdep-x86_64.h.

#define ASM_ARGS_1   ASM_ARGS_0, "r" (_a1)

Definition at line 272 of file sysdep-x86_64.h.

#define ASM_ARGS_2   ASM_ARGS_1, "r" (_a2)

Definition at line 280 of file sysdep-x86_64.h.

#define ASM_ARGS_3   ASM_ARGS_2, "r" (_a3)

Definition at line 288 of file sysdep-x86_64.h.

#define ASM_ARGS_4   ASM_ARGS_3, "r" (_a4)

Definition at line 296 of file sysdep-x86_64.h.

#define ASM_ARGS_5   ASM_ARGS_4, "r" (_a5)

Definition at line 304 of file sysdep-x86_64.h.

#define ASM_ARGS_6   ASM_ARGS_5, "r" (_a6)

Definition at line 312 of file sysdep-x86_64.h.

#define INLINE_SYSCALL (   name,
  nr,
  args... 
)
Value:
({ \
unsigned long resultvar = INTERNAL_SYSCALL (name, , nr, args); \
if (__builtin_expect (INTERNAL_SYSCALL_ERROR_P (resultvar, ), 0)) \
{ \
__set_errno (INTERNAL_SYSCALL_ERRNO (resultvar, )); \
resultvar = (unsigned long) -1; \
} \
(long) resultvar; })

Definition at line 228 of file sysdep-x86_64.h.

#define INTERNAL_SYSCALL (   name,
  err,
  nr,
  args... 
)    INTERNAL_SYSCALL_NCS (__NR_##name, err, nr, ##args)

Definition at line 252 of file sysdep-x86_64.h.

#define INTERNAL_SYSCALL_DECL (   err)    do { } while (0)

Definition at line 239 of file sysdep-x86_64.h.

#define INTERNAL_SYSCALL_ERRNO (   val,
  err 
)    (-(val))

Definition at line 260 of file sysdep-x86_64.h.

#define INTERNAL_SYSCALL_ERROR_P (   val,
  err 
)    ((unsigned long) (val) >= -4095L)

Definition at line 256 of file sysdep-x86_64.h.

#define INTERNAL_SYSCALL_NCS (   name,
  err,
  nr,
  args... 
)
Value:
({ \
unsigned long resultvar; \
LOAD_ARGS_##nr (args) \
LOAD_REGS_##nr \
asm volatile ( \
"syscall\n\t" \
: "=a" (resultvar) \
: "0" (name) ASM_ARGS_##nr : "memory", "cc", "r11", "cx"); \
(long) resultvar; })

Definition at line 241 of file sysdep-x86_64.h.

#define LOAD_ARGS_0 ( )

Definition at line 262 of file sysdep-x86_64.h.

#define LOAD_ARGS_1 (   a1)
Value:
long int __arg1 = (long) (a1); \
LOAD_ARGS_0 ()

Definition at line 266 of file sysdep-x86_64.h.

#define LOAD_ARGS_2 (   a1,
  a2 
)
Value:
long int __arg2 = (long) (a2); \
LOAD_ARGS_1 (a1)

Definition at line 274 of file sysdep-x86_64.h.

#define LOAD_ARGS_3 (   a1,
  a2,
  a3 
)
Value:
long int __arg3 = (long) (a3); \
LOAD_ARGS_2 (a1, a2)

Definition at line 282 of file sysdep-x86_64.h.

#define LOAD_ARGS_4 (   a1,
  a2,
  a3,
  a4 
)
Value:
long int __arg4 = (long) (a4); \
LOAD_ARGS_3 (a1, a2, a3)

Definition at line 290 of file sysdep-x86_64.h.

#define LOAD_ARGS_5 (   a1,
  a2,
  a3,
  a4,
  a5 
)
Value:
long int __arg5 = (long) (a5); \
LOAD_ARGS_4 (a1, a2, a3, a4)

Definition at line 298 of file sysdep-x86_64.h.

#define LOAD_ARGS_6 (   a1,
  a2,
  a3,
  a4,
  a5,
  a6 
)
Value:
long int __arg6 = (long) (a6); \
LOAD_ARGS_5 (a1, a2, a3, a4, a5)

Definition at line 306 of file sysdep-x86_64.h.

#define LOAD_REGS_0

Definition at line 263 of file sysdep-x86_64.h.

#define LOAD_REGS_1
Value:
register long int _a1 asm ("rdi") = __arg1; \
LOAD_REGS_0

Definition at line 269 of file sysdep-x86_64.h.

#define LOAD_REGS_2
Value:
register long int _a2 asm ("rsi") = __arg2; \
LOAD_REGS_1

Definition at line 277 of file sysdep-x86_64.h.

#define LOAD_REGS_3
Value:
register long int _a3 asm ("rdx") = __arg3; \
LOAD_REGS_2

Definition at line 285 of file sysdep-x86_64.h.

#define LOAD_REGS_4
Value:
register long int _a4 asm ("r10") = __arg4; \
LOAD_REGS_3

Definition at line 293 of file sysdep-x86_64.h.

#define LOAD_REGS_5
Value:
register long int _a5 asm ("r8") = __arg5; \
LOAD_REGS_4

Definition at line 301 of file sysdep-x86_64.h.

#define LOAD_REGS_6
Value:
register long int _a6 asm ("r9") = __arg6; \
LOAD_REGS_5

Definition at line 309 of file sysdep-x86_64.h.

#define PTR_DEMANGLE (   var)    PTR_MANGLE (var)

Definition at line 339 of file sysdep-x86_64.h.

#define PTR_MANGLE (   var)
Value:
asm ("xorq %%fs:%c2, %0" \
: "=r" (var) \
: "0" (var), \
"i" (offsetof (tcbhead_t, \
pointer_guard)))

Definition at line 334 of file sysdep-x86_64.h.

#define SYS_ify (   syscall_name)    __NR_##syscall_name

Definition at line 39 of file sysdep-x86_64.h.