199 lines
		
	
	
		
			6.9 KiB
		
	
	
	
		
			C
		
	
	
	
	
	
			
		
		
	
	
			199 lines
		
	
	
		
			6.9 KiB
		
	
	
	
		
			C
		
	
	
	
	
	
| /*********************************************************************
 | |
| * Copyright (c) Intel Corporation 2011 - 2020
 | |
| * SPDX-License-Identifier: Apache-2.0
 | |
| **********************************************************************/
 | |
| 
 | |
| #ifndef _MINCORE
 | |
| 
 | |
| #ifndef __HECI_INTRFACE_H__
 | |
| #define __HECI_INTRFACE_H__
 | |
| 
 | |
| typedef unsigned char   UINT8;
 | |
| typedef unsigned short  UINT16;
 | |
| typedef unsigned int    UINT32;
 | |
| typedef char            CHAR;
 | |
| typedef unsigned long   ULONG;
 | |
| typedef UINT32          AMT_STATUS;
 | |
| typedef UINT32          AMT_BOOLEAN;
 | |
| 
 | |
| typedef enum _HECI_STATUS {
 | |
| 	HECI_STATUS_OK                    = 0x0,
 | |
| 	HECI_STATUS_GENERAL_ERROR         = 0x2000,
 | |
| 	HECI_STATUS_LOCATE_DEVICE_ERROR,
 | |
| 	HECI_STATUS_MEMORY_ACCESS_ERROR,
 | |
| 	HECI_STATUS_WRITE_REGISTER_ERROR,
 | |
| 	HECI_STATUS_MEMORY_ALLOCATION_ERROR,
 | |
| 	HECI_STATUS_BUFFER_OVEREFLOW_ERROR,
 | |
| 	HECI_STATUS_NOT_ENOUGH_MEMORY,
 | |
| 	HECI_STATUS_MSG_TRANSMISSION_ERROR,
 | |
| 	HECI_STATUS_VERSION_MISMATCH,
 | |
| 	HECI_STATUS_UNEXPECTED_INTERRUPT_REASON,
 | |
| 	HECI_STATUS_TIMEOUT_ERROR,
 | |
| 	HECI_STATUS_UNEXPECTED_RESPONSE,
 | |
| 	HECI_STATUS_UNKNOWN_MESSAGE,
 | |
| 	HECI_STATUS_CANNOT_FOUND_HOST_CLIENT,
 | |
| 	HECI_STATUS_CANNOT_FOUND_ME_CLIENT,
 | |
| 	HECI_STATUS_CLIENT_ALREADY_CONNECTED,
 | |
| 	HECI_STATUS_NO_FREE_CONNECTION,
 | |
| 	HECI_STATUS_ILLEGAL_PARAMETER,
 | |
| 	HECI_STATUS_FLOW_CONTROL_ERROR,
 | |
| 	HECI_STATUS_NO_MESSAGE,
 | |
| 	HECI_STATUS_BUFFER_TOO_LARGE,
 | |
| 	HECI_STATUS_BUFFER_TOO_SMALL,
 | |
| 	HECI_STATUS_BUFFER_NOT_EMPTY,
 | |
| 	NUM_OF_HECI_STATUSES
 | |
| } HECI_STATUS;
 | |
| 
 | |
| #ifdef WIN32
 | |
| 	// Win32 code
 | |
| 
 | |
| 	#define AMT_LOCAL_AGENT_STATUS_SUCCESS  0
 | |
| 	#define USAGE                           1
 | |
| 	#define ERROR_MESSAGE                   2
 | |
| 	#define VERSION_MESSAGE                 3
 | |
| 	#define HECI_ERROR_MESSAGE              4
 | |
| 	#define UNKNOWN                         5
 | |
| 	#define HECI_CONNECT_TO_FWU_CLIENT_FAILURE 6
 | |
| 	#define WRITE_FILE_TIME_OUT             7
 | |
| 	#define ME_FW_INFO                      8
 | |
| 	#define ME_MODE                         9
 | |
| 	#define IOCTL_COMMAND                   10
 | |
| 	#define WRITE_FILE                      11
 | |
| 	#define READ_FILE                       12
 | |
| 	#define GET_CLASS_DEVS                  13
 | |
| 	#define GET_INTERFACE_DETAIL            14
 | |
| 	#define ICH_VERSION                     15
 | |
| 	#define FIND_HECI_FAILURE               16
 | |
| 	#define CREATE_HECI_FILE                17
 | |
| 	#define CREATE_HECI_FILE_FAILURE        17
 | |
| 	#define GET_HECI_DRIVER_VERSION_FAILURE 18
 | |
| 	#define LA_STATUS_INTERNAL_ERROR        19
 | |
| 	#define HECI_CONNECT_TO_PTHI_CLIENT_FAILURE 20
 | |
| 	#define LA_HECI_ERROR                   21
 | |
| 	#define ALLOCATE_MEMORY_ERROR           22
 | |
| 	#define LA_HECI_NOT_INSTALLED_ERROR     23
 | |
| 	#define FW_BUFFER_IS_TO_SMALL           24
 | |
| 	#define SEND_DATA_TO_FW_FAILURE         25
 | |
| 	#define RECEIVE_DATA_FROM_FW_FAILURE    26
 | |
| 	#define GET_INFO_FROM_HECI_FAILURE      27
 | |
| 	#define MCH_VERSION                     28
 | |
| 	#define OEM_VENDOR                      29
 | |
| 	#define HECI_DRIVER_VERSION             30
 | |
| 	#define CODE_MAJOR_VERSION              31
 | |
| 	#define CODE_MINOR_VERSION              32
 | |
| 	#define CODE_HOTFIX_VERSION             33
 | |
| 	#define CODE_BUID_VERSION               34
 | |
| 	#define BIOS_VERSION                    35
 | |
| 	#define AMT_CODE_VERSION                36
 | |
| 	#define AMT_MODE                        37
 | |
| 	#define AMT_MODE_1                      38
 | |
| 	#define IDS_STRING39                    39
 | |
| 	#define AMT_MODE_2                      39
 | |
| 	#define PROVISIONING_STATE              40
 | |
| 	#define STATE_PRE                       41
 | |
| 	#define STATE_IN                        42
 | |
| 	#define STATE_POST                      43
 | |
| 	#define IDS_STRING44                    44
 | |
| 	#define PARSE_KEYWORD_DISCOVERY_TEST    44
 | |
| 	#define DISCOVERY_PASS                  45
 | |
| 	#define IDS_STRING46                    46
 | |
| 	#define DISCOVERY_FAILED                46
 | |
| 	#define IDS_STRING47                    47
 | |
| 	#define PARSE_KEYWORD_ACTIVATE          47
 | |
| 	#define PARSE_KEYWORD_OTP               48
 | |
| 	#define PARSE_KEYWORD_DNS               49
 | |
| 	#define PARSE_KEYWORD_VERBOSE           50
 | |
| 	#define INVALID_PARAM_INPUT             51
 | |
| 	#define USAGE_LOCAL_AGENT               52
 | |
| 	#define USAGE_OPTIONS                   53
 | |
| 	#define USAGE_OPTIONS_OTP               54
 | |
| 	#define USAGE_OPTIONS_DNS               55
 | |
| 	#define USAGE_OPTIONS_DISCOVERY         56
 | |
| 	#define USAGE_OPTIONS_ACTIVATE          57
 | |
| 	#define USAGE_OPTIONS_VERBOSE           58
 | |
| 	#define WORD_ZTC                        59
 | |
| 	#define WORD_ENABLED                    60
 | |
| 	#define WORD_DISABLED                   61
 | |
| 	#define WORD_PROVISIONING_TLS_MODE      62
 | |
| 	#define WORD_PKI                        63
 | |
| 	#define WORD_PSK                        64
 | |
| 	#define WORD_RNG_SEED_STATUS            65
 | |
| 	#define WORD_EXIST                      66
 | |
| 	#define WORD_IN_PROGRESS                67
 | |
| 	#define WORD_NOT_EXIST                  68
 | |
| 	#define WORD_AMT_CONFIG_ACTIVATE        69
 | |
| 	#define WORD_SUCCESS                    70
 | |
| 	#define IDS_STRING71                    71
 | |
| 	#define WORD_FAILURE                    71
 | |
| 	#define WORD_NOT_READY                  72
 | |
| 	#define IDS_STRING73                    73
 | |
| 	#define HASH_ENTRY                      73
 | |
| 	#define HECI_CONNECT_TO_WD_CLIENT_FAILURE 74
 | |
| 	#define CHANGE_TO_AMT_FAILURE           75
 | |
| 	#define IDS_STRING76                    76
 | |
| 	#define WORD_CHANGE_TO_AMT              76
 | |
| 	#define FOUND                           77
 | |
| 	#define CERT_HASHES_IN_FW               78
 | |
| 	#define NO_HANDLES_FOUND                79
 | |
| 	#define CERT_HASH                       80
 | |
| 	#define FRIENDLY_NAME                   81
 | |
| 
 | |
| 	#define FILE_DEVICE_HECI  0x8000
 | |
| 	#define HECI_IOCTL(index) CTL_CODE(FILE_DEVICE_HECI, index, METHOD_BUFFERED, FILE_READ_DATA)
 | |
| 	#define IOCTL_HECI_GET_VERSION CTL_CODE(FILE_DEVICE_HECI, 0x800, METHOD_BUFFERED, FILE_READ_ACCESS|FILE_WRITE_ACCESS)
 | |
| 	#define IOCTL_HECI_CONNECT_CLIENT CTL_CODE(FILE_DEVICE_HECI, 0x801, METHOD_BUFFERED, FILE_READ_ACCESS|FILE_WRITE_ACCESS)
 | |
| 	#define IOCTL_HECI_WD CTL_CODE(FILE_DEVICE_HECI, 0x802, METHOD_BUFFERED, FILE_READ_ACCESS|FILE_WRITE_ACCESS)
 | |
| #endif
 | |
| 
 | |
| #pragma pack(1)
 | |
| 
 | |
| typedef struct _HECI_VERSION {
 | |
| 	UINT8 major;
 | |
| 	UINT8 minor;
 | |
| 	UINT8 hotfix;
 | |
| 	UINT16 build;
 | |
| } HECI_VERSION;
 | |
| 
 | |
| typedef struct _HECI_CLIENT {
 | |
| 	UINT32  MaxMessageLength;
 | |
| 	UINT8 ProtocolVersion;
 | |
| } HECI_CLIENT;
 | |
| 
 | |
| typedef union _MEFWCAPS_SKU
 | |
| {
 | |
| 	UINT32   Data;
 | |
| 	struct {
 | |
| 		UINT32   Reserved    :1; //Legacy
 | |
| 		UINT32   Qst         :1; //QST
 | |
| 		UINT32   Asf         :1; //ASF2
 | |
| 		UINT32   Amt         :1; //AMT Professional
 | |
| 		UINT32   AmtFund     :1; //AMT Fundamental
 | |
| 		UINT32   Tpm         :1; //TPM
 | |
| 		UINT32   Dt          :1;
 | |
| 		UINT32   Fps         :1; //Fingerprint Sensor
 | |
| 		UINT32   HomeIT      :1; //Home IT
 | |
| 		UINT32   Mctp        :1; //MCTP
 | |
| 		UINT32   WoX         :1;
 | |
| 		UINT32   PmcPatch    :1; //PMC Patch
 | |
| 		UINT32   Ve          :1; //VE
 | |
| 		UINT32   Tdt         :1; //Theft Deterrent Technology
 | |
| 		UINT32   Corp        :1; //Corporate
 | |
| 		UINT32   Reserved2   :17;
 | |
| 	} Fields;
 | |
| } MEFWCAPS_SKU;
 | |
| 
 | |
| typedef enum _MEFWCAPS_MANAGEABILITY_SUPP
 | |
| {
 | |
| 	MEFWCAPS_MANAGEABILITY_SUPP_NONE = 0,
 | |
| 	MEFWCAPS_MANAGEABILITY_SUPP_AMT,
 | |
| 	MEFWCAPS_MANAGEABILITY_SUPP_ASF,
 | |
| 	MEFWCAPS_MANAGEABILITY_SUPP_CP
 | |
| } MEFWCAPS_MANAGEABILITY_SUPP;
 | |
| 
 | |
| 
 | |
| #pragma pack()
 | |
| 
 | |
| #endif // __HECI_INTRFACE_H__
 | |
| 
 | |
| #endif
 |