Quellcodebibliothek Statistik Leitseite products/sources/formale Sprachen/C/Linux/arch/x86/virt/vmx/tdx/   (Open Source Betriebssystem Version 6.17.9©)  Datei vom 24.10.2025 mit Größe 2 kB image not shown  

Quelle  tdx.h   Sprache: C

 
/* SPDX-License-Identifier: GPL-2.0 */
#ifndef _X86_VIRT_TDX_H
#define _X86_VIRT_TDX_H

#include <linux/bits.h>

/*
 * This file contains both macros and data structures defined by the TDX
 * architecture and Linux defined software data structures and functions.
 * The two should not be mixed together for better readability.  The
 * architectural definitions come first.
 */


/*
 * TDX module SEAMCALL leaf functions
 */

#define TDH_VP_ENTER   0
#define TDH_MNG_ADDCX   1
#define TDH_MEM_PAGE_ADD  2
#define TDH_MEM_SEPT_ADD  3
#define TDH_VP_ADDCX   4
#define TDH_MEM_PAGE_AUG  6
#define TDH_MEM_RANGE_BLOCK  7
#define TDH_MNG_KEY_CONFIG  8
#define TDH_MNG_CREATE   9
#define TDH_MNG_RD   11
#define TDH_MR_EXTEND   16
#define TDH_MR_FINALIZE   17
#define TDH_VP_FLUSH   18
#define TDH_MNG_VPFLUSHDONE  19
#define TDH_VP_CREATE   10
#define TDH_MNG_KEY_FREEID  20
#define TDH_MNG_INIT   21
#define TDH_VP_INIT   22
#define TDH_PHYMEM_PAGE_RDMD  24
#define TDH_VP_RD   26
#define TDH_PHYMEM_PAGE_RECLAIM  28
#define TDH_MEM_PAGE_REMOVE  29
#define TDH_SYS_KEY_CONFIG  31
#define TDH_SYS_INIT   33
#define TDH_SYS_RD   34
#define TDH_SYS_LP_INIT   35
#define TDH_SYS_TDMR_INIT  36
#define TDH_MEM_TRACK   38
#define TDH_PHYMEM_CACHE_WB  40
#define TDH_PHYMEM_PAGE_WBINVD  41
#define TDH_VP_WR   43
#define TDH_SYS_CONFIG   45

/*
 * SEAMCALL leaf:
 *
 * Bit 15:0 Leaf number
 * Bit 23:16 Version number
 */

#define TDX_VERSION_SHIFT  16

/* TDX page types */
#define PT_NDA  0x0
#define PT_RSVD  0x1

struct tdmr_reserved_area {
 u64 offset;
 u64 size;
} __packed;

#define TDMR_INFO_ALIGNMENT 512
#define TDMR_INFO_PA_ARRAY_ALIGNMENT 512

struct tdmr_info {
 u64 base;
 u64 size;
 u64 pamt_1g_base;
 u64 pamt_1g_size;
 u64 pamt_2m_base;
 u64 pamt_2m_size;
 u64 pamt_4k_base;
 u64 pamt_4k_size;
 /*
 * The actual number of reserved areas depends on the value of
 * field MD_FIELD_ID_MAX_RESERVED_PER_TDMR in the TDX module
 * global metadata.
 */

 DECLARE_FLEX_ARRAY(struct tdmr_reserved_area, reserved_areas);
} __packed __aligned(TDMR_INFO_ALIGNMENT);

/* Bit definitions of TDX_FEATURES0 metadata field */
#define TDX_FEATURES0_NO_RBP_MOD BIT(18)

/*
 * Do not put any hardware-defined TDX structure representations below
 * this comment!
 */


/* Kernel defined TDX module status during module initialization. */
enum tdx_module_status_t {
 TDX_MODULE_UNINITIALIZED,
 TDX_MODULE_INITIALIZED,
 TDX_MODULE_ERROR
};

struct tdx_memblock {
 struct list_head list;
 unsigned long start_pfn;
 unsigned long end_pfn;
 int nid;
};

/* Warn if kernel has less than TDMR_NR_WARN TDMRs after allocation */
#define TDMR_NR_WARN 4

struct tdmr_info_list {
 void *tdmrs; /* Flexible array to hold 'tdmr_info's */
 int nr_consumed_tdmrs; /* How many 'tdmr_info's are in use */

 /* Metadata for finding target 'tdmr_info' and freeing @tdmrs */
 int tdmr_sz; /* Size of one 'tdmr_info' */
 int max_tdmrs; /* How many 'tdmr_info's are allocated */
};

#endif

Messung V0.5
C=93 H=98 G=95

¤ Dauer der Verarbeitung: 0.15 Sekunden  (vorverarbeitet)  ¤

*© Formatika GbR, Deutschland






Wurzel

Suchen

Beweissystem der NASA

Beweissystem Isabelle

NIST Cobol Testsuite

Cephes Mathematical Library

Wiener Entwicklungsmethode

Haftungshinweis

Die Informationen auf dieser Webseite wurden nach bestem Wissen sorgfältig zusammengestellt. Es wird jedoch weder Vollständigkeit, noch Richtigkeit, noch Qualität der bereit gestellten Informationen zugesichert.

Bemerkung:

Die farbliche Syntaxdarstellung und die Messung sind noch experimentell.