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
|