| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270 |
- /*! \file
- \brief Declaration of library functions
- Any definitions in this file will be shared among GLUE Layer and internal Driver Stack.
- */
- #ifndef _STP_EXP_H_
- #define _STP_EXP_H_
- #include "wmt_stp_exp.h"
- #include "osal.h"
- /*******************************************************************************
- * C O M P I L E R F L A G S
- ********************************************************************************
- */
- /*******************************************************************************
- * M A C R O S
- ********************************************************************************
- */
- #ifndef MTK_WCN_WMT_STP_EXP_SYMBOL_ABSTRACT
- #define BT_TASK_INDX (0)
- #define FM_TASK_INDX (1)
- #define GPS_TASK_INDX (2)
- #define WIFI_TASK_INDX (3)
- #define WMT_TASK_INDX (4)
- #define STP_TASK_INDX (5)
- #define INFO_TASK_INDX (6)
- #define ANT_TASK_INDX (7)
- #if CFG_WMT_LTE_COEX_HANDLING
- #define COEX_TASK_INDX (8)
- #define MTKSTP_MAX_TASK_NUM (9)
- #else
- #define MTKSTP_MAX_TASK_NUM (8)
- #endif
- #define MTKSTP_BUFFER_SIZE (16384) /* Size of RX Queue */
- #define STP_EXP_HID_API_EXPORT 0
- #else
- #define STP_EXP_HID_API_EXPORT 1
- #endif
- /*******************************************************************************
- * E X T E R N A L R E F E R E N C E S
- ********************************************************************************
- */
- /*******************************************************************************
- * C O N S T A N T S
- ********************************************************************************
- */
- /*******************************************************************************
- * D A T A T Y P E S
- ********************************************************************************
- */
- #ifndef MTK_WCN_WMT_STP_EXP_SYMBOL_ABSTRACT
- typedef VOID (*MTK_WCN_STP_EVENT_CB) (VOID);
- typedef INT32 (*MTK_WCN_STP_IF_TX) (const PUINT8 data, const UINT32 size, PUINT32 written_size);
- /* export for HIF driver */
- typedef VOID (*MTK_WCN_STP_IF_RX) (const PUINT8 data, INT32 size);
- typedef enum {
- STP_UART_IF_TX = 0,
- STP_SDIO_IF_TX,
- STP_MAX_IF_TX
- } ENUM_STP_TX_IF_TYPE;
- /*******************************************************************************
- * P U B L I C D A T A
- ********************************************************************************
- */
- /*******************************************************************************
- * P R I V A T E D A T A
- ********************************************************************************
- */
- /*******************************************************************************
- * F U N C T I O N D E C L A R A T I O N S
- ********************************************************************************
- */
- /*****************************************************************************
- * FUNCTION
- * mtk_wcn_stp_receive_data
- * DESCRIPTION
- * receive data from serial protocol engine
- * PARAMETERS
- * buffer [IN] data buffer
- * length [IN] data buffer length
- * RETURNS
- * INT32 >= 0: size of data received; < 0: error
- *****************************************************************************/
- extern INT32 mtk_wcn_stp_receive_data(PUINT8 buffer, UINT32 length, UINT8 type);
- /*****************************************************************************
- * FUNCTION
- * mtk_wcn_stp_send_data
- * DESCRIPTION
- * subfunction send data through STP
- * PARAMETERS
- * buffer [IN] data buffer
- * length [IN] data buffer length
- * type [IN] subfunction type
- * RETURNS
- * INT32 >= 0: length transmitted; < 0: error
- *****************************************************************************/
- extern INT32 mtk_wcn_stp_send_data(const PUINT8 buffer, const UINT32 length, const UINT8 type);
- /*****************************************************************************
- * FUNCTION
- * mtk_wcn_stp_is_rxqueue_empty
- * DESCRIPTION
- * Is certain rx queue empty?
- * PARAMETERS
- * type [IN] subfunction type
- * RETURNS
- * INT32 0: queue is NOT empyt; !0: queue is empty
- *****************************************************************************/
- extern MTK_WCN_BOOL mtk_wcn_stp_is_rxqueue_empty(UINT8 type);
- /*****************************************************************************
- * FUNCTION
- * mtk_wcn_stp_is_enable
- * DESCRIPTION
- * Is STP ready?
- * PARAMETERS
- * none.
- * RETURNS
- * MTK_WCN_BOOL TRUE:ready, FALSE:not ready
- *****************************************************************************/
- extern MTK_WCN_BOOL mtk_wcn_stp_is_ready(VOID);
- /*****************************************************************************
- * FUNCTION
- * mtk_wcn_stp_parser_data
- * DESCRIPTION
- * push data to serial transport protocol parser engine
- * PARAMETERS
- * buffer [IN] data buffer
- * length [IN] data buffer length
- * RETURNS
- * void
- *****************************************************************************/
- extern INT32 mtk_wcn_stp_parser_data(PUINT8 buffer, UINT32 length);
- /*****************************************************************************
- * FUNCTION
- * set_bluetooth_rx_interface
- * DESCRIPTION
- * Set bluetooth rx interface
- * PARAMETERS
- * rx interface type
- * RETURNS
- * void
- *****************************************************************************/
- extern void mtk_wcn_stp_set_bluez(MTK_WCN_BOOL sdio_flag);
- /*****************************************************************************
- * FUNCTION
- * mtk_wcn_stp_register_tx_event_cb
- * DESCRIPTION
- * regiter Tx event callback function
- * PARAMETERS
- * func
- * RETURNS
- * INT32: 0:successful , -1: fail
- *****************************************************************************/
- extern INT32 mtk_wcn_stp_register_tx_event_cb(INT32 type, MTK_WCN_STP_EVENT_CB func);
- /*****************************************************************************
- * FUNCTION
- * mtk_wcn_stp_register_event_cb
- * DESCRIPTION
- * regiter Rx event callback function
- * PARAMETERS
- * func
- * RETURNS
- * INT32: 0:successful , -1: fail
- *****************************************************************************/
- extern INT32 mtk_wcn_stp_register_event_cb(INT32 type, MTK_WCN_STP_EVENT_CB func);
- /*****************************************************************************
- * FUNCTION
- * mtk_wcn_stp_register_if_tx
- * DESCRIPTION
- * regiter Tx event callback function
- * PARAMETERS
- * stp_if: SDIO or UART, fnnc: Call back function
- * RETURNS
- * INT32: 0:successful , -1: fail
- *****************************************************************************/
- extern INT32 mtk_wcn_stp_register_if_tx(ENUM_STP_TX_IF_TYPE stp_if, MTK_WCN_STP_IF_TX func);
- /*****************************************************************************
- * FUNCTION
- * mtk_wcn_stp_register_if_rx
- * DESCRIPTION
- * regiter Rx event callback function
- * PARAMETERS
- * stp_if: SDIO or UART, fnnc: Call back function
- * RETURNS
- * INT32: 0:successful , -1: fail
- *****************************************************************************/
- extern INT32 mtk_wcn_stp_register_if_rx(MTK_WCN_STP_IF_RX func);
- /*****************************************************************************
- * FUNCTION
- * mtk_wcn_stp_coredump_start_get
- * DESCRIPTION
- * get f/w assert flag in STP context
- * PARAMETERS
- * VOID
- * RETURNS
- * INT32 0= f/w assert flag is not set, others=f/w assert flag is set
- *****************************************************************************/
- extern INT32 mtk_wcn_stp_coredump_start_get(VOID);
- /*******************************************************************************
- * F U N C T I O N S
- ********************************************************************************
- */
- #else
- extern INT32 _mtk_wcn_stp_receive_data(PUINT8 buffer, UINT32 length, UINT8 type);
- extern INT32 _mtk_wcn_stp_send_data_raw(const PUINT8 buffer, const UINT32 length, const UINT8 type);
- extern INT32 _mtk_wcn_stp_send_data(const PUINT8 buffer, const UINT32 length, const UINT8 type);
- extern MTK_WCN_BOOL _mtk_wcn_stp_is_rxqueue_empty(UINT8 type);
- extern MTK_WCN_BOOL _mtk_wcn_stp_is_ready(VOID);
- extern INT32 _mtk_wcn_stp_parser_data(PUINT8 buffer, UINT32 length);
- extern void _mtk_wcn_stp_set_bluez(MTK_WCN_BOOL sdio_flag);
- extern INT32 _mtk_wcn_stp_register_tx_event_cb(INT32 type, MTK_WCN_STP_EVENT_CB func);
- extern INT32 _mtk_wcn_stp_register_event_cb(INT32 type, MTK_WCN_STP_EVENT_CB func);
- extern INT32 _mtk_wcn_stp_register_if_tx(ENUM_STP_TX_IF_TYPE stp_if, MTK_WCN_STP_IF_TX func);
- extern INT32 _mtk_wcn_stp_register_if_rx(MTK_WCN_STP_IF_RX func);
- extern INT32 _mtk_wcn_stp_coredump_start_get(VOID);
- #endif
- /*****************************************************************************
- * FUNCTION
- * mtk_wcn_stp_read_fw_cpupcr
- * DESCRIPTION
- * read firmware cpupcr for debug.
- * PARAMETERS
- * VOID
- * RETURNS
- * VOID.
- * *****************************************************************************/
- extern VOID mtk_wcn_stp_read_fw_cpupcr(VOID);
- #endif /* _WMT_EXP_H_ */
|