+++ /dev/null
-//----------------------------------------------------------------------------
-//
-// Copyright (C) Intel Corporation, 2004 - 2006.
-//
-// File: RemoteControlSample.cpp
-//
-// Contents: Sample code for an IntelĀ® AMT Network client.
-//
-// Notes: this file contains routines that call (using SOAP)
-// the RemoteControl functions of the Intel(R) AMT 2.0 as
-// defined in the "Intel(R) AMT Network Design Guide".
-//
-//----------------------------------------------------------------------------
-
-#include "CommonDefinitions.h"
-#include "RemoteControlTypes.h"
-#include "RemoteControlSoapBinding.nsmap"
-
-/*
- * Function prototypes
- */
-void Usage(char *cmd);
-bool GetUserValues(uint8 *&command, uint32 *&ianaOemNumber,
- uint8 *&specialCommand, uint16 *&specialCommandParameter,
- uint16 *&bootOptions, uint16 *&OEMParameters);
-void DisplaySystemCapabilities(uint8 specialCommandsSupported);
-void DisplaySpecialCommand(uint16 specialCommandsSupported);
-void DisplaySystemFirmwareCapabilities(uint32 systemFirmwareCapabilities);
-void DisplayOemDefinedCapabilities(uint32 OemDefinedCapabilities);
-bool ExecuteGetSystemPowerstate(Soap *server, bool verbose = true);
-bool ExecuteGetRemoteControlCapabilities(Soap *server, bool verbose = true);
-bool ExecuteRemoteControl(Soap *server, bool default_val = false);
-bool MainFlow(Soap *server,int option,bool verbose);
-bool ValidateOption(char *option, int *parameter);
-
-/*
- * This is the main entry point
- */
-int main(int argc, char* argv[])
-{
- // Command line parameter
- char *option = NULL;
- // Client certificate's name
- char *certName = NULL;
-#ifndef _WIN32
- // Password for keys file openning
- char *certPass = NULL;
-#else
- // True if an authentication scheme is Kerberos,
- // otherwise the authentication scheme is digest
- bool krb = true;
-#endif
- // Target URL
- char *target = NULL;
- // Target username
- char *username = NULL;
- // Target password
- char *password = NULL;
- // Command line without app name and parameter
- char **commandLine = NULL;
- int commandLineLength = argc;
- int parameter;
- bool verbose = false;
-
-
- if( !GetOption(&commandLineLength,argv,
- MIN_NUM_OF_CL_PARAMETERS,&option,&commandLine) ||
- !ValidateOption(option,¶meter) ||
-#ifndef _WIN32
- !ParseCommandLine(commandLineLength,commandLine,&target,
- &certName,&certPass,&verbose,&username,&password)
-#else
- !ParseCommandLine(commandLineLength,commandLine,&target,
- &certName,NULL,&krb,&verbose,&username,&password)
-#endif
- )
- {
- Usage(argv[0]);
- return 1;
- }
-
- // The last parameter should be true for local application
- // and false for remote application
-#ifndef _WIN32
- Soap server(target,certName,certPass,username,password);
-#else
- Soap server(target,certName,username,password,false,krb);
-#endif
-
- if(MainFlow(&server,parameter,verbose) != true)
- {
- return 1;
- }
- return 0;
-}
-
-/*
- * Validates an option passed in the command line.
- * Arguments:
- * option - command line option
- * parameter - pointer to the variable that will hold
- * type of the action the apllication
- * will perform.
- * Return value:
- * true - on succeed
- * false - on failure (command line option not recognized)
- */
-bool ValidateOption(char *option, int *parameter)
-{
- if(!option)
- {
- return false;
- }
- bool status = true;
- if(!strcmp(option,POWER))
- {
- *parameter = OPT_POWER;
- }
- else if(!strcmp(option,CAPABILITIES))
- {
- *parameter = OPT_CAPABILITIES;
- }
- else if(!strcmp(option,REMOTE))
- {
- *parameter = OPT_REMOTE;
- }
- else if(!strcmp(option,API_TEST))
- {
- *parameter = OPT_API_TEST;
- }
- else if(!strcmp(option,REDUCED_API_TEST))
- {
- *parameter = OPT_REDUCED_API_TEST;
- }
- else
- {
- status = false;
- }
- return status;
-}
-
-/*
- * Function that performs the main flow of Remote Control sample
- * Arguments:
- * soap - pointer to the runtime environment
- * option - variable that holds type of the action the apllication
- * will perform
- * verbose - boolean value for API test
- * Return value:
- * true - on success
- * false - on failure
- */
-bool MainFlow(Soap *server, int option, bool verbose)
-{
- bool status = true;
- switch(option)
- {
- case OPT_POWER:
- status = ExecuteGetSystemPowerstate(server);
- break;
- case OPT_CAPABILITIES:
- status = ExecuteGetRemoteControlCapabilities(server);
- break;
- case OPT_REMOTE:
- status = ExecuteRemoteControl(server);
- break;
- case OPT_API_TEST:
- if((status = ExecuteGetSystemPowerstate(server,verbose)) == false)
- {
- return status;
- }
- if((status = ExecuteGetRemoteControlCapabilities(server,verbose)) == false)
- {
- return status;
- }
- if ((status = ExecuteRemoteControl(server,true)) == false)
- {
- return status;
- }
- break;
- case OPT_REDUCED_API_TEST:
- if((status = ExecuteGetSystemPowerstate(server,verbose)) == false)
- {
- return status;
- }
- if((status = ExecuteGetRemoteControlCapabilities(server,verbose)) == false)
- {
- return status;
- }
- break;
- default:
- status = false;
- }
-
- return status;
-}
-
-/*
- * Prints a usage information for the user.
- */
-void Usage(char *cmd)
-{
- printf("Usage:\n");
-#ifndef _WIN32
- printf("\t %s <opt> [%s] [%s <name> %s <pass>] http[s]:", cmd, VERBOSE, CERT_NAME, CERT_PASS);
-#else
- printf("\t %s <opt> [%s] [%s <username> %s <password>] [%s <name>] http[s]:",
- cmd, VERBOSE, USER, PASS, CERT_NAME);
-#endif
- printf("//<Hostname>:<Port>/<RemoteControlUri> ");
-#ifndef _WIN32
- printf("[%s <username> %s <password>]\n",USER,PASS);
-#endif
- printf("\nWhere <opt> is :\n");
- printf("\t %s : GetSystemPowerstate\n",POWER);
- printf("\t %s : GetRemoteControlCapabilities\n",CAPABILITIES);
- printf("\t %s : RemoteControl\n",REMOTE);
- printf("\t %s : perform API test\n",API_TEST);
- printf("\t %s : perform API test without boot\n",REDUCED_API_TEST);
- printf("\t To run API test in verbose mode include %s option\n", VERBOSE);
- PrintAuthenticationNote();
- printf("\nExample:\n");
- printf("\t %s %s ", cmd, POWER);
- printf("http://hostname:16992/RemoteControlService\n");
-#ifndef _WIN32
- printf("\t %s %s %s MyCert %s Pass https://hostname:16993/RemoteControlService\n",
- cmd, POWER, CERT_NAME, CERT_PASS);
-#else
- printf("\t %s %s %s MyCert https://hostname:16993/RemoteControlService\n",
- cmd, POWER, CERT_NAME);
-#endif
-}
-
-/*
- * Queries (using SOAP) and display the system power state
- * Arguments:
- * server - pointer to the runtime environment
- * url - address of the web service
- * verbose - boolean value for API test
- * Return value:
- * true - on success
- * false - on failure
- */
-bool ExecuteGetSystemPowerstate(Soap* server, bool verbose)
-{
- int res;
- bool status;
-
- server->Init();
-
- // gSOAP structures for handling
- // request and response information
- _rci__GetSystemPowerState request;
- _rci__GetSystemPowerStateResponse response;
-
- FunctionCall("GetSystemPowerState");
- res = soap_call___rci__GetSystemPowerState(server->GetSoap(),
- server->GetIp(),NULL, &request, &response);
-
- if((status =
- CheckReturnStatus(res,
- response.Status,
- "GetSystemPowerState")) == true)
- {
- if(verbose)
- {
- printf("\nSystemPowerstate is: %u\n", response.SystemPowerState);
- }
- else
- {
- PrintSuccess();
- }
- }
-
- return status;
-}
-
-/*
- * Queries (using SOAP) and display the Intel(R) AMT
- * device remote control capabilities
- * Arguments:
- * server - pointer to the runtime environment
- * url - address of the web service
- * verbose - boolean value for API test
- * Return value:
- * true - on success
- * false - on failure
- */
-bool ExecuteGetRemoteControlCapabilities(Soap* server, bool verbose)
-{
- int res;
- bool status;
-
- server->Init();
-
- // gSOAP structures for handling
- // request and response information
- _rci__GetRemoteControlCapabilities request;
- _rci__GetRemoteControlCapabilitiesResponse response;
-
- FunctionCall("GetRemoteControlCapabilities");
- res = soap_call___rci__GetRemoteControlCapabilities(server->GetSoap(),
- server->GetIp(),NULL, &request, &response);
-
- if((status = CheckReturnStatus(res,response.Status,"GetRemoteControlCapabilities")) == true)
- {
- if(verbose)
- {
- printf("\nRemote Control Capabilities\n");
- printf("---------------------------------------\n");
-
- printf("IanaOemNumber = %u\n", response.IanaOemNumber);
-
- DisplayOemDefinedCapabilities(response.OemDefinedCapabilities);
-
- printf("\n");
- DisplaySpecialCommand(response.SpecialCommandsSupported);
-
- printf("\n");
- DisplaySystemCapabilities(response.SystemCapabilitiesSupported);
-
- printf("\n");
- DisplaySystemFirmwareCapabilities(response.SystemFirmwareCapabilities);
-
- printf("\n");
- }
- else
- {
- PrintSuccess();
- }
- }
-
- return status;
-}
-
-/*
- * Controls remotely (using SOAP) the boot and power state of
- * Intel(R) AMT-managed PC.
- * Arguments:
- * server - pointer to the runtime environment
- * url - address of the web service
- * def_values - if false request values from user
- * Return value:
- * true - on success
- * false - on failure
- */
-bool ExecuteRemoteControl(Soap* server,bool def_values)
-{
- int res;
- bool status = true;
-
- server->Init();
-
- // gSOAP structures for handling
- // request and response information
- _rci__RemoteControl request;
- _rci__RemoteControlResponse response;
-
- // example values
- uint8 *command = new uint8(Reset);
- uint32 *ianaOemNumber = new uint32(IntelIanaNumber);
- uint8 *specialCommand = NULL; //none
- uint16 *oemParameter = NULL; //none
- uint16 *bootOptions = NULL; //none
- uint16 *specialCommandParameters = NULL; //none
-
- if(!def_values)
- {
- // To use default values above, comment the following line.
- if(!GetUserValues(command, ianaOemNumber, specialCommand, oemParameter,
- bootOptions, specialCommandParameters))
- {
- status = false;
- }
- }
-
- if(status == true)
- {
- switch(*command)
- {
- case Reset:
- request.Command = rci__RemoteControlCommandType__16;
- break;
- case PowerUp:
- request.Command = rci__RemoteControlCommandType__17;
- break;
- case PowerDown:
- request.Command = rci__RemoteControlCommandType__18;
- break;
- case PowerCycleReset:
- request.Command = rci__RemoteControlCommandType__19;
- break;
- case SetBootOptions:
- request.Command = rci__RemoteControlCommandType__33;
- break;
- default:
- break;
- }
-
- if(specialCommand == NULL)
- {
- request.SpecialCommand = NULL;
- }
- else
- {
- request.SpecialCommand = new rci__SpecialCommandType;
- switch(*specialCommand)
- {
- case NOP:
- *(request.SpecialCommand) = rci__SpecialCommandType__0;
- break;
- case ForcePxeBoot:
- *(request.SpecialCommand) = rci__SpecialCommandType__1;
- break;
- case ForceHardDriveBoot:
- *(request.SpecialCommand) = rci__SpecialCommandType__2;
- break;
- case ForceHardDriveSafeModeBoot:
- *(request.SpecialCommand) = rci__SpecialCommandType__3;
- break;
- case ForceDiagnosticsBoot:
- *(request.SpecialCommand) = rci__SpecialCommandType__4;
- break;
- case ForceCdOrDvdBoot:
- *(request.SpecialCommand) = rci__SpecialCommandType__5;
- break;
- case IntelOemCommand:
- *(request.SpecialCommand) = rci__SpecialCommandType__193;
- break;
- default:
- break;
- }
- }
-
- request.IanaOemNumber = *ianaOemNumber;
- request.BootOptions = bootOptions;
- request.OEMparameters = oemParameter;
- request.SpecialCommandParameter = specialCommandParameters;
-
- FunctionCall("RemoteControl");
- res = soap_call___rci__RemoteControl(server->GetSoap(),
- server->GetIp(),NULL, &request, &response);
-
- if((status = CheckReturnStatus(res,response.Status,"RemoteControl")) == true)
- {
- PrintSuccess();
- }
-
- if(request.SpecialCommand != NULL)
- {
- delete request.SpecialCommand;
- request.SpecialCommand = NULL;
- }
- }
-
- // cleanup heap allocated memory
- if(command != NULL)
- {
- delete command;
- command = NULL;
- }
- if(ianaOemNumber != NULL)
- {
- delete ianaOemNumber;
- ianaOemNumber = NULL;
- }
- if(specialCommand != NULL)
- {
- delete specialCommand;
- specialCommand = NULL;
- }
- if(oemParameter != NULL)
- {
- delete oemParameter;
- oemParameter = NULL;
- }
- if(bootOptions != NULL)
- {
- delete bootOptions;
- bootOptions = NULL;
- }
- if(specialCommandParameters != NULL)
- {
- delete specialCommandParameters;
- specialCommandParameters = NULL;
- }
-
- return status;
-}
-
-/*
- * Get user's settings for the RemoteControl function
- * Arguments & return values:
- * command - specifies the boot or power state operation to be performed
- * ianaOemNumber - specifies an IANA-assigned Enterprise Number
- * specialCommand - specifies an optional modification to the boot behavior
- * OemParameter - specifies IntelĀ® AMT proprietary boot options
- * bootOptions - specifies standard boot options
- * specialCommandParameters - specifies an optional modification to the
- * boot behavior
- * Return value:
- * true - on success
- * false - on failure
- */
-bool GetUserValues(uint8 *&command, uint32 *&ianaOemNumber,
- uint8 *&specialCommand, uint16 *&oemParameter,
- uint16 *&bootOptions, uint16 *&specialCommandParameters)
-{
- uint32 tmp;
-
- printf("Please specify the following parameters\n");
-
- // Get mandatory parameters
-
- // Get Command
- printf("\n\tCommand");
- printf("\n\t=======");
- printf("\nPossible values:");
- printf("\n\t%u (Reset)",Reset);
- printf("\n\t%u (PowerUp)",PowerUp);
- printf("\n\t%u (PowerDown)",PowerDown);
- printf("\n\t%u (PowerCycleReset)",PowerCycleReset);
- printf("\n\t%u (SetBootOptions)\n>",SetBootOptions);
- scanf("%u", &tmp);
-
- // verify command value
- if ( tmp == Reset ||
- tmp == PowerUp ||
- tmp == PowerDown ||
- tmp == PowerCycleReset ||
- tmp == SetBootOptions)
- {
- // sanity check
- if ( command == NULL )
- {
- command = new uint8();
- }
- *command = (uint8)tmp;
- }
- else
- {
- goto ILLEGAL_INPUT;
- }
-
- // If command is Set Boot Options, ianaOemNumber
- // should be IntelIanaNumber.
- if( *command == SetBootOptions )
- {
- // sanity check
- if ( ianaOemNumber == NULL )
- {
- ianaOemNumber = new uint32();
- }
-
- printf("\nSetBootOptions command selected. ");
- printf("Iana OEM Number is IntelIanaNumber (%u)\n",IntelIanaNumber);
-
- *ianaOemNumber = (uint32)IntelIanaNumber;
-
- }
- else
- {
- // Get Iana number
- printf("\n\tIana OEM Number");
- printf("\n\t===============");
- printf("\nPossible values:");
- printf("\n\t%u (IntelIanaNumber)", IntelIanaNumber);
- printf("\n\t%u (ASFIanaNumber)\n>", ASFIanaNumber);
- scanf("%u", &tmp);
-
- // verify ianaOemNumber value
- if ( tmp == IntelIanaNumber ||
- tmp == ASFIanaNumber )
- {
- // sanity check
- if ( ianaOemNumber == NULL )
- {
- ianaOemNumber = new uint32();
- }
- *ianaOemNumber = (uint32)tmp;
- }
- else
- {
- goto ILLEGAL_INPUT;
- }
- }
-
- // if power down, all other parameters should not be sent.
- if ( *command == PowerDown )
- {
- specialCommand = NULL;
- oemParameter = NULL;
- bootOptions = NULL;
- specialCommandParameters = NULL;
- return true;
- }
-
- // Get optional parameters
-
- // Get Special Command
- printf("\n\tSpecial Command");
- printf("\n\t===============");
- printf("\nPossible values:");
-
- printf("\n\t%d (No Special Command)",-1);
- printf("\n\t%u (NOP)",NOP);
- printf("\n\t%u (ForcePxeBoot)",ForcePxeBoot);
- printf("\n\t%u (ForceHardDriveBoot)",ForceHardDriveBoot);
- printf("\n\t%u (ForceHardDriveSafeModeBoot)",ForceHardDriveSafeModeBoot);
- printf("\n\t%u (ForceDiagnosticsBoot)",ForceDiagnosticsBoot);
- printf("\n\t%u (ForceCdOrDvdBoot)",ForceCdOrDvdBoot);
- printf("\n\t%u (IntelOemCommand)\n>",IntelOemCommand);
- scanf("%u", &tmp);
-
- // verify specialCommand value
- if ( tmp == NO_VALUE ||
- tmp == NOP ||
- tmp == ForcePxeBoot ||
- tmp == ForceHardDriveBoot ||
- tmp == ForceHardDriveSafeModeBoot ||
- tmp == ForceDiagnosticsBoot ||
- tmp == ForceCdOrDvdBoot ||
- tmp == IntelOemCommand )
- {
- if ( tmp == NO_VALUE )
- {
- specialCommand = NULL;
- }
- else if(tmp == IntelOemCommand &&
- *ianaOemNumber != IntelIanaNumber)
- {
- printf("Error: Special Command value %d is legal", IntelOemCommand);
- printf(" only for IanaOemNumber value %d", IntelIanaNumber);
- exit(1);
- }
- else
- {
- // sanity check
- if ( specialCommand == NULL )
- {
- specialCommand = new uint8();
- }
- *specialCommand = (uint8)tmp;
- }
- }
- else
- {
- goto ILLEGAL_INPUT;
- }
-
- // Get OEM Parameter
- // if ianaOemNumber is ASFIanaNumber, oemParameters should not be sent .
- if ( *ianaOemNumber != IntelIanaNumber )
- {
- oemParameter = NULL;
- }
- else
- {
- printf("\n\tOEM Parameters");
- printf("\n\t==============");
- printf("\nPossible values:");
- printf("\n\t%d (No OEM Parameters)",-1);
- printf("\n\t%d (Undefined OEM Parameter)",UndefinedOEMParameter);
- printf("\n\t%u (UseSol)\n>",UseSol);
- scanf("%u", &tmp);
- if ( tmp == NO_VALUE )
- {
- oemParameter = NULL;
- }
- else
- {
- // sanity check
- if ( oemParameter == NULL )
- {
- oemParameter = new uint16();
- }
- *oemParameter = (uint16) tmp;
- }
- }
-
- // Get Special Command Parameters
- printf("\n\tSpecial Command Parameters");
- printf("\n\t==========================");
- printf("\nPossible values:");
-
- // Special Command is not equal to 0xC1 (IntelOemCommand)
- if ( specialCommand == NULL ||
- (specialCommand != NULL) && (*specialCommand != IntelOemCommand) )
- {
- printf("\n\tSpecial command not equal to %d",IntelOemCommand);
- printf("\n\tSee ASF specification for the Special Command Parameter legal values");
- printf("\n\n\t%d (No Special Command Parameter)\n>",-1);
- scanf("%u", &tmp);
- }
- // Special Command is 0xC1, hence Special Command Parameter
- // used to augment the Special Command
- else
- {
- printf("\n\t%d (No Special Command Parameter)",-1);
- printf("\n\t%d (Undefined Special Command Parameter)",
- UndefinedSpecialCommandParameter);
- printf("\n\t%u (UseIderFloppy)",UseIderFloppy);
- printf("\n\t%u (ReflashBios)",ReflashBios);
- printf("\n\t%u (BiosSetup)",BiosSetup);
- printf("\n\t%u (BiosPause)",BiosPause);
- printf("\n\t%u (UseIderCD)\n",UseIderCD);
-
- printf("\nYou can choose several options by using bitwise OR operation\n\n>");
- scanf("%u", &tmp);
-
- // verify specialCommandParameters value
- if ( (tmp != NO_VALUE) && (tmp & SpecialCommandParametersReservedBits) )
- {
- goto ILLEGAL_INPUT;
- }
- }
-
- if ( tmp == NO_VALUE )
- {
- specialCommandParameters = NULL;
- }
- else
- {
- // sanity check
- if ( specialCommandParameters == NULL )
- {
- specialCommandParameters = new uint16();
- }
- *specialCommandParameters = (uint16)tmp;
- }
-
-
-
- // Get Boot Options
- printf("\n\tBoot Options");
- printf("\n\t============");
- printf("\nPossible values:");
-
- printf("\n\t%d (No boot options)", -1);
- printf("\n\t%u (LockPowerButton)",LockPowerButton);
- printf("\n\t%u (LockResetButton)",LockResetButton);
- printf("\n\t%u (LockKeyboard)",LockKeyboard);
- printf("\n\t%u (LockSleepButton)",LockSleepButton);
- printf("\n\t%u (UserPasswordBypass)",UserPasswordBypass);
- printf("\n\t%u (ForceProgressEvents)",ForceProgressEvents);
-
- printf("\n\n\tFirmware Verbosity Options:");
- printf( "\n\t---------------------------");
- printf("\n\t%u (FirmwareVerbositySystemDefault)",FirmwareVerbositySystemDefault);
- printf("\n\t%u (FirmwareVerbosityQuiet)",FirmwareVerbosityQuiet);
- printf("\n\t%u (FirmwareVerbosityVerbose)",FirmwareVerbosityVerbose);
- printf("\n\t%u (FirmwareVerbosityScreen)",FirmwareVerbosityScreen);
- printf("\n\n\t%u (ConfigurationDataReset)\n",ConfigurationDataReset);
-
- printf("\nYou can choose several options by using bitwise OR operation\n\n>");
- scanf("%u", &tmp);
-
- // verify bootOptions value
- if ( (tmp != NO_VALUE) && (tmp & BootOptionsReservedBits) )
- {
- goto ILLEGAL_INPUT;
- }
- else
- {
- if ( tmp == NO_VALUE )
- {
- bootOptions = NULL;
- }
- else
- {
- // sanity check
- if ( bootOptions == NULL )
- {
- bootOptions = new uint16();
- }
- *bootOptions = (uint16)tmp;
- }
- }
- return true;
-
- ILLEGAL_INPUT:
- printf("Error: %u is an illegal value. Aborting.\n", tmp);
- return false;
-}
-
-/*
- * Prints system capabilities supported by the Intel(R) AMT device
- * Arguments:
- * systemCapabilitiesSupported - set of flags that indicate the values
- * the Intel(R) AMT device supports in the
- * Command parameter of the RemoteControl method
- */
-void DisplaySystemCapabilities(uint8 systemCapabilitiesSupported)
-{
- printf("\nSystemCapabilitiesSupported = %u", systemCapabilitiesSupported);
-
- if ( systemCapabilitiesSupported & SuppPowerCycleReset )
- {
- printf("\nPowerCycleReset ");
- }
- if ( systemCapabilitiesSupported & SuppPowerDown )
- {
- printf("\nPowerDown ");
- }
- if ( systemCapabilitiesSupported & SuppPowerUp )
- {
- printf("\nPowerUp ");
- }
- if ( systemCapabilitiesSupported & SuppReset )
- {
- printf("\nReset");
- }
-}
-
-/*
- * Prints special commands supported by the Intel(R) AMT device
- * Arguments:
- * specialCommandsSupported - set of flags that indicate the values
- * the Intel(R) AMT device supports in the
- * SpecialCommand parameter of the
- * RemoteControl method
- */
-void DisplaySpecialCommand(uint16 specialCommandsSupported)
-{
- printf("\nSpecialCommandsSupported = %u", specialCommandsSupported);
-
- if ( specialCommandsSupported & SuppForcePXEBoot )
- {
- printf("\nForcePXEBoot ");
- }
- if ( specialCommandsSupported & SuppForceHardDriveBoot )
- {
- printf("\nForceHardDriveBoot ");
- }
- if ( specialCommandsSupported & SuppForceHardDriveSafeModeBoot )
- {
- printf("\nForceHardDriveSafeModeBoot ");
- }
- if ( specialCommandsSupported & SuppForceDiagnosticBoot )
- {
- printf("\nForceDiagnosticBoot ");
- }
- if ( specialCommandsSupported & SuppForceCDorDVDBoot )
- {
- printf("\nForceCDorDVDBoot");
- }
-}
-
-
-/*
- * Prints firmware capabilities supported by the Intel(R) AMT device
- * Arguments:
- * systemCapabilitiesSupported - set of flags that indicate the values
- * the Intel(R) AMT device supports in the
- * BootOptions parameter of the RemoteControl
- * method
- */
-void DisplaySystemFirmwareCapabilities(uint32 systemFirmwareCapabilities)
-{
- printf("\nSystemFirmwareCapabilities = %u", systemFirmwareCapabilities);
-
- if ( systemFirmwareCapabilities & SuppVerbosityScreenBlank )
- {
- printf("\nVerbosityScreenBlank ");
- }
- if ( systemFirmwareCapabilities & SuppPowerButtonLock )
- {
- printf("\nPowerButtonLock ");
- }
- if ( systemFirmwareCapabilities & SuppResetButtonLock )
- {
- printf("\nResetButtonLock ");
- }
- if ( systemFirmwareCapabilities & SuppKeyboardLock )
- {
- printf("\nKeyboardLock ");
- }
- if ( systemFirmwareCapabilities & SuppSleepButtonLock )
- {
- printf("\nSleepButtonLock ");
- }
- if ( systemFirmwareCapabilities & SuppUserPasswordBypass )
- {
- printf("\nUserPasswordBypass ");
- }
- if ( systemFirmwareCapabilities & SuppForcedProgressEvents )
- {
- printf("\nForcedProgressEvents ");
- }
- if ( systemFirmwareCapabilities & SuppVerbosityVerbose )
- {
- printf("\nVerbosityVerbose ");
- }
- if ( systemFirmwareCapabilities & SuppVerbosityQuiet )
- {
- printf("\nVerbosityQuiet ");
- }
- if ( systemFirmwareCapabilities & SuppConfigurationDataReset )
- {
- printf("\nConfigurationDataReset");
- }
-}
-
-
-/*
- * Prints OEM defined capabilities supported by the Intel(R) AMT device
- * Arguments:
- * systemCapabilitiesSupported - set of flags that indicate the values
- * the Intel(R) AMT device supports in the
- * OemParameters parameter of the RemoteControl
- * method
- */
-void DisplayOemDefinedCapabilities(uint32 oemDefinedCapabilities)
-{
- printf("\nOemDefinedCapabilities = %u", oemDefinedCapabilities);
-
- if ( oemDefinedCapabilities & SuppIDER )
- {
- printf("\nIDER");
- }
- if ( oemDefinedCapabilities & SuppSOL )
- {
- printf("\nSOL");
- }
- if ( oemDefinedCapabilities & SuppBiosReflash )
- {
- printf("\nBiosReflash");
- }
- if ( oemDefinedCapabilities & SuppBiosSetup )
- {
- printf("\nBiosSetup");
- }
- if ( oemDefinedCapabilities & SuppBiosPause )
- {
- printf("\nBiosPause");
- }
-}
-