On 1/9/24 00:40, Alexey Makhalov wrote: > +#ifdef CONFIG_INTEL_TDX_GUEST > +unsigned long vmware_tdx_hypercall(unsigned long cmd, > + struct tdx_module_args *args) > +{ > + if (!hypervisor_is_type(X86_HYPER_VMWARE)) > + return ULONG_MAX; > + > + if (cmd & ~VMWARE_CMD_MASK) { > + pr_warn_once("Out of range command %lx\n", cmd); > + return ULONG_MAX; > + } > + > + args->r10 = VMWARE_TDX_VENDOR_LEAF; > + args->r11 = VMWARE_TDX_HCALL_FUNC; > + args->r12 = VMWARE_HYPERVISOR_MAGIC; > + args->r13 = cmd; > + args->r15 = 0; /* CPL */ > + > + __tdx_hypercall(args); > + > + return args->r12; > +} > +EXPORT_SYMBOL_GPL(vmware_tdx_hypercall); > +#endif This is the kind of wrapper that I was hoping for. Thanks. Acked-by: Dave Hansen <dave.hansen@xxxxxxxxxxxxxxx>