/***************************************************************** ***************************************************************** *** ** *** (C)Copyright 2005-2006, American Megatrends Inc. ** *** ** *** All Rights Reserved. ** *** ** *** 6145-F, Northbelt Parkway, Norcross, ** *** ** *** Georgia - 30071, USA. Phone-(770)-246-8600. ** *** ** ***************************************************************** ***************************************************************** ****************************************************************** * * PDKCmds.c * Hooks that are invoked at different points of the Firmware * execution. * * Author: Govind Kothandapani ******************************************************************/ #include "PDKCmds.h" #include "OemSMMCmds.h" #include "com_IPMIDefs.h" #include "Storlead.h" /*NetFn -Application OEM Command Handler to override generic IPMI cmd Commands can be added to the Handler as explained below { CMD_GET_DEV_ID, PRIV_USER, GETDEV_ID, 0x00, 0xAAAA }, where CMD_GET_DEV_ID - Command no. PRIV_USER - Privilege level like administrator,user GETDEV_ID - Function for the command to override 0x00 - Request length for the command 0xAAAA - Firewall settings GETDEV_ID function definition can be as shown below int GETDEV_ID (_NEAR_ INT8U* pReq, INT8U ReqLen, _NEAR_ INT8U* pRes) { *pRes= CC_NORMAL; return sizeof (*pRes); } */ // const CmdHndlrMap_T g_Oem_App_CmdHndlr [] = // { // { 0x00, 0x00, 0x00, 0x00, 0x0000 } // }; // /*Netfn - Chasiss OEM Command Handler to override generic IPMI cmd */ // const CmdHndlrMap_T g_Oem_Chassis_CmdHndlr [] = // { // { 0x00, 0x00, 0x00, 0x00, 0x0000 } // }; // /*Netfn - Bridging OEM Command Handler to override generic IPMI cmd */ // const CmdHndlrMap_T g_Oem_Bridge_CmdHndlr [] = // { // { 0x00, 0x00, 0x00, 0x00, 0x0000 } // }; // /*Netfn - Sensor OEM Command Handler to override generic IPMI cmd */ // const CmdHndlrMap_T g_Oem_SensorEvent_CmdHndlr [] = // { // { 0x00, 0x00, 0x00, 0x00, 0x0000 } // }; // /*Netfn - Storage OEM Command Handler to override generic IPMI cmd */ // const CmdHndlrMap_T g_Oem_Storage_CmdHndlr [] = // { // { 0x00, 0x00, 0x00, 0x00, 0x0000 } // }; // /*Netfn - Transport OEM Command Handler to override generic IPMI cmd */ // const CmdHndlrMap_T g_Oem_Config_CmdHndlr [] = // { // { 0x00, 0x00, 0x00, 0x00, 0x0000 } // }; /*Netfn - OEM cmd */ const CmdHndlrMap_T g_Oem_CmdHndlr [] = //jimbo add { { CMD_EXAMPLE_0h, PRIV_USER, SMMExample_0h, 0xff, 0xAAAA, 0xFFFF }, { CMD_EXAMPLE_1h, PRIV_USER, SMMExample_1h, 0xff, 0xAAAA, 0xFFFF }, { CMD_EXAMPLE_2h, PRIV_USER, SMMExample_2h, 0xff, 0xAAAA, 0xFFFF }, { CMD_EXAMPLE_3h, PRIV_USER, SMMExample_3h, 0xff, 0xAAAA, 0xFFFF }, { CMD_EXAMPLE_4h, PRIV_USER, SMMExample_4h, 0xff, 0xAAAA, 0xFFFF }, { CMD_EXAMPLE_5h, PRIV_USER, SMMExample_5h, 0xff, 0xAAAA, 0xFFFF }, { CMD_EXAMPLE_6h, PRIV_USER, SMMExample_6h, 0xff, 0xAAAA, 0xFFFF }, { CMD_EXAMPLE_7h, PRIV_USER, SMMExample_7h, 0xff, 0xAAAA, 0xFFFF }, { CMD_EXAMPLE_8h, PRIV_USER, SMMExample_8h, 0xff, 0xAAAA, 0xFFFF }, { CMD_EXAMPLE_9h, PRIV_USER, SMMExample_9h, 0xff, 0xAAAA, 0xFFFF }, { CMD_EXAMPLE_ah, PRIV_USER, SMMExample_ah, 0xff, 0xAAAA, 0xFFFF }, { CMD_EXAMPLE_bh, PRIV_USER, SMMExample_bh, 0xff, 0xAAAA, 0xFFFF }, { CMD_EXAMPLE_ch, PRIV_USER, SMMExample_ch, 0xff, 0xAAAA, 0xFFFF }, { CMD_EXAMPLE_dh, PRIV_USER, SMMExample_dh, 0xff, 0xAAAA, 0xFFFF }, { CMD_EXAMPLE_eh, PRIV_USER, SMMExample_eh, 0xff, 0xAAAA, 0xFFFF }, { CMD_EXAMPLE_fh, PRIV_USER, SMMExample_fh, 0xff, 0xAAAA, 0xFFFF }, { CMD_EXAMPLE_10h, PRIV_USER, SMMExample_10h, 0xff, 0xAAAA, 0xFFFF }, { CMD_EXAMPLE_11h, PRIV_USER, SMMExample_11h, 0xff, 0xAAAA, 0xFFFF }, { CMD_EXAMPLE_12h, PRIV_USER, SMMExample_12h, 0xff, 0xAAAA, 0xFFFF }, { CMD_EXAMPLE_13h, PRIV_USER, SMMExample_13h, 0xff, 0xAAAA, 0xFFFF }, { CMD_EXAMPLE_14h, PRIV_USER, SMMExample_14h, 0xff, 0xAAAA, 0xFFFF }, { CMD_EXAMPLE_15h, PRIV_USER, SMMExample_15h, 0xff, 0xAAAA, 0xFFFF }, { CMD_EXAMPLE_16h, PRIV_USER, SMMExample_16h, 0xff, 0xAAAA, 0xFFFF }, { CMD_EXAMPLE_17h, PRIV_USER, SMMExample_17h, 0xff, 0xAAAA, 0xFFFF }, { CMD_EXAMPLE_18h, PRIV_USER, SMMExample_18h, 0xff, 0xAAAA, 0xFFFF }, { CMD_EXAMPLE_19h, PRIV_USER, SMMExample_19h, 0xff, 0xAAAA, 0xFFFF }, { CMD_EXAMPLE_20h, PRIV_USER, SMMExample_20h, 0xff, 0xAAAA, 0xFFFF }, { CMD_EXAMPLE_21h, PRIV_USER, SMMExample_21h, 0xff, 0xAAAA, 0xFFFF }, { CMD_EXAMPLE_22h, PRIV_USER, SMMExample_22h, 0xff, 0xAAAA, 0xFFFF }, { CMD_EXAMPLE_23h, PRIV_USER, SMMExample_23h, 0xff, 0xAAAA, 0xFFFF }, { CMD_EXAMPLE_24h, PRIV_USER, SMMExample_24h, 0xff, 0xAAAA, 0xFFFF }, { CMD_EXAMPLE_25h, PRIV_USER, SMMExample_25h, 0xff, 0xAAAA, 0xFFFF }, { CMD_EXAMPLE_26h, PRIV_USER, SMMExample_26h, 0xff, 0xAAAA, 0xFFFF }, { CMD_EXAMPLE_27h, PRIV_USER, SMMExample_27h, 0xff, 0xAAAA, 0xFFFF }, { CMD_EXAMPLE_28h, PRIV_USER, SMMExample_28h, 0xff, 0xAAAA, 0xFFFF }, { CMD_EXAMPLE_29h, PRIV_USER, SMMExample_29h, 0xff, 0xAAAA, 0xFFFF }, { CMD_EXAMPLE_2ah, PRIV_USER, SMMExample_2ah, 0xff, 0xAAAA, 0xFFFF }, { CMD_EXAMPLE_2bh, PRIV_USER, SMMExample_2bh, 0xff, 0xAAAA, 0xFFFF }, { CMD_EXAMPLE_2ch, PRIV_USER, SMMExample_2ch, 0xff, 0xAAAA, 0xFFFF }, { CMD_EXAMPLE_2dh, PRIV_USER, SMMExample_2dh, 0xff, 0xAAAA, 0xFFFF }, { CMD_EXAMPLE_2eh, PRIV_USER, SMMExample_2eh, 0xff, 0xAAAA, 0xFFFF }, { CMD_EXAMPLE_2fh, PRIV_USER, SMMExample_2fh, 0xff, 0xAAAA, 0xFFFF }, { CMD_EXAMPLE_30h, PRIV_USER, SMMExample_30h, 0xff, 0xAAAA, 0xFFFF }, { CMD_EXAMPLE_31h, PRIV_USER, SMMExample_31h, 0xff, 0xAAAA, 0xFFFF }, { CMD_EXAMPLE_32h, PRIV_USER, SMMExample_32h, 0xff, 0xAAAA, 0xFFFF }, { CMD_EXAMPLE_33h, PRIV_USER, SMMExample_33h, 0xff, 0xAAAA, 0xFFFF }, { CMD_EXAMPLE_34h, PRIV_USER, SMMExample_34h, 0xff, 0xAAAA, 0xFFFF }, { CMD_EXAMPLE_35h, PRIV_USER, SMMExample_35h, 0xff, 0xAAAA, 0xFFFF }, { CMD_EXAMPLE_36h, PRIV_USER, SMMExample_36h, 0xff, 0xAAAA, 0xFFFF }, { CMD_EXAMPLE_37h, PRIV_USER, SMMExample_37h, 0xff, 0xAAAA, 0xFFFF }, { CMD_EXAMPLE_38h, PRIV_USER, SMMExample_38h, 0xff, 0xAAAA, 0xFFFF }, { CMD_EXAMPLE_39h, PRIV_USER, SMMExample_39h, 0xff, 0xAAAA, 0xFFFF }, { CMD_EXAMPLE_3ah, PRIV_USER, SMMExample_3ah, 0xff, 0xAAAA, 0xFFFF }, { CMD_EXAMPLE_3bh, PRIV_USER, SMMExample_3bh, 0xff, 0xAAAA, 0xFFFF }, { CMD_EXAMPLE_3ch, PRIV_USER, SMMExample_3ch, 0xff, 0xAAAA, 0xFFFF }, { CMD_EXAMPLE_3dh, PRIV_USER, SMMExample_3dh, 0xff, 0xAAAA, 0xFFFF }, { CMD_EXAMPLE_3eh, PRIV_USER, SMMExample_3eh, 0xff, 0xAAAA, 0xFFFF }, { CMD_EXAMPLE_3fh, PRIV_USER, SMMExample_3fh, 0xff, 0xAAAA, 0xFFFF }, { CMD_EXAMPLE_40h, PRIV_USER, SMMExample_40h, 0xff, 0xAAAA, 0xFFFF }, { CMD_EXAMPLE_41h, PRIV_USER, SMMExample_41h, 0xff, 0xAAAA, 0xFFFF }, { CMD_EXAMPLE_42h, PRIV_USER, SMMExample_42h, 0xff, 0xAAAA, 0xFFFF }, { CMD_EXAMPLE_43h, PRIV_USER, SMMExample_43h, 0xff, 0xAAAA, 0xFFFF }, { CMD_EXAMPLE_44h, PRIV_USER, SMMExample_44h, 0xff, 0xAAAA, 0xFFFF }, { CMD_EXAMPLE_45h, PRIV_USER, SMMExample_45h, 0xff, 0xAAAA, 0xFFFF }, { CMD_EXAMPLE_46h, PRIV_USER, SMMExample_46h, 0xff, 0xAAAA, 0xFFFF }, { CMD_EXAMPLE_47h, PRIV_USER, SMMExample_47h, 0xff, 0xAAAA, 0xFFFF }, { CMD_EXAMPLE_48h, PRIV_USER, SMMExample_48h, 0xff, 0xAAAA, 0xFFFF }, { CMD_EXAMPLE_49h, PRIV_USER, SMMExample_49h, 0xff, 0xAAAA, 0xFFFF }, { CMD_EXAMPLE_4ah, PRIV_USER, SMMExample_4ah, 0xff, 0xAAAA, 0xFFFF }, { CMD_EXAMPLE_4bh, PRIV_USER, SMMExample_4bh, 0xff, 0xAAAA, 0xFFFF }, { CMD_EXAMPLE_4ch, PRIV_USER, SMMExample_4ch, 0xff, 0xAAAA, 0xFFFF }, { CMD_EXAMPLE_4dh, PRIV_USER, SMMExample_4dh, 0xff, 0xAAAA, 0xFFFF }, { CMD_EXAMPLE_4eh, PRIV_USER, SMMExample_4eh, 0xff, 0xAAAA, 0xFFFF }, { CMD_EXAMPLE_4fh, PRIV_USER, SMMExample_4fh, 0xff, 0xAAAA, 0xFFFF }, { CMD_EXAMPLE_50h, PRIV_USER, SMMExample_50h, 0xff, 0xAAAA, 0xFFFF }, { CMD_EXAMPLE_51h, PRIV_USER, SMMExample_51h, 0xff, 0xAAAA, 0xFFFF }, { CMD_EXAMPLE_52h, PRIV_USER, SMMExample_52h, 0xff, 0xAAAA, 0xFFFF }, { CMD_EXAMPLE_53h, PRIV_USER, SMMExample_53h, 0xff, 0xAAAA, 0xFFFF }, { CMD_EXAMPLE_54h, PRIV_USER, SMMExample_54h, 0xff, 0xAAAA, 0xFFFF }, { CMD_EXAMPLE_55h, PRIV_USER, SMMExample_55h, 0xff, 0xAAAA, 0xFFFF }, { CMD_EXAMPLE_56h, PRIV_USER, SMMExample_56h, 0xff, 0xAAAA, 0xFFFF }, { CMD_EXAMPLE_57h, PRIV_USER, SMMExample_57h, 0xff, 0xAAAA, 0xFFFF }, { CMD_EXAMPLE_58h, PRIV_USER, SMMExample_58h, 0xff, 0xAAAA, 0xFFFF }, { CMD_EXAMPLE_59h, PRIV_USER, SMMExample_59h, 0xff, 0xAAAA, 0xFFFF }, { CMD_EXAMPLE_5ah, PRIV_USER, SMMExample_5ah, 0xff, 0xAAAA, 0xFFFF }, { CMD_EXAMPLE_5bh, PRIV_USER, SMMExample_5bh, 0xff, 0xAAAA, 0xFFFF }, { CMD_EXAMPLE_5ch, PRIV_USER, SMMExample_5ch, 0xff, 0xAAAA, 0xFFFF }, { CMD_EXAMPLE_5dh, PRIV_USER, SMMExample_5dh, 0xff, 0xAAAA, 0xFFFF }, { CMD_EXAMPLE_5eh, PRIV_USER, SMMExample_5eh, 0xff, 0xAAAA, 0xFFFF }, { CMD_EXAMPLE_5fh, PRIV_USER, SMMExample_5fh, 0xff, 0xAAAA, 0xFFFF }, { CMD_EXAMPLE_60h, PRIV_USER, SMMExample_60h, 0xff, 0xAAAA, 0xFFFF }, { CMD_EXAMPLE_61h, PRIV_USER, SMMExample_61h, 0xff, 0xAAAA, 0xFFFF }, { CMD_EXAMPLE_62h, PRIV_USER, SMMExample_62h, 0xff, 0xAAAA, 0xFFFF }, { CMD_EXAMPLE_63h, PRIV_USER, SMMExample_63h, 0xff, 0xAAAA, 0xFFFF }, { CMD_EXAMPLE_64h, PRIV_USER, SMMExample_64h, 0xff, 0xAAAA, 0xFFFF }, { CMD_EXAMPLE_65h, PRIV_USER, SMMExample_65h, 0xff, 0xAAAA, 0xFFFF }, { CMD_EXAMPLE_66h, PRIV_USER, SMMExample_66h, 0xff, 0xAAAA, 0xFFFF }, { CMD_EXAMPLE_67h, PRIV_USER, SMMExample_67h, 0xff, 0xAAAA, 0xFFFF }, { CMD_EXAMPLE_68h, PRIV_USER, SMMExample_68h, 0xff, 0xAAAA, 0xFFFF }, { CMD_EXAMPLE_69h, PRIV_USER, SMMExample_69h, 0xff, 0xAAAA, 0xFFFF }, { CMD_EXAMPLE_6ah, PRIV_USER, SMMExample_6ah, 0xff, 0xAAAA, 0xFFFF }, { CMD_EXAMPLE_6bh, PRIV_USER, SMMExample_6bh, 0xff, 0xAAAA, 0xFFFF }, { CMD_EXAMPLE_6ch, PRIV_USER, SMMExample_6ch, 0xff, 0xAAAA, 0xFFFF }, { CMD_EXAMPLE_6dh, PRIV_USER, SMMExample_6dh, 0xff, 0xAAAA, 0xFFFF }, { CMD_EXAMPLE_6eh, PRIV_USER, SMMExample_6eh, 0xff, 0xAAAA, 0xFFFF }, { CMD_EXAMPLE_6fh, PRIV_USER, SMMExample_6fh, 0xff, 0xAAAA, 0xFFFF }, { CMD_EXAMPLE_70h, PRIV_USER, SMMExample_70h, 0xff, 0xAAAA, 0xFFFF }, { CMD_EXAMPLE_71h, PRIV_USER, SMMExample_71h, 0xff, 0xAAAA, 0xFFFF }, { CMD_EXAMPLE_72h, PRIV_USER, SMMExample_72h, 0xff, 0xAAAA, 0xFFFF }, { CMD_EXAMPLE_73h, PRIV_USER, SMMExample_73h, 0xff, 0xAAAA, 0xFFFF }, { CMD_EXAMPLE_74h, PRIV_USER, SMMExample_74h, 0xff, 0xAAAA, 0xFFFF }, { CMD_EXAMPLE_75h, PRIV_USER, SMMExample_75h, 0xff, 0xAAAA, 0xFFFF }, { CMD_EXAMPLE_76h, PRIV_USER, SMMExample_76h, 0xff, 0xAAAA, 0xFFFF }, { CMD_EXAMPLE_77h, PRIV_USER, SMMExample_77h, 0xff, 0xAAAA, 0xFFFF }, { CMD_EXAMPLE_78h, PRIV_USER, SMMExample_78h, 0xff, 0xAAAA, 0xFFFF }, { CMD_EXAMPLE_79h, PRIV_USER, SMMExample_79h, 0xff, 0xAAAA, 0xFFFF }, { CMD_EXAMPLE_7ah, PRIV_USER, SMMExample_7ah, 0xff, 0xAAAA, 0xFFFF }, { CMD_EXAMPLE_7bh, PRIV_USER, SMMExample_7bh, 0xff, 0xAAAA, 0xFFFF }, { CMD_EXAMPLE_7ch, PRIV_USER, SMMExample_7ch, 0xff, 0xAAAA, 0xFFFF }, { CMD_EXAMPLE_7dh, PRIV_USER, SMMExample_7dh, 0xff, 0xAAAA, 0xFFFF }, { CMD_EXAMPLE_7eh, PRIV_USER, SMMExample_7eh, 0xff, 0xAAAA, 0xFFFF }, { CMD_EXAMPLE_7fh, PRIV_USER, SMMExample_7fh, 0xff, 0xAAAA, 0xFFFF }, { CMD_EXAMPLE_80h, PRIV_USER, SMMExample_80h, 0xff, 0xAAAA, 0xFFFF }, { CMD_EXAMPLE_81h, PRIV_USER, SMMExample_81h, 0xff, 0xAAAA, 0xFFFF }, { CMD_EXAMPLE_82h, PRIV_USER, SMMExample_82h, 0xff, 0xAAAA, 0xFFFF }, { CMD_EXAMPLE_83h, PRIV_USER, SMMExample_83h, 0xff, 0xAAAA, 0xFFFF }, { CMD_EXAMPLE_84h, PRIV_USER, SMMExample_84h, 0xff, 0xAAAA, 0xFFFF }, { CMD_EXAMPLE_85h, PRIV_USER, SMMExample_85h, 0xff, 0xAAAA, 0xFFFF }, { CMD_EXAMPLE_86h, PRIV_USER, SMMExample_86h, 0xff, 0xAAAA, 0xFFFF }, { CMD_EXAMPLE_87h, PRIV_USER, SMMExample_87h, 0xff, 0xAAAA, 0xFFFF }, { CMD_EXAMPLE_88h, PRIV_USER, SMMExample_88h, 0xff, 0xAAAA, 0xFFFF }, { CMD_EXAMPLE_89h, PRIV_USER, SMMExample_89h, 0xff, 0xAAAA, 0xFFFF }, { CMD_EXAMPLE_8ah, PRIV_USER, SMMExample_8ah, 0xff, 0xAAAA, 0xFFFF }, { CMD_EXAMPLE_8bh, PRIV_USER, SMMExample_8bh, 0xff, 0xAAAA, 0xFFFF }, { CMD_EXAMPLE_8ch, PRIV_USER, SMMExample_8ch, 0xff, 0xAAAA, 0xFFFF }, { CMD_EXAMPLE_8dh, PRIV_USER, SMMExample_8dh, 0xff, 0xAAAA, 0xFFFF }, { CMD_EXAMPLE_8eh, PRIV_USER, SMMExample_8eh, 0xff, 0xAAAA, 0xFFFF }, { CMD_EXAMPLE_8fh, PRIV_USER, SMMExample_8fh, 0xff, 0xAAAA, 0xFFFF }, { CMD_EXAMPLE_90h, PRIV_USER, SMMExample_90h, 0xff, 0xAAAA, 0xFFFF }, { CMD_EXAMPLE_91h, PRIV_USER, SMMExample_91h, 0xff, 0xAAAA, 0xFFFF }, { CMD_EXAMPLE_92h, PRIV_USER, SMMExample_92h, 0xff, 0xAAAA, 0xFFFF }, { CMD_EXAMPLE_93h, PRIV_USER, SMMExample_93h, 0xff, 0xAAAA, 0xFFFF }, { CMD_EXAMPLE_94h, PRIV_USER, SMMExample_94h, 0xff, 0xAAAA, 0xFFFF }, { CMD_EXAMPLE_95h, PRIV_USER, SMMExample_95h, 0xff, 0xAAAA, 0xFFFF }, { CMD_EXAMPLE_96h, PRIV_USER, SMMExample_96h, 0xff, 0xAAAA, 0xFFFF }, { CMD_EXAMPLE_97h, PRIV_USER, SMMExample_97h, 0xff, 0xAAAA, 0xFFFF }, { CMD_EXAMPLE_98h, PRIV_USER, SMMExample_98h, 0xff, 0xAAAA, 0xFFFF }, { CMD_EXAMPLE_99h, PRIV_USER, SMMExample_99h, 0xff, 0xAAAA, 0xFFFF }, { CMD_EXAMPLE_9ah, PRIV_USER, SMMExample_9ah, 0xff, 0xAAAA, 0xFFFF }, { CMD_EXAMPLE_9bh, PRIV_USER, SMMExample_9bh, 0xff, 0xAAAA, 0xFFFF }, { CMD_EXAMPLE_9ch, PRIV_USER, SMMExample_9ch, 0xff, 0xAAAA, 0xFFFF }, { CMD_EXAMPLE_9dh, PRIV_USER, SMMExample_9dh, 0xff, 0xAAAA, 0xFFFF }, { CMD_EXAMPLE_9eh, PRIV_USER, SMMExample_9eh, 0xff, 0xAAAA, 0xFFFF }, { CMD_EXAMPLE_9fh, PRIV_USER, SMMExample_9fh, 0xff, 0xAAAA, 0xFFFF }, { CMD_EXAMPLE_a0h, PRIV_USER, SMMExample_a0h, 0xff, 0xAAAA, 0xFFFF }, { CMD_EXAMPLE_a1h, PRIV_USER, SMMExample_a1h, 0xff, 0xAAAA, 0xFFFF }, { CMD_EXAMPLE_a2h, PRIV_USER, SMMExample_a2h, 0xff, 0xAAAA, 0xFFFF }, { CMD_EXAMPLE_a3h, PRIV_USER, SMMExample_a3h, 0xff, 0xAAAA, 0xFFFF }, { CMD_EXAMPLE_a4h, PRIV_USER, SMMExample_a4h, 0xff, 0xAAAA, 0xFFFF }, { CMD_EXAMPLE_a5h, PRIV_USER, SMMExample_a5h, 0xff, 0xAAAA, 0xFFFF }, { CMD_EXAMPLE_a6h, PRIV_USER, SMMExample_a6h, 0xff, 0xAAAA, 0xFFFF }, { CMD_EXAMPLE_a7h, PRIV_USER, SMMExample_a7h, 0xff, 0xAAAA, 0xFFFF }, { CMD_EXAMPLE_a8h, PRIV_USER, SMMExample_a8h, 0xff, 0xAAAA, 0xFFFF }, { CMD_EXAMPLE_a9h, PRIV_USER, SMMExample_a9h, 0xff, 0xAAAA, 0xFFFF }, { CMD_EXAMPLE_aah, PRIV_USER, SMMExample_aah, 0xff, 0xAAAA, 0xFFFF }, { CMD_EXAMPLE_abh, PRIV_USER, SMMExample_abh, 0xff, 0xAAAA, 0xFFFF }, { CMD_EXAMPLE_ach, PRIV_USER, SMMExample_ach, 0xff, 0xAAAA, 0xFFFF }, { CMD_EXAMPLE_adh, PRIV_USER, SMMExample_adh, 0xff, 0xAAAA, 0xFFFF }, { CMD_EXAMPLE_aeh, PRIV_USER, SMMExample_aeh, 0xff, 0xAAAA, 0xFFFF }, { CMD_EXAMPLE_afh, PRIV_USER, SMMExample_afh, 0xff, 0xAAAA, 0xFFFF }, { CMD_EXAMPLE_b0h, PRIV_USER, SMMExample_b0h, 0xff, 0xAAAA, 0xFFFF }, { CMD_EXAMPLE_b1h, PRIV_USER, SMMExample_b1h, 0xff, 0xAAAA, 0xFFFF }, { CMD_EXAMPLE_b2h, PRIV_USER, SMMExample_b2h, 0xff, 0xAAAA, 0xFFFF }, { CMD_EXAMPLE_b3h, PRIV_USER, SMMExample_b3h, 0xff, 0xAAAA, 0xFFFF }, { CMD_EXAMPLE_b4h, PRIV_USER, SMMExample_b4h, 0xff, 0xAAAA, 0xFFFF }, { CMD_EXAMPLE_b5h, PRIV_USER, SMMExample_b5h, 0xff, 0xAAAA, 0xFFFF }, { CMD_EXAMPLE_b6h, PRIV_USER, SMMExample_b6h, 0xff, 0xAAAA, 0xFFFF }, { CMD_EXAMPLE_b7h, PRIV_USER, SMMExample_b7h, 0xff, 0xAAAA, 0xFFFF }, { CMD_EXAMPLE_b8h, PRIV_USER, SMMExample_b8h, 0xff, 0xAAAA, 0xFFFF }, { CMD_EXAMPLE_b9h, PRIV_USER, SMMExample_b9h, 0xff, 0xAAAA, 0xFFFF }, { CMD_EXAMPLE_bah, PRIV_USER, SMMExample_bah, 0xff, 0xAAAA, 0xFFFF }, { CMD_EXAMPLE_bbh, PRIV_USER, SMMExample_bbh, 0xff, 0xAAAA, 0xFFFF }, { CMD_EXAMPLE_bch, PRIV_USER, SMMExample_bch, 0xff, 0xAAAA, 0xFFFF }, { CMD_EXAMPLE_bdh, PRIV_USER, SMMExample_bdh, 0xff, 0xAAAA, 0xFFFF }, { CMD_EXAMPLE_beh, PRIV_USER, SMMExample_beh, 0xff, 0xAAAA, 0xFFFF }, { CMD_EXAMPLE_bfh, PRIV_USER, SMMExample_bfh, 0xff, 0xAAAA, 0xFFFF }, { CMD_EXAMPLE_c0h, PRIV_USER, SMMExample_c0h, 0xff, 0xAAAA, 0xFFFF }, { CMD_EXAMPLE_c1h, PRIV_USER, SMMExample_c1h, 0xff, 0xAAAA, 0xFFFF }, { CMD_EXAMPLE_c2h, PRIV_USER, SMMExample_c2h, 0xff, 0xAAAA, 0xFFFF }, { CMD_EXAMPLE_c3h, PRIV_USER, SMMExample_c3h, 0xff, 0xAAAA, 0xFFFF }, { CMD_EXAMPLE_c4h, PRIV_USER, SMMExample_c4h, 0xff, 0xAAAA, 0xFFFF }, { CMD_EXAMPLE_c5h, PRIV_USER, SMMExample_c5h, 0xff, 0xAAAA, 0xFFFF }, { CMD_EXAMPLE_c6h, PRIV_USER, SMMExample_c6h, 0xff, 0xAAAA, 0xFFFF }, { CMD_EXAMPLE_c7h, PRIV_USER, SMMExample_c7h, 0xff, 0xAAAA, 0xFFFF }, { CMD_EXAMPLE_c8h, PRIV_USER, SMMExample_c8h, 0xff, 0xAAAA, 0xFFFF }, { CMD_EXAMPLE_c9h, PRIV_USER, SMMExample_c9h, 0xff, 0xAAAA, 0xFFFF }, { CMD_EXAMPLE_cah, PRIV_USER, SMMExample_cah, 0xff, 0xAAAA, 0xFFFF }, { CMD_EXAMPLE_cbh, PRIV_USER, SMMExample_cbh, 0xff, 0xAAAA, 0xFFFF }, { CMD_EXAMPLE_cch, PRIV_USER, SMMExample_cch, 0xff, 0xAAAA, 0xFFFF }, { CMD_EXAMPLE_cdh, PRIV_USER, SMMExample_cdh, 0xff, 0xAAAA, 0xFFFF }, { CMD_EXAMPLE_ceh, PRIV_USER, SMMExample_ceh, 0xff, 0xAAAA, 0xFFFF }, { CMD_EXAMPLE_cfh, PRIV_USER, SMMExample_cfh, 0xff, 0xAAAA, 0xFFFF }, { CMD_EXAMPLE_d0h, PRIV_USER, SMMExample_d0h, 0xff, 0xAAAA, 0xFFFF }, { CMD_EXAMPLE_d1h, PRIV_USER, SMMExample_d1h, 0xff, 0xAAAA, 0xFFFF }, { CMD_EXAMPLE_d2h, PRIV_USER, SMMExample_d2h, 0xff, 0xAAAA, 0xFFFF }, { CMD_EXAMPLE_d3h, PRIV_USER, SMMExample_d3h, 0xff, 0xAAAA, 0xFFFF }, { CMD_EXAMPLE_d4h, PRIV_USER, SMMExample_d4h, 0xff, 0xAAAA, 0xFFFF }, { CMD_EXAMPLE_d5h, PRIV_USER, SMMExample_d5h, 0xff, 0xAAAA, 0xFFFF }, { CMD_EXAMPLE_d6h, PRIV_USER, SMMExample_d6h, 0xff, 0xAAAA, 0xFFFF }, { CMD_EXAMPLE_d7h, PRIV_USER, SMMExample_d7h, 0xff, 0xAAAA, 0xFFFF }, { CMD_EXAMPLE_d8h, PRIV_USER, SMMExample_d8h, 0xff, 0xAAAA, 0xFFFF }, { CMD_EXAMPLE_d9h, PRIV_USER, SMMExample_d9h, 0xff, 0xAAAA, 0xFFFF }, { CMD_EXAMPLE_dah, PRIV_USER, SMMExample_dah, 0xff, 0xAAAA, 0xFFFF }, { CMD_EXAMPLE_dbh, PRIV_USER, SMMExample_dbh, 0xff, 0xAAAA, 0xFFFF }, { CMD_EXAMPLE_dch, PRIV_USER, SMMExample_dch, 0xff, 0xAAAA, 0xFFFF }, { CMD_EXAMPLE_ddh, PRIV_USER, SMMExample_ddh, 0xff, 0xAAAA, 0xFFFF }, { CMD_EXAMPLE_deh, PRIV_USER, SMMExample_deh, 0xff, 0xAAAA, 0xFFFF }, { CMD_EXAMPLE_dfh, PRIV_USER, SMMExample_dfh, 0xff, 0xAAAA, 0xFFFF }, { CMD_EXAMPLE_e0h, PRIV_USER, SMMExample_e0h, 0xff, 0xAAAA, 0xFFFF }, { CMD_EXAMPLE_e1h, PRIV_USER, SMMExample_e1h, 0xff, 0xAAAA, 0xFFFF }, { CMD_EXAMPLE_e2h, PRIV_USER, SMMExample_e2h, 0xff, 0xAAAA, 0xFFFF }, { CMD_EXAMPLE_e3h, PRIV_USER, SMMExample_e3h, 0xff, 0xAAAA, 0xFFFF }, { CMD_EXAMPLE_e4h, PRIV_USER, SMMExample_e4h, 0xff, 0xAAAA, 0xFFFF }, { CMD_EXAMPLE_e5h, PRIV_USER, SMMExample_e5h, 0xff, 0xAAAA, 0xFFFF }, { CMD_EXAMPLE_e6h, PRIV_USER, SMMExample_e6h, 0xff, 0xAAAA, 0xFFFF }, { CMD_EXAMPLE_e7h, PRIV_USER, SMMExample_e7h, 0xff, 0xAAAA, 0xFFFF }, { CMD_EXAMPLE_e8h, PRIV_USER, SMMExample_e8h, 0xff, 0xAAAA, 0xFFFF }, { CMD_EXAMPLE_e9h, PRIV_USER, SMMExample_e9h, 0xff, 0xAAAA, 0xFFFF }, { CMD_EXAMPLE_eah, PRIV_USER, SMMExample_eah, 0xff, 0xAAAA, 0xFFFF }, { CMD_EXAMPLE_ebh, PRIV_USER, SMMExample_ebh, 0xff, 0xAAAA, 0xFFFF }, { CMD_EXAMPLE_ech, PRIV_USER, SMMExample_ech, 0xff, 0xAAAA, 0xFFFF }, { CMD_EXAMPLE_edh, PRIV_USER, SMMExample_edh, 0xff, 0xAAAA, 0xFFFF }, { CMD_EXAMPLE_eeh, PRIV_USER, SMMExample_eeh, 0xff, 0xAAAA, 0xFFFF }, { CMD_EXAMPLE_efh, PRIV_USER, SMMExample_efh, 0xff, 0xAAAA, 0xFFFF }, { CMD_EXAMPLE_f0h, PRIV_USER, SMMExample_f0h, 0xff, 0xAAAA, 0xFFFF }, { CMD_EXAMPLE_f1h, PRIV_USER, SMMExample_f1h, 0xff, 0xAAAA, 0xFFFF }, { CMD_EXAMPLE_f2h, PRIV_USER, SMMExample_f2h, 0xff, 0xAAAA, 0xFFFF }, { CMD_EXAMPLE_f3h, PRIV_USER, SMMExample_f3h, 0xff, 0xAAAA, 0xFFFF }, { CMD_EXAMPLE_f4h, PRIV_USER, SMMExample_f4h, 0xff, 0xAAAA, 0xFFFF }, { CMD_EXAMPLE_f5h, PRIV_USER, SMMExample_f5h, 0xff, 0xAAAA, 0xFFFF }, { CMD_EXAMPLE_f6h, PRIV_USER, SMMExample_f6h, 0xff, 0xAAAA, 0xFFFF }, { CMD_EXAMPLE_f7h, PRIV_USER, SMMExample_f7h, 0xff, 0xAAAA, 0xFFFF }, { CMD_EXAMPLE_f8h, PRIV_USER, SMMExample_f8h, 0xff, 0xAAAA, 0xFFFF }, { CMD_EXAMPLE_f9h, PRIV_USER, SMMExample_f9h, 0xff, 0xAAAA, 0xFFFF }, { CMD_EXAMPLE_fah, PRIV_USER, SMMExample_fah, 0xff, 0xAAAA, 0xFFFF }, { CMD_EXAMPLE_fbh, PRIV_USER, SMMExample_fbh, 0xff, 0xAAAA, 0xFFFF }, { CMD_EXAMPLE_fch, PRIV_USER, SMMExample_fch, 0xff, 0xAAAA, 0xFFFF }, { CMD_EXAMPLE_fdh, PRIV_USER, SMMExample_fdh, 0xff, 0xAAAA, 0xFFFF }, { CMD_EXAMPLE_feh, PRIV_USER, SMMExample_feh, 0xff, 0xAAAA, 0xFFFF }, { CMD_EXAMPLE_ffh, PRIV_USER, SMMExample_ffh, 0xff, 0xAAAA, 0xFFFF }, }; const CmdHndlrMap_T g_Storlead_CmdHndlr [] = { { CMD_GET_SYS_INFO, PRIV_USER, Storlead_GetSysInfo, 0xff, 0xAAAA ,0xFFFF}, { CMD_GET_SENSOR_INFO, PRIV_USER, Storlead_GetSensorInfo, 0xff, 0xAAAA ,0xFFFF}, { CMD_AUTHOR_VERIFY, PRIV_USER, Storlead_AuthorVerify, 0xff, 0xAAAA ,0xFFFF}, { CMD_GET_SENSOR_HISTORY, PRIV_USER, Storlead_GetSensorHistory, 0xff, 0xAAAA ,0xFFFF}, { CMD_GET_FAN_INFO, PRIV_USER, Storlead_GetFanInfo, 0xff, 0xAAAA ,0xFFFF}, { CMD_SET_FAN_INFO, PRIV_USER, Storlead_SetFanInfo, 0xff, 0xAAAA ,0xFFFF}, { CMD_GET_ALLBLADE_INFO, PRIV_USER, Storlead_getAllBladeStatus, 0xff, 0xAAAA ,0xFFFF}, { CMD_RESTORE_FACTORY_SET, PRIV_USER, Storlead_RestoreFactorSettings, 0xff, 0xAAAA ,0xFFFF}, { CMD_GET_LAN_INFO, PRIV_USER, Storlead_GetLanInfo, 0xff, 0xAAAA ,0xFFFF}, { CMD_SET_LAN_INFO, PRIV_USER, Storlead_SetLanInfo, 0xff, 0xAAAA ,0xFFFF}, { CMD_GET_BLADE_INFO, PRIV_USER, Storlead_GetBladeInfo, 0xff, 0xAAAA ,0xFFFF}, { CMD_GET_SENSOR_NAME, PRIV_USER, Storlead_GetSensorName, 0xff, 0xAAAA ,0xFFFF}, { CMD_GET_CURRUNTIME, PRIV_USER, Storlead_GetCurRunTime, 0xff, 0xAAAA ,0xFFFF}, { CMD_SAVE_CONFIG, PRIV_USER, Storlead_SaveConfig, 0xff, 0xAAAA ,0xFFFF}, { CMD_RESTORE_CONFIG, PRIV_USER, Storlead_RestoreConfig, 0xff, 0xAAAA ,0xFFFF}, { 0x00, 0x00, 0x00, 0x00, 0x0000 , 0x0000}, }; // /*OEM Message Handler table to override generic IPMI cmd // Any OEM specific Netfn and Command Handler can also be // added here*/ // const MsgHndlrTbl_T oem_MsgHndlrTbl [] = // { // // { NETFN_APP, g_Oem_App_CmdHndlr }, // // { NETFN_CHASSIS, g_Oem_Chassis_CmdHndlr }, // // { NETFN_BRIDGE, g_Oem_Bridge_CmdHndlr }, // // { NETFN_SENSOR, g_Oem_SensorEvent_CmdHndlr }, // // { NETFN_STORAGE, g_Oem_Storage_CmdHndlr }, // // { NETFN_TRANSPORT, g_Oem_Config_CmdHndlr }, // { NETFN_OEM, g_Oem_CmdHndlr }, // {NETFN_STORLEAD, g_Storlead_CmdHndlr }, // }; // // /** // *@fn PDKGetOEMMsgHndlrMap // *@brief Helps in getting command handler for specific NetFn // *@parm NetFn -NetFunction // *@param pCmdHndlrMap - Command Handler for the given NetFn // *@return Returns 0 on success and -1 on failure // */ // int // PDKGetOEMMsgHndlrMap (uint8_t NetFn, CmdHndlrMap_T ** pCmdHndlrMap) // { // int i; // /* Get the command handler corresponding to the net function */ // for (i = 0; i < sizeof (oem_MsgHndlrTbl) / sizeof (oem_MsgHndlrTbl [0]); i++) // { // if (oem_MsgHndlrTbl [i].NetFn == NetFn) // { // break; // } // } // /* Check if we have not found our net function */ // if (i == sizeof (oem_MsgHndlrTbl) / sizeof (oem_MsgHndlrTbl [0])) // { // return -1; // } // /* Get the handler corresponding to the command */ // *pCmdHndlrMap = (CmdHndlrMap_T*)oem_MsgHndlrTbl [i].CmdHndlrMap; // return 0; // }