cachepc-linux

Fork of AMDESE/linux with modifications for CachePC side-channel attack
git clone https://git.sinitax.com/sinitax/cachepc-linux
Log | Files | Refs | README | LICENSE | sfeed.txt

tdx.h (945B)


      1/* SPDX-License-Identifier: GPL-2.0 */
      2#ifndef _ASM_X86_SHARED_TDX_H
      3#define _ASM_X86_SHARED_TDX_H
      4
      5#include <linux/bits.h>
      6#include <linux/types.h>
      7
      8#define TDX_HYPERCALL_STANDARD  0
      9
     10#define TDX_HCALL_HAS_OUTPUT	BIT(0)
     11#define TDX_HCALL_ISSUE_STI	BIT(1)
     12
     13#define TDX_CPUID_LEAF_ID	0x21
     14#define TDX_IDENT		"IntelTDX    "
     15
     16#ifndef __ASSEMBLY__
     17
     18/*
     19 * Used in __tdx_hypercall() to pass down and get back registers' values of
     20 * the TDCALL instruction when requesting services from the VMM.
     21 *
     22 * This is a software only structure and not part of the TDX module/VMM ABI.
     23 */
     24struct tdx_hypercall_args {
     25	u64 r10;
     26	u64 r11;
     27	u64 r12;
     28	u64 r13;
     29	u64 r14;
     30	u64 r15;
     31};
     32
     33/* Used to request services from the VMM */
     34u64 __tdx_hypercall(struct tdx_hypercall_args *args, unsigned long flags);
     35
     36/* Called from __tdx_hypercall() for unrecoverable failure */
     37void __tdx_hypercall_failed(void);
     38
     39#endif /* !__ASSEMBLY__ */
     40#endif /* _ASM_X86_SHARED_TDX_H */