/*****************************************************************
 *****************************************************************
 ***                                                            **
 ***    (C)Copyright 2005-2006, American Megatrends Inc.        **
 ***                                                            **
 ***            All Rights Reserved.                            **
 ***                                                            **
 ***        6145-F, Northbelt Parkway, Norcross,                **
 ***                                                            **
 ***        Georgia - 30071, USA. Phone-(770)-246-8600.         **
 ***                                                            **
 *****************************************************************
 ******************************************************************
 *
 * pdkhooks.h
 * Hooks that are invoked at different points of the Firmware
 * execution.
 *
 *  Author: Govind Kothandapani <govindk@ami.com>
 ******************************************************************/
#ifndef PDKCMDS_H
#define PDKCMDS_H
#include "MsgHndlr.h"


#define PDK_CMD_LENGTH_UNKNOWN 0xFFFFFFFF

typedef uint32_t (*pOEMCmdHndlr_T) ( uint8_t* pReq, uint32_t ReqLen,  uint8_t* pRes);

typedef struct
{

    uint8_t  			NetFn;
    uint8_t  			Cmd;
    uint8_t  			Privilege;
    pOEMCmdHndlr_T	CmdHndlr;
    uint32_t			ReqLen;		/* 0xFF - Any Length */
    uint16_t			FFConfig;

} OEMCmdHndlrMap_T;

typedef struct
{
    uint8_t    OwnerID;
    uint8_t    ChannelNum;

} OwnerIDMap_T;

/**
*@fn PDKGetOEMMsgHndlrMap 
*@brief Helps in getting command handler for particular NetFn
*@parm NetFn -NetFunction
*@param pCmdHndlrMap - Command Handler for the given NetFn
*@param BMCInst - BMC instances
*@return Returns 0 on success and -1 for failure
*/
extern int	  PDKGetOEMMsgHndlrMap (uint8_t NetFn, CmdHndlrMap_T ** pCmdHndlrMap);

#endif	/* PDKCMDS_H */

