Xen Test Framework
Macros
hypercall-x86_32.h File Reference

Go to the source code of this file.

Macros

#define _hypercall32_0(type, hcall)
 
#define _hypercall32_1(type, hcall, a1)
 
#define _hypercall32_2(type, hcall, a1, a2)
 
#define _hypercall32_3(type, hcall, a1, a2, a3)
 
#define _hypercall32_4(type, hcall, a1, a2, a3, a4)
 
#define _hypercall32_5(type, hcall, a1, a2, a3, a4, a5)
 

Macro Definition Documentation

◆ _hypercall32_0

#define _hypercall32_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_32.h.

◆ _hypercall32_1

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

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

◆ _hypercall32_2

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

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

◆ _hypercall32_3

#define _hypercall32_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), "+b" (_a1), "+c" (_a2), "+d" (_a3) \
: [offset] "i" (hcall * 32) \
: "memory" ); \
(type)res; \
})

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

◆ _hypercall32_4

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

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

◆ _hypercall32_5

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

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