/*****************************************************************
 *****************************************************************
 ***                                                            **
 ***    (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 <govindk@ami.com>
 ******************************************************************/

#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_GET_SEL_ENTIRES,      PRIV_USER,      Storlead_GetSELEntires,     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_GET_ALLBLADE_INFO,        PRIV_USER,      Storlead_getAllBladeStatus,         0xff,  0xAAAA  ,0xFFFF},
    //{ CMD_SET_MANAGE_FN,         PRIV_USER,      Storlead_SetBladeManageFn,         0xff,  0xAAAA  ,0xFFFF},     { CMD_SET_FAN_INFO,         PRIV_USER,      Storlead_SetFanInfo,         0xff,  0xAAAA  ,0xFFFF},
    //{ CMD_GET_MANAGE_FN,         PRIV_USER,      Storlead_GetBladeManageFn,         0xff,  0xAAAA  ,0xFFFF},
    { CMD_GET_CHASSIS_INFO,      PRIV_USER,      Storlead_GetChassisInfo,         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},
    
     { 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;
}



