coreboot
coreboot is an Open Source project aimed at replacing the proprietary BIOS found in most computers.
StmApi.h File Reference
#include <stdint.h>
Include dependency graph for StmApi.h:
This graph shows which files directly or indirectly include this file:

Go to the source code of this file.

Data Structures

struct  HARDWARE_STM_HEADER
 
struct  STM_FEAT
 
struct  SOFTWARE_STM_HEADER
 
struct  STM_HEADER
 
struct  TXT_BIOS_COMPONENT_STATUS
 
struct  TXT_BIOS_COMPONENT_UPDATE
 
struct  STM_PROTECTION_EXCEPTION_HANDLER
 
struct  STM_SMM_ENTRY_STATE
 
struct  STM_SMM_RESUME_STATE
 
struct  STM_SMM_STATE
 
struct  TXT_PROCESSOR_SMM_DESCRIPTOR
 
struct  STM_PROTECTION_EXCEPTION_STACK_FRAME_IA32
 
struct  STM_PROTECTION_EXCEPTION_STACK_FRAME_X64
 
union  STM_PROTECTION_EXCEPTION_STACK_FRAME
 
struct  _STM_SMM_CPU_STATE
 
struct  STM_MAP_ADDRESS_RANGE_DESCRIPTOR
 
struct  STM_UNMAP_ADDRESS_RANGE_DESCRIPTOR
 
struct  STM_ADDRESS_LOOKUP_DESCRIPTOR
 
struct  STM_RSC_DESC_HEADER
 
struct  STM_RSC_END
 
struct  STM_RSC_MEM_DESC
 
struct  STM_RSC_IO_DESC
 
struct  STM_RSC_MMIO_DESC
 
struct  STM_RSC_MSR_DESC
 
struct  STM_PCI_DEVICE_PATH_NODE
 
struct  STM_RSC_PCI_CFG_DESC
 
struct  STM_RSC_TRAPPED_IO_DESC
 
struct  STM_RSC_ALL_RESOURCES_DESC
 
struct  STM_REGISTER_VIOLATION_DESC
 
union  STM_RSC
 
struct  STM_VMCS_DATABASE_REQUEST
 
struct  STM_EVENT_LOG_MANAGEMENT_REQUEST_DATA_LOG_BUFFER
 
union  STM_EVENT_LOG_MANAGEMENT_REQUEST_DATA
 
struct  STM_EVENT_LOG_MANAGEMENT_REQUEST
 
struct  LOG_ENTRY_HEADER
 
struct  ENTRY_EVT_LOG_STARTED
 
struct  ENTRY_EVT_LOG_STOPPED
 
struct  ENTRY_EVT_LOG_INVALID_PARAM
 
struct  ENTRY_EVT_LOG_HANDLED_PROTECTION_EXCEPTION
 
struct  ENTRY_EVT_BIOS_ACCESS_UNCLAIMED_RSC
 
struct  ENTRY_EVT_MLE_RSC_PROT_GRANTED
 
struct  ENTRY_EVT_MLE_RSC_PROT_DENIED
 
struct  ENTRY_EVT_MLE_RSC_UNPROT
 
struct  ENTRY_EVT_MLE_RSC_UNPROT_ERROR
 
struct  ENTRY_EVT_MLE_DOMAIN_TYPE_DEGRADED
 
union  LOG_ENTRY_DATA
 
struct  STM_LOG_ENTRY
 
struct  TXT_BIOS_DEBUG
 

Macros

#define STM_SPEC_VERSION_MAJOR   1
 
#define STM_SPEC_VERSION_MINOR   0
 
#define STM_HARDWARE_FIELD_FILL_TO_2K   (2048 - sizeof(uint32_t) * 8)
 
#define STM_FEATURES_IA32E   0x1
 
#define SHA1   1
 
#define SHA256   2
 
#define PAGE_SIZE   4096
 
#define TXT_PROCESSOR_SMM_DESCRIPTOR_SIGNATURE   "TXTPSSIG"
 
#define TXT_PROCESSOR_SMM_DESCRIPTOR_VERSION_MAJOR   1
 
#define TXT_PROCESSOR_SMM_DESCRIPTOR_VERSION_MINOR   0
 
#define SMM_PSD_OFFSET   0xfb00
 
#define STM_SMM_REV_ID   0x80010100
 
#define ST_UC   0x00
 
#define WC   0x01
 
#define WT   0x04
 
#define WP   0x05
 
#define WB   0x06
 
#define UC   0x07
 
#define FOLLOW_MTRR   0xFFFFFFFF
 
#define DO_NOT_MAP   0
 
#define ONE_TO_ONE   1
 
#define VIRTUAL_ADDRESS_SPECIFIED   3
 
#define END_OF_RESOURCES   0
 
#define MEM_RANGE   1
 
#define IO_RANGE   2
 
#define MMIO_RANGE   3
 
#define MACHINE_SPECIFIC_REG   4
 
#define PCI_CFG_RANGE   5
 
#define TRAPPED_IO_RANGE   6
 
#define ALL_RESOURCES   7
 
#define REGISTER_VIOLATION   8
 
#define MAX_DESC_TYPE   8
 
#define STM_RSC_BGM   0x4
 
#define STM_RSC_MEM_R   0x1
 
#define STM_RSC_MEM_W   0x2
 
#define STM_RSC_MEM_X   0x4
 
#define STM_RSC_BGI   0x2
 
#define STM_RSC_MMIO_R   0x1
 
#define STM_RSC_MMIO_W   0x2
 
#define STM_RSC_MMIO_X   0x4
 
#define STM_RSC_MSR   0x8
 
#define STM_RSC_PCI_CFG_R   0x1
 
#define STM_RSC_PCI_CFG_W   0x2
 
#define STM_VMCS_DATABASE_REQUEST_ADD   1
 
#define STM_VMCS_DATABASE_REQUEST_REMOVE   0
 
#define DOMAIN_DISALLOWED_IO_OUT   (1u << 0)
 
#define DOMAIN_DISALLOWED_IO_IN   (1u << 1)
 
#define DOMAIN_INTEGRITY   (1u << 2)
 
#define DOMAIN_CONFIDENTIALITY   (1u << 3)
 
#define DOMAIN_UNPROTECTED   0x00
 
#define DOMAIN_INTEGRITY_PROT_OUT_IN   (DOMAIN_INTEGRITY)
 
#define DOMAIN_FULLY_PROT_OUT_IN   (DOMAIN_CONFIDENTIALITY | DOMAIN_INTEGRITY)
 
#define DOMAIN_FULLY_PROT
 
#define XSTATE_READWRITE   0x00
 
#define XSTATE_READONLY   0x01
 
#define XSTATE_SCRUB   0x03
 
#define NEW_LOG   1
 
#define CONFIGURE_LOG   2
 
#define START_LOG   3
 
#define STOP_LOG   4
 
#define CLEAR_LOG   5
 
#define DELETE_LOG   6
 
#define STM_API_MAP_ADDRESS_RANGE   0x00000001
 
#define STM_API_UNMAP_ADDRESS_RANGE   0x00000002
 
#define STM_API_ADDRESS_LOOKUP   0x00000003
 
#define STM_API_RETURN_FROM_PROTECTION_EXCEPTION   0x00000004
 
#define STM_API_START   0x00010001
 
#define STM_API_STOP   0x00010002
 
#define STM_API_PROTECT_RESOURCE   0x00010003
 
#define STM_API_UNPROTECT_RESOURCE   0x00010004
 
#define STM_API_GET_BIOS_RESOURCES   0x00010005
 
#define STM_API_MANAGE_VMCS_DATABASE   0x00010006
 
#define STM_API_INITIALIZE_PROTECTION   0x00010007
 
#define STM_API_MANAGE_EVENT_LOG   0x00010008
 
#define STM_SUCCESS   0x00000000
 
#define SMM_SUCCESS   0x00000000
 
#define ERROR_STM_SECURITY_VIOLATION   0x80010001
 
#define ERROR_STM_CACHE_TYPE_NOT_SUPPORTED   0x80010002
 
#define ERROR_STM_PAGE_NOT_FOUND   0x80010003
 
#define ERROR_STM_BAD_CR3   0x80010004
 
#define ERROR_STM_PHYSICAL_OVER_4G   0x80010005
 
#define ERROR_STM_VIRTUAL_SPACE_TOO_SMALL   0x80010006
 
#define ERROR_STM_UNPROTECTABLE_RESOURCE   0x80010007
 
#define ERROR_STM_ALREADY_STARTED   0x80010008
 
#define ERROR_STM_WITHOUT_SMX_UNSUPPORTED   0x80010009
 
#define ERROR_STM_STOPPED   0x8001000A
 
#define ERROR_STM_BUFFER_TOO_SMALL   0x8001000B
 
#define ERROR_STM_INVALID_VMCS_DATABASE   0x8001000C
 
#define ERROR_STM_MALFORMED_RESOURCE_LIST   0x8001000D
 
#define ERROR_STM_INVALID_PAGECOUNT   0x8001000E
 
#define ERROR_STM_LOG_ALLOCATED   0x8001000F
 
#define ERROR_STM_LOG_NOT_ALLOCATED   0x80010010
 
#define ERROR_STM_LOG_NOT_STOPPED   0x80010011
 
#define ERROR_STM_LOG_NOT_STARTED   0x80010012
 
#define ERROR_STM_RESERVED_BIT_SET   0x80010013
 
#define ERROR_STM_NO_EVENTS_ENABLED   0x80010014
 
#define ERROR_STM_OUT_OF_RESOURCES   0x80010015
 
#define ERROR_STM_FUNCTION_NOT_SUPPORTED   0x80010016
 
#define ERROR_STM_UNPROTECTABLE   0x80010017
 
#define ERROR_STM_UNSUPPORTED_MSR_BIT   0x80010018
 
#define ERROR_STM_UNSPECIFIED   0x8001FFFF
 
#define ERROR_SMM_BAD_BUFFER   0x80020001
 
#define ERROR_SMM_INVALID_RSC   0x80020004
 
#define ERROR_SMM_INVALID_BUFFER_SIZE   0x80020005
 
#define ERROR_SMM_BUFFER_TOO_SHORT   0x80020006
 
#define ERROR_SMM_INVALID_LIST   0x80020007
 
#define ERROR_SMM_OUT_OF_MEMORY   0x80020008
 
#define ERROR_SMM_AFTER_INIT   0x80020009
 
#define ERROR_SMM_UNSPECIFIED   0x8002FFFF
 
#define ERROR_INVALID_API   0x80038001
 
#define ERROR_INVALID_PARAMETER   0x80038002
 
#define STM_CRASH_PROTECTION_EXCEPTION   0xC000F001
 
#define STM_CRASH_PROTECTION_EXCEPTION_FAILURE   0xC000F002
 
#define STM_CRASH_DOMAIN_DEGRADATION_FAILURE   0xC000F003
 
#define STM_CRASH_BIOS_PANIC   0xC000E000
 
#define STM_LOG_ENTRY_SIZE   256
 
#define STM_CONFIG_SMI_UNBLOCKING_BY_VMX_OFF   0x1
 
#define SW_SMI_STM_ADD_RUNTIME_RESOURCES_SUB_FUNC   0
 
#define SW_SMI_STM_READ_BIOS_RESOURCES_SUB_FUNC   1
 
#define SW_SMI_STM_REPLACE_BIOS_RESOURCES_SUB_FUNC   2
 

Typedefs

typedef struct _STM_SMM_CPU_STATE STM_SMM_CPU_STATE
 
typedef uint32_t STM_STATUS
 

Enumerations

enum  TXT_SMM_PROTECTION_EXCEPTION_TYPE {
  TxtSmmPageViolation = 1 , TxtSmmMsrViolation , TxtSmmRegisterViolation , TxtSmmIoViolation ,
  TxtSmmPciViolation
}
 
enum  STM_REGISTER_VIOLATION_TYPE {
  stm_register_cr0 , stm_register_cr2 , stm_register_cr3 , stm_register_cr4 ,
  stm_register_cr8 , stm_register_max
}
 
enum  EVENT_TYPE {
  evt_log_started , evt_log_stopped , evt_log_invalid_parameter_detected , evt_handled_protection_exception ,
  evt_bios_access_to_unclaimed_resource , evt_mle_resource_protection_granted , evt_mle_resource_protection_denied , evt_mle_resource_unprotect ,
  evt_mle_resource_unprotect_error , evt_mle_domain_type_degraded , evt_mle_max , evt_invalid = 0xFFFFFFFF
}
 

Macro Definition Documentation

◆ ALL_RESOURCES

#define ALL_RESOURCES   7

Definition at line 332 of file StmApi.h.

◆ CLEAR_LOG

#define CLEAR_LOG   5

Definition at line 505 of file StmApi.h.

◆ CONFIGURE_LOG

#define CONFIGURE_LOG   2

Definition at line 502 of file StmApi.h.

◆ DELETE_LOG

#define DELETE_LOG   6

Definition at line 506 of file StmApi.h.

◆ DO_NOT_MAP

#define DO_NOT_MAP   0

Definition at line 320 of file StmApi.h.

◆ DOMAIN_CONFIDENTIALITY

#define DOMAIN_CONFIDENTIALITY   (1u << 3)

Definition at line 477 of file StmApi.h.

◆ DOMAIN_DISALLOWED_IO_IN

#define DOMAIN_DISALLOWED_IO_IN   (1u << 1)

Definition at line 475 of file StmApi.h.

◆ DOMAIN_DISALLOWED_IO_OUT

#define DOMAIN_DISALLOWED_IO_OUT   (1u << 0)

Definition at line 474 of file StmApi.h.

◆ DOMAIN_FULLY_PROT

#define DOMAIN_FULLY_PROT
Value:
#define DOMAIN_DISALLOWED_IO_OUT
Definition: StmApi.h:474
#define DOMAIN_DISALLOWED_IO_IN
Definition: StmApi.h:475
#define DOMAIN_CONFIDENTIALITY
Definition: StmApi.h:477
#define DOMAIN_INTEGRITY
Definition: StmApi.h:476

Definition at line 482 of file StmApi.h.

◆ DOMAIN_FULLY_PROT_OUT_IN

#define DOMAIN_FULLY_PROT_OUT_IN   (DOMAIN_CONFIDENTIALITY | DOMAIN_INTEGRITY)

Definition at line 481 of file StmApi.h.

◆ DOMAIN_INTEGRITY

#define DOMAIN_INTEGRITY   (1u << 2)

Definition at line 476 of file StmApi.h.

◆ DOMAIN_INTEGRITY_PROT_OUT_IN

#define DOMAIN_INTEGRITY_PROT_OUT_IN   (DOMAIN_INTEGRITY)

Definition at line 480 of file StmApi.h.

◆ DOMAIN_UNPROTECTED

#define DOMAIN_UNPROTECTED   0x00

Definition at line 479 of file StmApi.h.

◆ END_OF_RESOURCES

#define END_OF_RESOURCES   0

Definition at line 325 of file StmApi.h.

◆ ERROR_INVALID_API

#define ERROR_INVALID_API   0x80038001

Definition at line 617 of file StmApi.h.

◆ ERROR_INVALID_PARAMETER

#define ERROR_INVALID_PARAMETER   0x80038002

Definition at line 618 of file StmApi.h.

◆ ERROR_SMM_AFTER_INIT

#define ERROR_SMM_AFTER_INIT   0x80020009

Definition at line 613 of file StmApi.h.

◆ ERROR_SMM_BAD_BUFFER

#define ERROR_SMM_BAD_BUFFER   0x80020001

Definition at line 607 of file StmApi.h.

◆ ERROR_SMM_BUFFER_TOO_SHORT

#define ERROR_SMM_BUFFER_TOO_SHORT   0x80020006

Definition at line 610 of file StmApi.h.

◆ ERROR_SMM_INVALID_BUFFER_SIZE

#define ERROR_SMM_INVALID_BUFFER_SIZE   0x80020005

Definition at line 609 of file StmApi.h.

◆ ERROR_SMM_INVALID_LIST

#define ERROR_SMM_INVALID_LIST   0x80020007

Definition at line 611 of file StmApi.h.

◆ ERROR_SMM_INVALID_RSC

#define ERROR_SMM_INVALID_RSC   0x80020004

Definition at line 608 of file StmApi.h.

◆ ERROR_SMM_OUT_OF_MEMORY

#define ERROR_SMM_OUT_OF_MEMORY   0x80020008

Definition at line 612 of file StmApi.h.

◆ ERROR_SMM_UNSPECIFIED

#define ERROR_SMM_UNSPECIFIED   0x8002FFFF

Definition at line 614 of file StmApi.h.

◆ ERROR_STM_ALREADY_STARTED

#define ERROR_STM_ALREADY_STARTED   0x80010008

Definition at line 587 of file StmApi.h.

◆ ERROR_STM_BAD_CR3

#define ERROR_STM_BAD_CR3   0x80010004

Definition at line 583 of file StmApi.h.

◆ ERROR_STM_BUFFER_TOO_SMALL

#define ERROR_STM_BUFFER_TOO_SMALL   0x8001000B

Definition at line 590 of file StmApi.h.

◆ ERROR_STM_CACHE_TYPE_NOT_SUPPORTED

#define ERROR_STM_CACHE_TYPE_NOT_SUPPORTED   0x80010002

Definition at line 581 of file StmApi.h.

◆ ERROR_STM_FUNCTION_NOT_SUPPORTED

#define ERROR_STM_FUNCTION_NOT_SUPPORTED   0x80010016

Definition at line 601 of file StmApi.h.

◆ ERROR_STM_INVALID_PAGECOUNT

#define ERROR_STM_INVALID_PAGECOUNT   0x8001000E

Definition at line 593 of file StmApi.h.

◆ ERROR_STM_INVALID_VMCS_DATABASE

#define ERROR_STM_INVALID_VMCS_DATABASE   0x8001000C

Definition at line 591 of file StmApi.h.

◆ ERROR_STM_LOG_ALLOCATED

#define ERROR_STM_LOG_ALLOCATED   0x8001000F

Definition at line 594 of file StmApi.h.

◆ ERROR_STM_LOG_NOT_ALLOCATED

#define ERROR_STM_LOG_NOT_ALLOCATED   0x80010010

Definition at line 595 of file StmApi.h.

◆ ERROR_STM_LOG_NOT_STARTED

#define ERROR_STM_LOG_NOT_STARTED   0x80010012

Definition at line 597 of file StmApi.h.

◆ ERROR_STM_LOG_NOT_STOPPED

#define ERROR_STM_LOG_NOT_STOPPED   0x80010011

Definition at line 596 of file StmApi.h.

◆ ERROR_STM_MALFORMED_RESOURCE_LIST

#define ERROR_STM_MALFORMED_RESOURCE_LIST   0x8001000D

Definition at line 592 of file StmApi.h.

◆ ERROR_STM_NO_EVENTS_ENABLED

#define ERROR_STM_NO_EVENTS_ENABLED   0x80010014

Definition at line 599 of file StmApi.h.

◆ ERROR_STM_OUT_OF_RESOURCES

#define ERROR_STM_OUT_OF_RESOURCES   0x80010015

Definition at line 600 of file StmApi.h.

◆ ERROR_STM_PAGE_NOT_FOUND

#define ERROR_STM_PAGE_NOT_FOUND   0x80010003

Definition at line 582 of file StmApi.h.

◆ ERROR_STM_PHYSICAL_OVER_4G

#define ERROR_STM_PHYSICAL_OVER_4G   0x80010005

Definition at line 584 of file StmApi.h.

◆ ERROR_STM_RESERVED_BIT_SET

#define ERROR_STM_RESERVED_BIT_SET   0x80010013

Definition at line 598 of file StmApi.h.

◆ ERROR_STM_SECURITY_VIOLATION

#define ERROR_STM_SECURITY_VIOLATION   0x80010001

Definition at line 580 of file StmApi.h.

◆ ERROR_STM_STOPPED

#define ERROR_STM_STOPPED   0x8001000A

Definition at line 589 of file StmApi.h.

◆ ERROR_STM_UNPROTECTABLE

#define ERROR_STM_UNPROTECTABLE   0x80010017

Definition at line 602 of file StmApi.h.

◆ ERROR_STM_UNPROTECTABLE_RESOURCE

#define ERROR_STM_UNPROTECTABLE_RESOURCE   0x80010007

Definition at line 586 of file StmApi.h.

◆ ERROR_STM_UNSPECIFIED

#define ERROR_STM_UNSPECIFIED   0x8001FFFF

Definition at line 604 of file StmApi.h.

◆ ERROR_STM_UNSUPPORTED_MSR_BIT

#define ERROR_STM_UNSUPPORTED_MSR_BIT   0x80010018

Definition at line 603 of file StmApi.h.

◆ ERROR_STM_VIRTUAL_SPACE_TOO_SMALL

#define ERROR_STM_VIRTUAL_SPACE_TOO_SMALL   0x80010006

Definition at line 585 of file StmApi.h.

◆ ERROR_STM_WITHOUT_SMX_UNSUPPORTED

#define ERROR_STM_WITHOUT_SMX_UNSUPPORTED   0x80010009

Definition at line 588 of file StmApi.h.

◆ FOLLOW_MTRR

#define FOLLOW_MTRR   0xFFFFFFFF

Definition at line 298 of file StmApi.h.

◆ IO_RANGE

#define IO_RANGE   2

Definition at line 327 of file StmApi.h.

◆ MACHINE_SPECIFIC_REG

#define MACHINE_SPECIFIC_REG   4

Definition at line 329 of file StmApi.h.

◆ MAX_DESC_TYPE

#define MAX_DESC_TYPE   8

Definition at line 334 of file StmApi.h.

◆ MEM_RANGE

#define MEM_RANGE   1

Definition at line 326 of file StmApi.h.

◆ MMIO_RANGE

#define MMIO_RANGE   3

Definition at line 328 of file StmApi.h.

◆ NEW_LOG

#define NEW_LOG   1

Definition at line 501 of file StmApi.h.

◆ ONE_TO_ONE

#define ONE_TO_ONE   1

Definition at line 321 of file StmApi.h.

◆ PAGE_SIZE

#define PAGE_SIZE   4096

Definition at line 64 of file StmApi.h.

◆ PCI_CFG_RANGE

#define PCI_CFG_RANGE   5

Definition at line 330 of file StmApi.h.

◆ REGISTER_VIOLATION

#define REGISTER_VIOLATION   8

Definition at line 333 of file StmApi.h.

◆ SHA1

#define SHA1   1

Definition at line 55 of file StmApi.h.

◆ SHA256

#define SHA256   2

Definition at line 56 of file StmApi.h.

◆ SMM_PSD_OFFSET

#define SMM_PSD_OFFSET   0xfb00

Definition at line 141 of file StmApi.h.

◆ SMM_SUCCESS

#define SMM_SUCCESS   0x00000000

Definition at line 577 of file StmApi.h.

◆ ST_UC

#define ST_UC   0x00

Definition at line 292 of file StmApi.h.

◆ START_LOG

#define START_LOG   3

Definition at line 503 of file StmApi.h.

◆ STM_API_ADDRESS_LOOKUP

#define STM_API_ADDRESS_LOOKUP   0x00000003

Definition at line 545 of file StmApi.h.

◆ STM_API_GET_BIOS_RESOURCES

#define STM_API_GET_BIOS_RESOURCES   0x00010005

Definition at line 568 of file StmApi.h.

◆ STM_API_INITIALIZE_PROTECTION

#define STM_API_INITIALIZE_PROTECTION   0x00010007

Definition at line 570 of file StmApi.h.

◆ STM_API_MANAGE_EVENT_LOG

#define STM_API_MANAGE_EVENT_LOG   0x00010008

Definition at line 571 of file StmApi.h.

◆ STM_API_MANAGE_VMCS_DATABASE

#define STM_API_MANAGE_VMCS_DATABASE   0x00010006

Definition at line 569 of file StmApi.h.

◆ STM_API_MAP_ADDRESS_RANGE

#define STM_API_MAP_ADDRESS_RANGE   0x00000001

Definition at line 543 of file StmApi.h.

◆ STM_API_PROTECT_RESOURCE

#define STM_API_PROTECT_RESOURCE   0x00010003

Definition at line 566 of file StmApi.h.

◆ STM_API_RETURN_FROM_PROTECTION_EXCEPTION

#define STM_API_RETURN_FROM_PROTECTION_EXCEPTION   0x00000004

Definition at line 546 of file StmApi.h.

◆ STM_API_START

#define STM_API_START   0x00010001

Definition at line 564 of file StmApi.h.

◆ STM_API_STOP

#define STM_API_STOP   0x00010002

Definition at line 565 of file StmApi.h.

◆ STM_API_UNMAP_ADDRESS_RANGE

#define STM_API_UNMAP_ADDRESS_RANGE   0x00000002

Definition at line 544 of file StmApi.h.

◆ STM_API_UNPROTECT_RESOURCE

#define STM_API_UNPROTECT_RESOURCE   0x00010004

Definition at line 567 of file StmApi.h.

◆ STM_CONFIG_SMI_UNBLOCKING_BY_VMX_OFF

#define STM_CONFIG_SMI_UNBLOCKING_BY_VMX_OFF   0x1

Definition at line 698 of file StmApi.h.

◆ STM_CRASH_BIOS_PANIC

#define STM_CRASH_BIOS_PANIC   0xC000E000

Definition at line 624 of file StmApi.h.

◆ STM_CRASH_DOMAIN_DEGRADATION_FAILURE

#define STM_CRASH_DOMAIN_DEGRADATION_FAILURE   0xC000F003

Definition at line 623 of file StmApi.h.

◆ STM_CRASH_PROTECTION_EXCEPTION

#define STM_CRASH_PROTECTION_EXCEPTION   0xC000F001

Definition at line 621 of file StmApi.h.

◆ STM_CRASH_PROTECTION_EXCEPTION_FAILURE

#define STM_CRASH_PROTECTION_EXCEPTION_FAILURE   0xC000F002

Definition at line 622 of file StmApi.h.

◆ STM_FEATURES_IA32E

#define STM_FEATURES_IA32E   0x1

Definition at line 28 of file StmApi.h.

◆ STM_HARDWARE_FIELD_FILL_TO_2K

#define STM_HARDWARE_FIELD_FILL_TO_2K   (2048 - sizeof(uint32_t) * 8)

Definition at line 15 of file StmApi.h.

◆ STM_LOG_ENTRY_SIZE

#define STM_LOG_ENTRY_SIZE   256

Definition at line 697 of file StmApi.h.

◆ STM_RSC_BGI

#define STM_RSC_BGI   0x2

Definition at line 373 of file StmApi.h.

◆ STM_RSC_BGM

#define STM_RSC_BGM   0x4

Definition at line 350 of file StmApi.h.

◆ STM_RSC_MEM_R

#define STM_RSC_MEM_R   0x1

Definition at line 361 of file StmApi.h.

◆ STM_RSC_MEM_W

#define STM_RSC_MEM_W   0x2

Definition at line 362 of file StmApi.h.

◆ STM_RSC_MEM_X

#define STM_RSC_MEM_X   0x4

Definition at line 363 of file StmApi.h.

◆ STM_RSC_MMIO_R

#define STM_RSC_MMIO_R   0x1

Definition at line 384 of file StmApi.h.

◆ STM_RSC_MMIO_W

#define STM_RSC_MMIO_W   0x2

Definition at line 385 of file StmApi.h.

◆ STM_RSC_MMIO_X

#define STM_RSC_MMIO_X   0x4

Definition at line 386 of file StmApi.h.

◆ STM_RSC_MSR

#define STM_RSC_MSR   0x8

Definition at line 398 of file StmApi.h.

◆ STM_RSC_PCI_CFG_R

#define STM_RSC_PCI_CFG_R   0x1

Definition at line 420 of file StmApi.h.

◆ STM_RSC_PCI_CFG_W

#define STM_RSC_PCI_CFG_W   0x2

Definition at line 421 of file StmApi.h.

◆ STM_SMM_REV_ID

#define STM_SMM_REV_ID   0x80010100

Definition at line 209 of file StmApi.h.

◆ STM_SPEC_VERSION_MAJOR

#define STM_SPEC_VERSION_MAJOR   1

Definition at line 10 of file StmApi.h.

◆ STM_SPEC_VERSION_MINOR

#define STM_SPEC_VERSION_MINOR   0

Definition at line 11 of file StmApi.h.

◆ STM_SUCCESS

#define STM_SUCCESS   0x00000000

Definition at line 576 of file StmApi.h.

◆ STM_VMCS_DATABASE_REQUEST_ADD

#define STM_VMCS_DATABASE_REQUEST_ADD   1

Definition at line 469 of file StmApi.h.

◆ STM_VMCS_DATABASE_REQUEST_REMOVE

#define STM_VMCS_DATABASE_REQUEST_REMOVE   0

Definition at line 470 of file StmApi.h.

◆ STOP_LOG

#define STOP_LOG   4

Definition at line 504 of file StmApi.h.

◆ SW_SMI_STM_ADD_RUNTIME_RESOURCES_SUB_FUNC

#define SW_SMI_STM_ADD_RUNTIME_RESOURCES_SUB_FUNC   0

Definition at line 701 of file StmApi.h.

◆ SW_SMI_STM_READ_BIOS_RESOURCES_SUB_FUNC

#define SW_SMI_STM_READ_BIOS_RESOURCES_SUB_FUNC   1

Definition at line 702 of file StmApi.h.

◆ SW_SMI_STM_REPLACE_BIOS_RESOURCES_SUB_FUNC

#define SW_SMI_STM_REPLACE_BIOS_RESOURCES_SUB_FUNC   2

Definition at line 703 of file StmApi.h.

◆ TRAPPED_IO_RANGE

#define TRAPPED_IO_RANGE   6

Definition at line 331 of file StmApi.h.

◆ TXT_PROCESSOR_SMM_DESCRIPTOR_SIGNATURE

#define TXT_PROCESSOR_SMM_DESCRIPTOR_SIGNATURE   "TXTPSSIG"

Definition at line 137 of file StmApi.h.

◆ TXT_PROCESSOR_SMM_DESCRIPTOR_VERSION_MAJOR

#define TXT_PROCESSOR_SMM_DESCRIPTOR_VERSION_MAJOR   1

Definition at line 138 of file StmApi.h.

◆ TXT_PROCESSOR_SMM_DESCRIPTOR_VERSION_MINOR

#define TXT_PROCESSOR_SMM_DESCRIPTOR_VERSION_MINOR   0

Definition at line 139 of file StmApi.h.

◆ UC

#define UC   0x07

Definition at line 297 of file StmApi.h.

◆ VIRTUAL_ADDRESS_SPECIFIED

#define VIRTUAL_ADDRESS_SPECIFIED   3

Definition at line 322 of file StmApi.h.

◆ WB

#define WB   0x06

Definition at line 296 of file StmApi.h.

◆ WC

#define WC   0x01

Definition at line 293 of file StmApi.h.

◆ WP

#define WP   0x05

Definition at line 295 of file StmApi.h.

◆ WT

#define WT   0x04

Definition at line 294 of file StmApi.h.

◆ XSTATE_READONLY

#define XSTATE_READONLY   0x01

Definition at line 488 of file StmApi.h.

◆ XSTATE_READWRITE

#define XSTATE_READWRITE   0x00

Definition at line 487 of file StmApi.h.

◆ XSTATE_SCRUB

#define XSTATE_SCRUB   0x03

Definition at line 489 of file StmApi.h.

Typedef Documentation

◆ STM_SMM_CPU_STATE

◆ STM_STATUS

Definition at line 574 of file StmApi.h.

Enumeration Type Documentation

◆ EVENT_TYPE

enum EVENT_TYPE
Enumerator
evt_log_started 
evt_log_stopped 
evt_log_invalid_parameter_detected 
evt_handled_protection_exception 
evt_bios_access_to_unclaimed_resource 
evt_mle_resource_protection_granted 
evt_mle_resource_protection_denied 
evt_mle_resource_unprotect 
evt_mle_resource_unprotect_error 
evt_mle_domain_type_degraded 
evt_mle_max 
evt_invalid 

Definition at line 507 of file StmApi.h.

◆ STM_REGISTER_VIOLATION_TYPE

Enumerator
stm_register_cr0 
stm_register_cr2 
stm_register_cr3 
stm_register_cr4 
stm_register_cr8 
stm_register_max 

Definition at line 446 of file StmApi.h.

◆ TXT_SMM_PROTECTION_EXCEPTION_TYPE

Enumerator
TxtSmmPageViolation 
TxtSmmMsrViolation 
TxtSmmRegisterViolation 
TxtSmmIoViolation 
TxtSmmPciViolation 

Definition at line 143 of file StmApi.h.