116 lines
3.5 KiB
C++
116 lines
3.5 KiB
C++
//----------------------------------------------------------------------------
|
|
//
|
|
// Copyright (C) 2022 Intel Corporation
|
|
//
|
|
// File: WatchdogCommand.h
|
|
//
|
|
// Contents: header file of WatchdogCommand class
|
|
//
|
|
//----------------------------------------------------------------------------
|
|
#ifndef __WATCHDOG_COMMAND_H__
|
|
#define __WATCHDOG_COMMAND_H__
|
|
#include "HECIWin.h"
|
|
#include "HostBasedSetupTypedFlow.h"
|
|
#include "HostBasedSetupUntypedFlow.h"
|
|
|
|
/*
|
|
* Type definitions
|
|
*/
|
|
typedef unsigned char UINT8;
|
|
typedef unsigned short UINT16;
|
|
typedef unsigned int UINT32;
|
|
typedef unsigned long ULONG;
|
|
typedef UINT32 AMT_BOOLEAN;
|
|
typedef UINT32 AMT_STATUS;
|
|
|
|
#pragma pack (1)
|
|
|
|
typedef struct _STATE_INDEPENDENCE_IS_CHANGE_ENABLED_RESPONSE
|
|
{
|
|
UINT8 Enabled : 1;
|
|
UINT8 CurrentOperationalState : 1;
|
|
UINT8 Reserved : 4;
|
|
UINT8 TlsOnLocalPorts : 1;
|
|
UINT8 IsNewInterfaceVersion : 1;
|
|
} STATE_INDEPENDENCE_IS_CHANGE_ENABLED_RESPONSE;
|
|
|
|
typedef struct _STATE_INDEPENDENCE_IS_CHANGE_TO_AMT_ENABLED_RESPONSE
|
|
{
|
|
STATE_INDEPENDENCE_IS_CHANGE_ENABLED_RESPONSE ChangeEnabledResponse;
|
|
} STATE_INDEPENDENCE_IS_CHANGE_TO_AMT_ENABLED_RESPONSE;
|
|
|
|
typedef struct _STATE_INDEPENDENCE_IS_CHANGE_TO_AMT_ENABLED_REQUEST
|
|
{
|
|
UINT8 Command;
|
|
UINT8 ByteCount;
|
|
UINT8 SubCommand;
|
|
UINT8 VersionNumber;
|
|
} STATE_INDEPENDENCE_IS_CHANGE_TO_AMT_ENABLED_REQUEST;
|
|
|
|
typedef struct _MHC_SET_AMT_OPERATIONAL_STATE_RESPONSE
|
|
{
|
|
UINT8 Command;
|
|
UINT8 ByteCount;
|
|
UINT8 SubCommand;
|
|
UINT8 VersionNumber;
|
|
UINT32 Status;
|
|
} MHC_SET_AMT_OPERATIONAL_STATE_RESPONSE;
|
|
|
|
|
|
typedef struct _MHC_SET_AMT_OPERATIONAL_STATE_REQUEST
|
|
{
|
|
UINT8 Command;
|
|
UINT8 ByteCount;
|
|
UINT8 SubCommand;
|
|
UINT8 VersionNumber;
|
|
UINT8 Enabled;
|
|
} MHC_SET_AMT_OPERATIONAL_STATE_REQUEST;
|
|
|
|
#pragma pack ( )
|
|
|
|
class WatchdogCommand
|
|
{
|
|
public:
|
|
WatchdogCommand(bool verbose = false);
|
|
~WatchdogCommand();
|
|
|
|
AMT_STATUS IsAMTEnablingMechanismSupported(STATE_INDEPENDENCE_IS_CHANGE_ENABLED_RESPONSE* changeEnabledResponse);
|
|
AMT_STATUS SetAMTOperationalState(UINT32* operationalStateResponseStatus);
|
|
|
|
HECIWin WatchdogClient;
|
|
|
|
private:
|
|
STATE_INDEPENDENCE_IS_CHANGE_ENABLED_RESPONSE parseStateIndependenceIsChangeEnabledResponse(UINT8 resBuffer);
|
|
};
|
|
|
|
#endif
|
|
|
|
const UINT8 STATE_INDEPENDENCE_IS_CHANGE_TO_AMT_ENABLED_COMMAND = 0x05;
|
|
const UINT8 STATE_INDEPENDENCE_IS_CHANGE_TO_AMT_ENABLED_BYTE_COUNT = 0x02;
|
|
const UINT8 STATE_INDEPENDENCE_IS_CHANGE_TO_AMT_ENABLED_SUB_COMMAND = 0x51;
|
|
const UINT8 STATE_INDEPENDENCE_IS_CHANGE_TO_AMT_ENABLED_VERSION_NUMBER = 0x10;
|
|
|
|
|
|
const STATE_INDEPENDENCE_IS_CHANGE_TO_AMT_ENABLED_REQUEST GET_STATE_INDEPENDENCE_IS_CHANGE_TO_AMT_ENABLED_REQUEST =
|
|
{
|
|
STATE_INDEPENDENCE_IS_CHANGE_TO_AMT_ENABLED_COMMAND,
|
|
STATE_INDEPENDENCE_IS_CHANGE_TO_AMT_ENABLED_BYTE_COUNT,
|
|
STATE_INDEPENDENCE_IS_CHANGE_TO_AMT_ENABLED_SUB_COMMAND,
|
|
STATE_INDEPENDENCE_IS_CHANGE_TO_AMT_ENABLED_VERSION_NUMBER
|
|
};
|
|
|
|
|
|
const UINT8 SET_AMT_OPERATINAL_STATE_COMMAND = 0x05;
|
|
const UINT8 SET_AMT_OPERATIONAL_STATE_BYTE_COUNT = 0x03;
|
|
const UINT8 SET_AMT_OPERATINAL_STATE_SUB_COMMAND = 0x53;
|
|
const UINT8 SET_AMT_OPERATINAL_STATE_VERSION_NUMBER = 0x10;
|
|
const UINT8 SET_AMT_OPERATINAL_STATE_ENABLED = 1;
|
|
|
|
const MHC_SET_AMT_OPERATIONAL_STATE_REQUEST GET_SET_AMT_OPERATIONAL_STATE_REQUEST_REQUEST =
|
|
{
|
|
SET_AMT_OPERATINAL_STATE_COMMAND,
|
|
SET_AMT_OPERATIONAL_STATE_BYTE_COUNT,
|
|
SET_AMT_OPERATINAL_STATE_SUB_COMMAND,
|
|
SET_AMT_OPERATINAL_STATE_VERSION_NUMBER,
|
|
SET_AMT_OPERATINAL_STATE_ENABLED
|
|
}; |