move files and directories into pcucontrol module
[monitor.git] / cmdamt / RemoteControlSample.cpp
diff --git a/cmdamt/RemoteControlSample.cpp b/cmdamt/RemoteControlSample.cpp
deleted file mode 100644 (file)
index c488b64..0000000
+++ /dev/null
@@ -1,938 +0,0 @@
-//----------------------------------------------------------------------------
-//
-//  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,&parameter) ||
-#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");
-       }
-}
-