]> Git Repo - linux.git/blob - arch/x86/coco/tdx/tdcall.S
Linux 6.14-rc3
[linux.git] / arch / x86 / coco / tdx / tdcall.S
1 /* SPDX-License-Identifier: GPL-2.0 */
2 #include <asm/asm-offsets.h>
3 #include <asm/asm.h>
4
5 #include <linux/linkage.h>
6 #include <linux/errno.h>
7
8 #include "../../virt/vmx/tdx/tdxcall.S"
9
10 .section .noinstr.text, "ax"
11
12 /*
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)
28
29 /*
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)
46
47 /*
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)
This page took 0.03395 seconds and 4 git commands to generate.