Go to the documentation of this file. 1 #ifndef XTF_X86_32_HYPERCALL_H 2 #define XTF_X86_32_HYPERCALL_H 10 #define _hypercall32_0(type, hcall) \ 14 "call hypercall_page + %c[offset]" \ 16 : [offset] "i" (hcall * 32) \ 21 #define _hypercall32_1(type, hcall, a1) \ 23 long res, _a1 = (long)(a1); \ 25 "call hypercall_page + %c[offset]" \ 26 : "=a" (res), "+b" (_a1) \ 27 : [offset] "i" (hcall * 32) \ 32 #define _hypercall32_2(type, hcall, a1, a2) \ 34 long res, _a1 = (long)(a1), _a2 = (long)(a2); \ 36 "call hypercall_page + %c[offset]" \ 37 : "=a" (res), "+b" (_a1), "+c" (_a2) \ 38 : [offset] "i" (hcall * 32) \ 43 #define _hypercall32_3(type, hcall, a1, a2, a3) \ 45 long res, _a1 = (long)(a1), _a2 = (long)(a2), _a3 = (long)(a3); \ 47 "call hypercall_page + %c[offset]" \ 48 : "=a" (res), "+b" (_a1), "+c" (_a2), "+d" (_a3) \ 49 : [offset] "i" (hcall * 32) \ 54 #define _hypercall32_4(type, hcall, a1, a2, a3, a4) \ 56 long res, _a1 = (long)(a1), _a2 = (long)(a2), _a3 = (long)(a3), \ 59 "call hypercall_page + %c[offset]" \ 60 : "=a" (res), "+b" (_a1), "+c" (_a2), "+d" (_a3), \ 62 : [offset] "i" (hcall * 32) \ 67 #define _hypercall32_5(type, hcall, a1, a2, a3, a4, a5) \ 69 long res, _a1 = (long)(a1), _a2 = (long)(a2), _a3 = (long)(a3), \ 70 _a4 = (long)(a4), _a5 = (long)(a5); \ 72 "call hypercall_page + %c[offset]" \ 73 : "=a" (res), "+b" (_a1), "+c" (_a2), "+d" (_a3), \ 74 "+S" (_a4), "+D" (_a5) \ 75 : [offset] "i" (hcall * 32) \