1 /******************************************************************************* 2 * Copyright (C) 2004-2008 Intel Corp. All rights reserved. 3 * 4 * Redistribution and use in source and binary forms, with or without 5 * modification, are permitted provided that the following conditions are met: 6 * 7 * - Redistributions of source code must retain the above copyright notice, 8 * this list of conditions and the following disclaimer. 9 * 10 * - Redistributions in binary form must reproduce the above copyright notice, 11 * this list of conditions and the following disclaimer in the documentation 12 * and/or other materials provided with the distribution. 13 * 14 * - Neither the name of Intel Corp. nor the names of its 15 * contributors may be used to endorse or promote products derived from this 16 * software without specific prior written permission. 17 * 18 * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS ``AS IS'' 19 * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE 20 * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE 21 * ARE DISCLAIMED. IN NO EVENT SHALL Intel Corp. OR THE CONTRIBUTORS 22 * BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR 23 * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF 24 * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS 25 * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN 26 * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) 27 * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE 28 * POSSIBILITY OF SUCH DAMAGE. 29 *******************************************************************************/ 30 31 #ifndef __MNG_COMMAND_H__ 32 #define __MNG_COMMAND_H__ 33 34 #include "HECIUnix.h" 35 #include "StatusCodeDefinitions.h" 36 37 #pragma pack(1) 38 39 typedef struct _MNG_REQUEST 40 { 41 UINT8 Cmd; 42 UINT8 ByteCount; 43 UINT8 SubCmd; 44 UINT8 Version; 45 } MNG_REQUEST; 46 47 typedef struct _MNG_GET_ME_INFORMATION_RESPONSE 48 { 49 UINT32 Version; 50 MEFWCAPS_SKU Sku; 51 MEFWCAPS_MANAGEABILITY_SUPP MngMode; 52 } MNG_GET_ME_INFORMATION_RESPONSE; 53 54 #pragma pack(0) 55 56 class MNGCommand 57 { 58 public: 59 MNGCommand(bool verbose = false); 60 ~MNGCommand(); 61 62 HECI_STATUS GetMEInfo(MNG_GET_ME_INFORMATION_RESPONSE &infoMsg); 63 64 HECILinux MNGClient; 65 66 private: 67 HECI_STATUS _call(const unsigned char *command, UINT32 command_size, UINT8 **readBuffer, UINT32 *outBuffSize); 68 69 bool _verbose; 70 71 }; 72 73 const MNG_REQUEST MNG_GET_ME_INFO_HEADER = {0x07, 0x02, 0x01, 0x10}; 74 const UINT32 MNG_GET_ME_INFO_Version = 0x00010000; 75 76 77 #endif //__MNG_COMMAND_H__ 78 79