/*****************************************************************************

            (c) Cambridge Silicon Radio Limited 2011
            All rights reserved and confidential information of CSR

            Refer to LICENSE.txt included with this source for details
            on the license terms.

*****************************************************************************/

/* Note: this is an auto-generated file. */

#ifndef CSR_WIFI_ROUTER_CTRL_CONVERTER_INIT_H__
#define CSR_WIFI_ROUTER_CTRL_CONVERTER_INIT_H__

#ifndef EXCLUDE_CSR_WIFI_ROUTER_CTRL_MODULE

#include "csr_msgconv.h"

#ifdef CSR_LOG_ENABLE
#include "csr_log.h"

extern const CsrLogPrimitiveInformation* CsrWifiRouterCtrlTechInfoGet(void);
#endif /* CSR_LOG_ENABLE */

extern void CsrWifiRouterCtrlConverterInit(void);

#else /* EXCLUDE_CSR_WIFI_ROUTER_CTRL_MODULE */

#define CsrWifiRouterCtrlConverterInit()

#endif /* EXCLUDE_CSR_WIFI_ROUTER_CTRL_MODULE */

#endif /* CSR_WIFI_ROUTER_CTRL_CONVERTER_INIT_H__ */
