drm/panthor: Don't add write fences to the shared BOs
[drm/drm-misc.git] / arch / x86 / coco / tdx / tdcall.S
blob52d9786da308e4ac7ffb89304c7830bfc2495b60
1 /* SPDX-License-Identifier: GPL-2.0 */
2 #include <asm/asm-offsets.h>
3 #include <asm/asm.h>
5 #include <linux/linkage.h>
6 #include <linux/errno.h>
8 #include "../../virt/vmx/tdx/tdxcall.S"
10 .section .noinstr.text, "ax"
13  * __tdcall()  - Used by TDX guests to request services from the TDX
14  * module (does not include VMM services) using TDCALL instruction.
15  *
16  * __tdcall() function ABI:
17  *
18  * @fn   (RDI)  - TDCALL Leaf ID, moved to RAX
19  * @args (RSI)  - struct tdx_module_args for input
20  *
21  * Only RCX/RDX/R8-R11 are used as input registers.
22  *
23  * Return status of TDCALL via RAX.
24  */
25 SYM_FUNC_START(__tdcall)
26         TDX_MODULE_CALL host=0
27 SYM_FUNC_END(__tdcall)
30  * __tdcall_ret() - Used by TDX guests to request services from the TDX
31  * module (does not include VMM services) using TDCALL instruction, with
32  * saving output registers to the 'struct tdx_module_args' used as input.
33  *
34  * __tdcall_ret() function ABI:
35  *
36  * @fn   (RDI)  - TDCALL Leaf ID, moved to RAX
37  * @args (RSI)  - struct tdx_module_args for input and output
38  *
39  * Only RCX/RDX/R8-R11 are used as input/output registers.
40  *
41  * Return status of TDCALL via RAX.
42  */
43 SYM_FUNC_START(__tdcall_ret)
44         TDX_MODULE_CALL host=0 ret=1
45 SYM_FUNC_END(__tdcall_ret)
48  * __tdcall_saved_ret() - Used by TDX guests to request services from the
49  * TDX module (including VMM services) using TDCALL instruction, with
50  * saving output registers to the 'struct tdx_module_args' used as input.
51  *
52  * __tdcall_saved_ret() function ABI:
53  *
54  * @fn   (RDI)  - TDCALL leaf ID, moved to RAX
55  * @args (RSI)  - struct tdx_module_args for input/output
56  *
57  * All registers in @args are used as input/output registers.
58  *
59  * On successful completion, return the hypercall error code.
60  */
61 SYM_FUNC_START(__tdcall_saved_ret)
62         TDX_MODULE_CALL host=0 ret=1 saved=1
63 SYM_FUNC_END(__tdcall_saved_ret)