/******************************************************************************/
/*               Copyright 2001, 2002, 2003 Broadcom Corporation              */
/*                                                                            */
/* This material is the confidential trade secret and proprietary information */
/* of Broadcom Corp.  It may not be reproduced, used, sold or transferred to  */
/* any third party without the prior written consent of Broadcom Corp.        */
/* All rights reserved.                                                       */
/******************************************************************************/

/* $Id: bcm_hmiLcaServices.h,v 1.20 2004/06/21 07:09:20 hanssens Exp $ */

#ifndef BCM_HMIQA_H
#include "bcm_hmiQA.h"
#endif

#ifndef BCM_HMI_LCA_MSG_H
#include "bcm_hmiLcaMsg.h"
#endif

#define LcaConfigDevice(dev, msgReq) \
  hmiQA(dev, IDF_BASE_APP_ID, \
  (uint8 *) msgReq, SIZE_OF_REQ_MSG(LcaConfigDevice), \
  (uint8 *) 0, 0, \
  &LcaConfigDeviceLayout)

#define LcaConfigUpstreamPort(dev, msgReq) \
  hmiQA(dev, IDF_BASE_APP_ID, \
  (uint8 *) msgReq, SIZE_OF_REQ_MSG(LcaConfigUpstreamPort), \
  (uint8 *) 0, 0, \
  &LcaConfigUpstreamPortLayout)

#define LcaConfigDownstreamPort(dev, msgReq) \
  hmiQA(dev, IDF_BASE_APP_ID, \
  (uint8 *) msgReq, SIZE_OF_REQ_MSG(LcaConfigDownstreamPort), \
  (uint8 *) 0, 0, \
  &LcaConfigDownstreamPortLayout)

#define LcaConfigDownstreamBuffers(dev, msgReq) \
  hmiQA(dev, IDF_BASE_APP_ID,                                 \
  (uint8 *) msgReq, SIZE_OF_REQ_MSG(LcaConfigDownstreamBuffers), \
  (uint8 *) 0, 0, \
  &LcaConfigDownstreamBuffersLayout)

#define LcaConfigMacFilter(dev, msgReq) \
  hmiQA(dev, IDF_BASE_APP_ID, \
  (uint8 *) msgReq, SIZE_OF_REQ_MSG(LcaConfigMacFilter), \
  (uint8 *) 0, 0, \
  &LcaConfigMacFilterLayout)

#define LcaDefineAtmHeaders(dev, msgReq) \
  hmiQA(dev, IDF_BASE_APP_ID, \
  (uint8 *) msgReq, SIZE_OF_REQ_MSG(LcaDefineAtmHeaders), \
  (uint8 *) 0, 0, \
  &LcaDefineAtmHeadersLayout)

#define SetLcaMcastGroupConfig(dev, msgReq) \
  hmiQA(dev, IDF_BASE_APP_ID, \
  (uint8 *) msgReq, SIZE_OF_REQ_MSG(SetLcaMcastGroupConfig), \
  (uint8 *) 0, 0, \
  &SetLcaMcastGroupConfigLayout)

#define LcaGetLocation(dev, msgRep) \
  hmiQA(dev, IDF_BASE_APP_ID, \
  (uint8 *) 0, 0, \
  (uint8 *) msgRep, SIZE_OF_REP_MSG(LcaGetLocation), \
  &LcaGetLocationLayout)

#define LcaGetCounters(dev, msgReq, msgRep) \
  hmiQA(dev, IDF_BASE_APP_ID, \
  (uint8 *) msgReq, SIZE_OF_REQ_MSG(LcaGetCounters), \
  (uint8 *) msgRep, SIZE_OF_REP_MSG(LcaGetCounters), \
  &LcaGetCountersLayout)

#define LcaGetStatus(dev, msgReq, msgRep) \
  hmiQA(dev, IDF_BASE_APP_ID, \
  (uint8 *) msgReq, SIZE_OF_REQ_MSG(LcaGetStatus), \
  (uint8 *) msgRep, SIZE_OF_REP_MSG(LcaGetStatus), \
  &LcaGetStatusLayout)

#define LcaConfigDownstreamBuffers(dev, msgReq) \
  hmiQA(dev, IDF_BASE_APP_ID, \
  (uint8 *) msgReq, SIZE_OF_REQ_MSG(LcaConfigDownstreamBuffers), \
  (uint8 *) 0, 0, \
  &LcaConfigDownstreamBuffersLayout)

#define LcaGetInterruptStatus(dev, msgRep) \
  hmiQA(dev, IDF_BASE_APP_ID, \
  (uint8 *) 0, 0, \
  (uint8 *) msgRep, SIZE_OF_REP_MSG(LcaGetInterruptStatus), \
  &LcaGetInterruptStatusLayout)

#define LcaSetInterruptMask(dev, msgReq) \
  hmiQA(dev, IDF_BASE_APP_ID, \
  (uint8 *) msgReq, SIZE_OF_REQ_MSG(LcaSetInterruptMask), \
  (uint8 *) 0, 0, \
  &LcaSetInterruptMaskLayout)

#define LcaSetProtocolFilter(dev, msgReq) \
  hmiQA(dev, IDF_BASE_APP_ID, \
  (uint8 *) msgReq, SIZE_OF_REQ_MSG(LcaSetProtocolFilter), \
  (uint8 *) 0, 0, \
  &LcaSetProtocolFilterLayout)

#define LcaGetMacEntry(dev, msgReq, msgRep) \
  hmiQA(dev, IDF_BASE_APP_ID, \
  (uint8 *) msgReq, SIZE_OF_REQ_MSG(LcaGetMacEntry), \
  (uint8 *) msgRep, SIZE_OF_REP_MSG(LcaGetMacEntry), \
  &LcaGetMacEntryLayout)

#define LcaInjectFrame(dev, msgReq) \
  hmiQA(dev, IDF_BASE_APP_ID, \
  (uint8 *) msgReq, SIZE_OF_REQ_MSG(LcaInjectFrame), \
  (uint8 *) 0, 0, \
  &LcaInjectFrameLayout)

#define LcaGetSnoopedCells(dev, msgReq, msgRep) \
  hmiQA(dev, IDF_BASE_APP_ID,                      \
  (uint8 *) msgReq, SIZE_OF_REQ_MSG(LcaGetSnoopedCells), \
  (uint8 *) msgRep, SIZE_OF_REP_MSG(LcaGetSnoopedCells), \
  &LcaGetSnoopedCellsLayout)

#define LcaWriteOam(dev, msgReq) \
  hmiQA(dev, IDF_BASE_APP_ID,                      \
  (uint8 *) msgReq, SIZE_OF_REQ_MSG(LcaWriteOam), \
  (uint8 *) 0, 0, \
  &LcaWriteOamLayout)

#define LcaDefineMulticastGroup(dev, msgReq) \
  hmiQA(dev, IDF_BASE_APP_ID, \
  (uint8 *) msgReq, SIZE_OF_REQ_MSG(LcaDefineMulticastGroup), \
  (uint8 *) 0, 0, \
  &LcaDefineMulticastGroupLayout)

#define LcaGetVersion(dev, msgRep) \
  hmiQA(dev, IDF_BASE_APP_ID, \
  (uint8 *) 0, 0, \
  (uint8 *) msgRep, SIZE_OF_REP_MSG(LcaGetVersion), \
  &LcaGetVersionLayout)

#define LcaTransceiverWrite(dev, msgReq) \
  hmiQA(dev, IDF_BASE_APP_ID, \
  (uint8 *) msgReq, SIZE_OF_REQ_MSG(LcaTransceiverWrite), \
  (uint8 *) 0, 0, \
  &LcaTransceiverWriteLayout)

#define LcaTransceiverRead(dev, msgReq, msgRep)	\
  hmiQA(dev, IDF_BASE_APP_ID, \
  (uint8 *) msgReq, SIZE_OF_REQ_MSG(LcaTransceiverRead), \
  (uint8 *) msgRep, SIZE_OF_REP_MSG(LcaTransceiverRead), \
  &LcaTransceiverReadLayout)

#define LcaMonitorMulticast(dev, msgReq) \
  hmiQA(dev, IDF_BASE_APP_ID, \
  (uint8 *) msgReq, SIZE_OF_REQ_MSG(LcaMonitorMulticast), \
  (uint8 *) 0, 0, \
  &LcaMonitorMulticastLayout)
