Xen Test Framework
Macros
hypercall-x86_64.h File Reference

Go to the source code of this file.

Macros

#define _hypercall64_0(type, hcall)
 
#define _hypercall64_1(type, hcall, a1)
 
#define _hypercall64_2(type, hcall, a1, a2)
 
#define _hypercall64_3(type, hcall, a1, a2, a3)
 
#define _hypercall64_4(type, hcall, a1, a2, a3, a4)
 
#define _hypercall64_5(type, hcall, a1, a2, a3, a4, a5)
 

Macro Definition Documentation

◆ _hypercall64_0

#define _hypercall64_0 (   type,
  hcall 
)
Value:
({ \
long res; \
asm volatile ( \
"call hypercall_page + %c[offset]" \
: "=a" (res) \
: [offset] "i" (hcall * 32) \
: "memory" ); \
(type)res; \
})

Definition at line 10 of file hypercall-x86_64.h.

◆ _hypercall64_1

#define _hypercall64_1 (   type,
  hcall,
  a1 
)
Value:
({ \
long res, _a1 = (long)(a1); \
asm volatile ( \
"call hypercall_page + %c[offset]" \
: "=a" (res), "+D" (_a1) \
: [offset] "i" (hcall * 32) \
: "memory" ); \
(type)res; \
})

Definition at line 21 of file hypercall-x86_64.h.

◆ _hypercall64_2

#define _hypercall64_2 (   type,
  hcall,
  a1,
  a2 
)
Value:
({ \
long res, _a1 = (long)(a1), _a2 = (long)(a2); \
asm volatile ( \
"call hypercall_page + %c[offset]" \
: "=a" (res), "+D" (_a1), "+S" (_a2) \
: [offset] "i" (hcall * 32) \
: "memory" ); \
(type)res; \
})

Definition at line 32 of file hypercall-x86_64.h.

◆ _hypercall64_3

#define _hypercall64_3 (   type,
  hcall,
  a1,
  a2,
  a3 
)
Value:
({ \
long res, _a1 = (long)(a1), _a2 = (long)(a2), _a3 = (long)(a3); \
asm volatile ( \
"call hypercall_page + %c[offset]" \
: "=a" (res), "+D" (_a1), "+S" (_a2), "+d" (_a3) \
: [offset] "i" (hcall * 32) \
: "memory" ); \
(type)res; \
})

Definition at line 43 of file hypercall-x86_64.h.

◆ _hypercall64_4

#define _hypercall64_4 (   type,
  hcall,
  a1,
  a2,
  a3,
  a4 
)
Value:
({ \
long res, _a1 = (long)(a1), _a2 = (long)(a2), _a3 = (long)(a3); \
register long _a4 asm ("r10") = (long)(a4); \
asm volatile ( \
"call hypercall_page + %c[offset]" \
: "=a" (res), "+D" (_a1), "+S" (_a2), "+d" (_a3), \
"+r" (_a4) \
: [offset] "i" (hcall * 32) \
: "memory" ); \
(type)res; \
})

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

◆ _hypercall64_5

#define _hypercall64_5 (   type,
  hcall,
  a1,
  a2,
  a3,
  a4,
  a5 
)
Value:
({ \
long res, _a1 = (long)(a1), _a2 = (long)(a2), _a3 = (long)(a3); \
register long _a4 asm ("r10") = (long)(a4); \
register long _a5 asm ("r8") = (long)(a5); \
asm volatile ( \
"call hypercall_page + %c[offset]" \
: "=a" (res), "+D" (_a1), "+S" (_a2), "+d" (_a3), \
"+r" (_a4), "+r" (_a5) \
: [offset] "i" (hcall * 32) \
: "memory" ); \
(type)res; \
})

Definition at line 67 of file hypercall-x86_64.h.