10
FILE_LICENCE ( GPL2_OR_LATER_OR_UBDL );
19
* @v hv Hyper-V hypervisor
21
* @v in Input parameters
22
* @v out Output parameters
23
* @ret status Status code
25
static inline __attribute__ (( always_inline )) int
26
hv_call ( struct hv_hypervisor *hv, unsigned int code, const void *in,
28
void *hypercall = hv->hypercall;
35
in_phys = ( ( __builtin_constant_p ( in ) && ( in == NULL ) )
36
? 0 : virt_to_phys ( in ) );
37
out_phys = ( ( __builtin_constant_p ( out ) && ( out == NULL ) )
38
? 0 : virt_to_phys ( out ) );
39
__asm__ __volatile__ ( "call *%9"
40
: "=a" ( result ), "=c" ( discard_ecx ),
42
: "d" ( 0 ), "a" ( code ),
43
"b" ( 0 ), "c" ( in_phys ),
44
"D" ( 0 ), "S" ( out_phys ),
49
#endif /* _BITS_HYPERV_H */