1 /* SPDX-License-Identifier: GPL-2.0 */ 2 #include <linux/linkage.h> 3 #include <asm/frame.h> 4 5 #include "tdxcall.S" 6 7 /* 8 * __seamcall() - Host-side interface functions to SEAM software 9 * (the P-SEAMLDR or the TDX module). 10 * 11 * __seamcall() function ABI: 12 * 13 * @fn (RDI) - SEAMCALL Leaf number, moved to RAX 14 * @args (RSI) - struct tdx_module_args for input 15 * 16 * Only RCX/RDX/R8-R11 are used as input registers. 17 * 18 * Return (via RAX) TDX_SEAMCALL_VMFAILINVALID if the SEAMCALL itself 19 * fails, or the completion status of the SEAMCALL leaf function. 20 */ 21 SYM_FUNC_START(__seamcall) 22 TDX_MODULE_CALL host=1 23 SYM_FUNC_END(__seamcall) 24 25 /* 26 * __seamcall_ret() - Host-side interface functions to SEAM software 27 * (the P-SEAMLDR or the TDX module), with saving output registers to 28 * the 'struct tdx_module_args' used as input. 29 * 30 * __seamcall_ret() function ABI: 31 * 32 * @fn (RDI) - SEAMCALL Leaf number, moved to RAX 33 * @args (RSI) - struct tdx_module_args for input and output 34 * 35 * Only RCX/RDX/R8-R11 are used as input/output registers. 36 * 37 * Return (via RAX) TDX_SEAMCALL_VMFAILINVALID if the SEAMCALL itself 38 * fails, or the completion status of the SEAMCALL leaf function. 39 */ 40 SYM_FUNC_START(__seamcall_ret) 41 TDX_MODULE_CALL host=1 ret=1 42 SYM_FUNC_END(__seamcall_ret) 43 44 /* 45 * __seamcall_saved_ret() - Host-side interface functions to SEAM software 46 * (the P-SEAMLDR or the TDX module), with saving output registers to the 47 * 'struct tdx_module_args' used as input. 48 * 49 * __seamcall_saved_ret() function ABI: 50 * 51 * @fn (RDI) - SEAMCALL Leaf number, moved to RAX 52 * @args (RSI) - struct tdx_module_args for input and output 53 * 54 * All registers in @args are used as input/output registers. 55 * 56 * Return (via RAX) TDX_SEAMCALL_VMFAILINVALID if the SEAMCALL itself 57 * fails, or the completion status of the SEAMCALL leaf function. 58 */ 59 SYM_FUNC_START(__seamcall_saved_ret) 60 TDX_MODULE_CALL host=1 ret=1 saved=1 61 SYM_FUNC_END(__seamcall_saved_ret)
Linux® is a registered trademark of Linus Torvalds in the United States and other countries.
TOMOYO® is a registered trademark of NTT DATA CORPORATION.