From 8fb47ab0c2e9e65d749cabd6f95e7e2e707e09ab Mon Sep 17 00:00:00 2001 From: weitianhua Date: Thu, 16 Jul 2020 14:47:11 +0800 Subject: [PATCH] Seperate BTA_JV_L2CAP for less bin size --- .../bt/bluedroid/bta/include/bta/bta_jv_api.h | 65 ++++++++++--------- components/bt/bluedroid/bta/jv/bta_jv_act.c | 39 ++++++----- components/bt/bluedroid/bta/jv/bta_jv_api.c | 2 + components/bt/bluedroid/bta/jv/bta_jv_main.c | 4 ++ .../bt/bluedroid/bta/jv/include/bta_jv_int.h | 20 +++++- .../common/include/common/bt_target.h | 28 +++++--- 6 files changed, 102 insertions(+), 56 deletions(-) diff --git a/components/bt/bluedroid/bta/include/bta/bta_jv_api.h b/components/bt/bluedroid/bta/include/bta/bta_jv_api.h index bf23aab4e..7cbf0405c 100644 --- a/components/bt/bluedroid/bta/include/bta/bta_jv_api.h +++ b/components/bt/bluedroid/bta/include/bta/bta_jv_api.h @@ -134,6 +134,7 @@ typedef UINT8 tBTA_JV_CONN_STATE; #define BTA_JV_DISCOVERY_COMP_EVT 8 /* SDP discovery complete */ #define BTA_JV_CREATE_RECORD_EVT 11 /* the result for BTA_JvCreateRecord */ /* events received by tBTA_JV_L2CAP_CBACK */ +#if BTA_JV_L2CAP_INCLUDED #define BTA_JV_L2CAP_OPEN_EVT 16 /* open status of L2CAP connection */ #define BTA_JV_L2CAP_CLOSE_EVT 17 /* L2CAP connection closed */ #define BTA_JV_L2CAP_START_EVT 18 /* L2CAP server started */ @@ -144,6 +145,7 @@ typedef UINT8 tBTA_JV_CONN_STATE; #define BTA_JV_L2CAP_RECEIVE_EVT 23 /* the result for BTA_JvL2capReceive*/ #define BTA_JV_L2CAP_WRITE_EVT 24 /* the result for BTA_JvL2capWrite*/ #define BTA_JV_L2CAP_WRITE_FIXED_EVT 25 /* the result for BTA_JvL2capWriteFixed */ +#endif /* BTA_JV_L2CAP_INCLUDED */ /* events received by tBTA_JV_RFCOMM_CBACK */ #define BTA_JV_RFCOMM_OPEN_EVT 26 /* open status of RFCOMM Client connection */ @@ -178,6 +180,7 @@ typedef struct { UINT32 handle; /* The SDP handle */ } tBTA_JV_CREATE_RECORD; +#if BTA_JV_L2CAP_INCLUDED /* data associated with BTA_JV_L2CAP_OPEN_EVT */ typedef struct { tBTA_JV_STATUS status; /* Whether the operation succeeded or failed. */ @@ -186,18 +189,6 @@ typedef struct { INT32 tx_mtu; /* The transmit MTU */ } tBTA_JV_L2CAP_OPEN; -/* data associated with BTA_JV_L2CAP_OPEN_EVT for LE sockets */ -typedef struct { - tBTA_JV_STATUS status; /* Whether the operation succeeded or failed. */ - UINT32 handle; /* The connection handle */ - BD_ADDR rem_bda; /* The peer address */ - INT32 tx_mtu; /* The transmit MTU */ - void **p_p_cback; /* set them for new socket */ - void **p_user_data;/* set them for new socket */ - -} tBTA_JV_L2CAP_LE_OPEN; - - /* data associated with BTA_JV_L2CAP_CLOSE_EVT */ typedef struct { tBTA_JV_STATUS status; /* Whether the operation succeeded or failed. */ @@ -255,6 +246,22 @@ typedef struct { BOOLEAN cong; /* congestion status */ } tBTA_JV_L2CAP_WRITE; +/* data associated with BTA_JV_L2CAP_OPEN_EVT for LE sockets */ +typedef struct { + tBTA_JV_STATUS status; /* Whether the operation succeeded or failed. */ + UINT32 handle; /* The connection handle */ + BD_ADDR rem_bda; /* The peer address */ + INT32 tx_mtu; /* The transmit MTU */ + void **p_p_cback; /* set them for new socket */ + void **p_user_data;/* set them for new socket */ + +} tBTA_JV_L2CAP_LE_OPEN; + +/*data associated with BTA_JV_L2CAP_DATA_IND_EVT if used for LE */ +typedef struct { + UINT32 handle; /* The connection handle */ + BT_HDR *p_buf; /* The incoming data */ +} tBTA_JV_LE_DATA_IND; /* data associated with BTA_JV_L2CAP_WRITE_FIXED_EVT */ typedef struct { @@ -265,6 +272,7 @@ typedef struct { UINT16 len; /* The length of the data written. */ BOOLEAN cong; /* congestion status */ } tBTA_JV_L2CAP_WRITE_FIXED; +#endif /* BTA_JV_L2CAP_INCLUDED */ /* data associated with BTA_JV_RFCOMM_OPEN_EVT */ typedef struct { @@ -272,6 +280,7 @@ typedef struct { UINT32 handle; /* The connection handle */ BD_ADDR rem_bda; /* The peer address */ } tBTA_JV_RFCOMM_OPEN; + /* data associated with BTA_JV_RFCOMM_SRV_OPEN_EVT */ typedef struct { tBTA_JV_STATUS status; /* Whether the operation succeeded or failed. */ @@ -280,7 +289,6 @@ typedef struct { BD_ADDR rem_bda; /* The peer address */ } tBTA_JV_RFCOMM_SRV_OPEN; - /* data associated with BTA_JV_RFCOMM_CLOSE_EVT */ typedef struct { tBTA_JV_STATUS status; /* Whether the operation succeeded or failed. */ @@ -304,19 +312,13 @@ typedef struct { UINT8 sec_id; /* security ID used by this client */ BOOLEAN use_co; /* TRUE to use co_rfc_data */ } tBTA_JV_RFCOMM_CL_INIT; + /*data associated with BTA_JV_L2CAP_DATA_IND_EVT & BTA_JV_RFCOMM_DATA_IND_EVT */ typedef struct { UINT32 handle; /* The connection handle */ BT_HDR *p_buf; /* The incoming data */ } tBTA_JV_DATA_IND; -/*data associated with BTA_JV_L2CAP_DATA_IND_EVT if used for LE */ -typedef struct { - UINT32 handle; /* The connection handle */ - BT_HDR *p_buf; /* The incoming data */ -} tBTA_JV_LE_DATA_IND; - - /* data associated with BTA_JV_RFCOMM_CONG_EVT */ typedef struct { tBTA_JV_STATUS status; /* Whether the operation succeeded or failed. */ @@ -365,6 +367,7 @@ typedef union { UINT8 scn; /* BTA_JV_GET_SCN_EVT */ UINT16 psm; /* BTA_JV_GET_PSM_EVT */ tBTA_JV_CREATE_RECORD create_rec; /* BTA_JV_CREATE_RECORD_EVT */ +#if BTA_JV_L2CAP_INCLUDED tBTA_JV_L2CAP_OPEN l2c_open; /* BTA_JV_L2CAP_OPEN_EVT */ tBTA_JV_L2CAP_CLOSE l2c_close; /* BTA_JV_L2CAP_CLOSE_EVT */ tBTA_JV_L2CAP_START l2c_start; /* BTA_JV_L2CAP_START_EVT */ @@ -372,6 +375,7 @@ typedef union { tBTA_JV_L2CAP_CONG l2c_cong; /* BTA_JV_L2CAP_CONG_EVT */ tBTA_JV_L2CAP_READ l2c_read; /* BTA_JV_L2CAP_READ_EVT */ tBTA_JV_L2CAP_WRITE l2c_write; /* BTA_JV_L2CAP_WRITE_EVT */ +#endif /* BTA_JV_L2CAP_INCLUDED */ tBTA_JV_RFCOMM_OPEN rfc_open; /* BTA_JV_RFCOMM_OPEN_EVT */ tBTA_JV_RFCOMM_SRV_OPEN rfc_srv_open; /* BTA_JV_RFCOMM_SRV_OPEN_EVT */ tBTA_JV_RFCOMM_CLOSE rfc_close; /* BTA_JV_RFCOMM_CLOSE_EVT */ @@ -382,9 +386,11 @@ typedef union { tBTA_JV_RFCOMM_WRITE rfc_write; /* BTA_JV_RFCOMM_WRITE_EVT */ tBTA_JV_DATA_IND data_ind; /* BTA_JV_L2CAP_DATA_IND_EVT BTA_JV_RFCOMM_DATA_IND_EVT */ - tBTA_JV_LE_DATA_IND le_data_ind; /* BTA_JV_L2CAP_LE_DATA_IND_EVT */ +#if BTA_JV_L2CAP_INCLUDED tBTA_JV_L2CAP_LE_OPEN l2c_le_open; /* BTA_JV_L2CAP_OPEN_EVT */ + tBTA_JV_LE_DATA_IND le_data_ind; /* BTA_JV_L2CAP_LE_DATA_IND_EVT */ tBTA_JV_L2CAP_WRITE_FIXED l2c_write_fixed; /* BTA_JV_L2CAP_WRITE_FIXED_EVT */ +#endif } tBTA_JV; /* JAVA DM Interface callback */ @@ -393,8 +399,10 @@ typedef void (tBTA_JV_DM_CBACK)(tBTA_JV_EVT event, tBTA_JV *p_data, void *user_d /* JAVA RFCOMM interface callback */ typedef void *(tBTA_JV_RFCOMM_CBACK)(tBTA_JV_EVT event, tBTA_JV *p_data, void *user_data); +#if BTA_JV_L2CAP_INCLUDED /* JAVA L2CAP interface callback */ typedef void (tBTA_JV_L2CAP_CBACK)(tBTA_JV_EVT event, tBTA_JV *p_data, void *user_Data); +#endif /* BTA_JV_L2CAP_INCLUDED */ /* JV configuration structure */ typedef struct { @@ -532,6 +540,7 @@ extern tBTA_JV_STATUS BTA_JvCreateRecordByUser(const char *name, UINT32 channel, *******************************************************************************/ extern tBTA_JV_STATUS BTA_JvDeleteRecord(UINT32 handle); +#if BTA_JV_L2CAP_INCLUDED /******************************************************************************* ** ** Function BTA_JvL2capConnectLE @@ -739,6 +748,7 @@ extern tBTA_JV_STATUS BTA_JvL2capWrite(UINT32 handle, UINT32 req_id, extern tBTA_JV_STATUS BTA_JvL2capWriteFixed(UINT16 channel, BD_ADDR *addr, UINT32 req_id, tBTA_JV_L2CAP_CBACK *p_cback, UINT8 *p_data, UINT16 len, void *user_data); +#endif /* BTA_JV_L2CAP_INCLUDED */ /******************************************************************************* ** @@ -786,9 +796,9 @@ extern tBTA_JV_STATUS BTA_JvRfcommClose(UINT32 handle, void *user_data); ** BTA_JV_FAILURE, otherwise. ** *******************************************************************************/ -extern tBTA_JV_STATUS BTA_JvRfcommStartServer(tBTA_SEC sec_mask, - tBTA_JV_ROLE role, UINT8 local_scn, UINT8 max_session, - tBTA_JV_RFCOMM_CBACK *p_cback, void *user_data); +extern tBTA_JV_STATUS BTA_JvRfcommStartServer(tBTA_SEC sec_mask, tBTA_JV_ROLE role, + UINT8 local_scn, UINT8 max_session, + tBTA_JV_RFCOMM_CBACK *p_cback, void *user_data); /******************************************************************************* ** @@ -815,8 +825,7 @@ extern tBTA_JV_STATUS BTA_JvRfcommStopServer(UINT32 handle, void *user_data); ** BTA_JV_FAILURE, otherwise. ** *******************************************************************************/ -extern tBTA_JV_STATUS BTA_JvRfcommRead(UINT32 handle, UINT32 req_id, - UINT8 *p_data, UINT16 len); +extern tBTA_JV_STATUS BTA_JvRfcommRead(UINT32 handle, UINT32 req_id, UINT8 *p_data, UINT16 len); /******************************************************************************* ** @@ -843,7 +852,6 @@ extern tBTA_JV_STATUS BTA_JvRfcommReady(UINT32 handle, UINT32 *p_data_size); ** BTA_JV_FAILURE, otherwise. ** *******************************************************************************/ -// extern tBTA_JV_STATUS BTA_JvRfcommWrite(UINT32 handle, UINT32 req_id); extern tBTA_JV_STATUS BTA_JvRfcommWrite(UINT32 handle, UINT32 req_id, int len, UINT8 *p_data); /******************************************************************************* @@ -865,8 +873,7 @@ extern tBTA_JV_STATUS BTA_JvRfcommWrite(UINT32 handle, UINT32 req_id, int len, U ** BTA_JV_CONN_CLOSE to remove in case of connection close! ** *******************************************************************************/ -extern tBTA_JV_STATUS BTA_JvSetPmProfile(UINT32 handle, tBTA_JV_PM_ID app_id, - tBTA_JV_CONN_STATE init_st); +extern tBTA_JV_STATUS BTA_JvSetPmProfile(UINT32 handle, tBTA_JV_PM_ID app_id, tBTA_JV_CONN_STATE init_st); /******************************************************************************* ** diff --git a/components/bt/bluedroid/bta/jv/bta_jv_act.c b/components/bt/bluedroid/bta/jv/bta_jv_act.c index ecef90b12..33132fe7f 100644 --- a/components/bt/bluedroid/bta/jv/bta_jv_act.c +++ b/components/bt/bluedroid/bta/jv/bta_jv_act.c @@ -48,6 +48,7 @@ #if (defined BTA_JV_INCLUDED && BTA_JV_INCLUDED == TRUE) +#if BTA_JV_L2CAP_INCLUDED /* one of these exists for each client */ struct fc_client { struct fc_client *next_all_list; @@ -92,11 +93,10 @@ static void __attribute__((unused)) fc_init(void) pthread_once(&fc_init_once, fc_init_work); } - static void fcchan_conn_chng_cbk(UINT16 chan, BD_ADDR bd_addr, BOOLEAN connected, UINT16 reason, tBT_TRANSPORT ); static void fcchan_data_cbk(UINT16 chan, BD_ADDR bd_addr, BT_HDR *p_buf); - +#endif /* BTA_JV_L2CAP_INCLUDED */ extern void uuid_to_string_legacy(bt_uuid_t *p_uuid, char *str); static inline void logu(const char *title, const uint8_t *p_uuid) @@ -112,8 +112,7 @@ static tBTA_JV_STATUS bta_jv_free_set_pm_profile_cb(UINT32 jv_handle); static void bta_jv_pm_conn_busy(tBTA_JV_PM_CB *p_cb); static void bta_jv_pm_conn_idle(tBTA_JV_PM_CB *p_cb); static void bta_jv_pm_state_change(tBTA_JV_PM_CB *p_cb, const tBTA_JV_CONN_STATE state); -tBTA_JV_STATUS bta_jv_set_pm_conn_state(tBTA_JV_PM_CB *p_cb, const tBTA_JV_CONN_STATE - new_st); +tBTA_JV_STATUS bta_jv_set_pm_conn_state(tBTA_JV_PM_CB *p_cb, const tBTA_JV_CONN_STATE new_st); /******************************************************************************* ** @@ -377,6 +376,7 @@ static tBTA_JV_STATUS bta_jv_free_rfc_cb(tBTA_JV_RFC_CB *p_cb, tBTA_JV_PCB *p_pc return status; } +#if BTA_JV_L2CAP_INCLUDED /******************************************************************************* ** ** Function bta_jv_free_l2c_cb @@ -402,6 +402,7 @@ tBTA_JV_STATUS bta_jv_free_l2c_cb(tBTA_JV_L2C_CB *p_cb) p_cb->p_cback = NULL; return status; } +#endif /* BTA_JV_L2CAP_INCLUDED */ /******************************************************************************* ** @@ -456,10 +457,9 @@ static tBTA_JV_STATUS bta_jv_free_set_pm_profile_cb(UINT32 jv_handle) } } - APPL_TRACE_API("%s(jv_handle: 0x%2x), idx: %d, " - "app_id: 0x%x", __func__, jv_handle, i, bta_jv_cb.pm_cb[i].app_id); - APPL_TRACE_API("%s, bd_counter = %d, " - "appid_counter = %d", __func__, bd_counter, appid_counter); + APPL_TRACE_API("%s(jv_handle: 0x%2x), idx: %d, app_id: 0x%x", __func__, jv_handle, i, bta_jv_cb.pm_cb[i].app_id); + APPL_TRACE_API("%s, bd_counter = %d, appid_counter = %d", __func__, bd_counter, appid_counter); + if (bd_counter > 1) { bta_jv_pm_conn_idle(&bta_jv_cb.pm_cb[i]); } @@ -478,14 +478,15 @@ static tBTA_JV_STATUS bta_jv_free_set_pm_profile_cb(UINT32 jv_handle) tBTA_JV_PCB *p_pcb = bta_jv_rfc_port_to_pcb(bta_jv_cb.rfc_cb[hi].rfc_hdl[si]); if (p_pcb) { if (NULL == p_pcb->p_pm_cb) { - APPL_TRACE_WARNING("%s(jv_handle:" - " 0x%x):port_handle: 0x%x, p_pm_cb: %d: no link to " - "pm_cb?", __func__, jv_handle, p_pcb->port_handle, i); + APPL_TRACE_WARNING("%s(jv_handle: 0x%x):port_handle: 0x%x, p_pm_cb: %d: no link to pm_cb?", + __func__, jv_handle, p_pcb->port_handle, i); } p_cb = &p_pcb->p_pm_cb; } } - } else { + } +#if BTA_JV_L2CAP_INCLUDED + else { if (jv_handle < BTA_JV_MAX_L2C_CONN) { tBTA_JV_L2C_CB *p_l2c_cb = &bta_jv_cb.l2c_cb[jv_handle]; if (NULL == p_l2c_cb->p_pm_cb) { @@ -495,6 +496,8 @@ static tBTA_JV_STATUS bta_jv_free_set_pm_profile_cb(UINT32 jv_handle) p_cb = &p_l2c_cb->p_pm_cb; } } +#endif /* BTA_JV_L2CAP_INCLUDED */ + if (p_cb) { *p_cb = NULL; status = BTA_JV_SUCCESS; @@ -537,7 +540,9 @@ static tBTA_JV_PM_CB *bta_jv_alloc_set_pm_profile_cb(UINT32 jv_handle, tBTA_JV_P break; } } - } else { + } +#if BTA_JV_L2CAP_INCLUDED + else { /* use jv handle for l2cap bd address retrieval */ for (j = 0; j < BTA_JV_MAX_L2C_CONN; j++) { if (jv_handle == bta_jv_cb.l2c_cb[j].handle) { @@ -552,6 +557,7 @@ static tBTA_JV_PM_CB *bta_jv_alloc_set_pm_profile_cb(UINT32 jv_handle, tBTA_JV_P } } } +#endif /* BTA_JV_L2CAP_INCLUDED */ APPL_TRACE_API("bta_jv_alloc_set_pm_profile_cb(handle 0x%2x, app_id %d): " "idx: %d, (BTA_JV_PM_MAX_NUM: %d), pp_cb: %p", jv_handle, app_id, i, BTA_JV_PM_MAX_NUM, (void *)pp_cb); @@ -634,7 +640,6 @@ BOOLEAN bta_jv_check_psm(UINT16 psm) } } return ret; - } /******************************************************************************* @@ -1092,6 +1097,7 @@ void bta_jv_delete_record(tBTA_JV_MSG *p_data) } } +#if BTA_JV_L2CAP_INCLUDED /******************************************************************************* ** ** Function bta_jv_l2cap_client_cback @@ -1517,6 +1523,7 @@ void bta_jv_l2cap_write_fixed(tBTA_JV_MSG *p_data) ls->p_cback(BTA_JV_L2CAP_WRITE_FIXED_EVT, (tBTA_JV *)&evt_data, ls->user_data); } +#endif /* BTA_JV_L2CAP_INCLUDED */ /******************************************************************************* ** @@ -2351,7 +2358,7 @@ static void bta_jv_pm_state_change(tBTA_JV_PM_CB *p_cb, const tBTA_JV_CONN_STATE } /**********************************************************************************************/ - +#if BTA_JV_L2CAP_INCLUDED static struct fc_channel *fcchan_get(uint16_t chan, char create) { struct fc_channel *t = fc_channels; @@ -2791,6 +2798,6 @@ extern void bta_jv_l2cap_close_fixed (tBTA_JV_MSG *p_data) fcclient_free(t); } } - +#endif /* BTA_JV_L2CAP_INCLUDED */ #endif ///defined BTA_JV_INCLUDED && BTA_JV_INCLUDED == TRUE diff --git a/components/bt/bluedroid/bta/jv/bta_jv_api.c b/components/bt/bluedroid/bta/jv/bta_jv_api.c index 5430d36bc..5cb5d8706 100644 --- a/components/bt/bluedroid/bta/jv/bta_jv_api.c +++ b/components/bt/bluedroid/bta/jv/bta_jv_api.c @@ -310,6 +310,7 @@ tBTA_JV_STATUS BTA_JvDeleteRecord(UINT32 handle) return (status); } +#if BTA_JV_L2CAP_INCLUDED /******************************************************************************* ** ** Function BTA_JvL2capConnectLE @@ -823,6 +824,7 @@ tBTA_JV_STATUS BTA_JvL2capWriteFixed(UINT16 channel, BD_ADDR *addr, UINT32 req_i return (status); } +#endif /* BTA_JV_L2CAP_INCLUDED */ /******************************************************************************* ** diff --git a/components/bt/bluedroid/bta/jv/bta_jv_main.c b/components/bt/bluedroid/bta/jv/bta_jv_main.c index 9523d6e89..ec13d73ba 100644 --- a/components/bt/bluedroid/bta/jv/bta_jv_main.c +++ b/components/bt/bluedroid/bta/jv/bta_jv_main.c @@ -52,12 +52,14 @@ const tBTA_JV_ACTION bta_jv_action[] = { bta_jv_start_discovery, /* BTA_JV_API_START_DISCOVERY_EVT */ bta_jv_create_record, /* BTA_JV_API_CREATE_RECORD_EVT */ bta_jv_delete_record, /* BTA_JV_API_DELETE_RECORD_EVT */ +#if BTA_JV_L2CAP_INCLUDED bta_jv_l2cap_connect, /* BTA_JV_API_L2CAP_CONNECT_EVT */ bta_jv_l2cap_close, /* BTA_JV_API_L2CAP_CLOSE_EVT */ bta_jv_l2cap_start_server, /* BTA_JV_API_L2CAP_START_SERVER_EVT */ bta_jv_l2cap_stop_server, /* BTA_JV_API_L2CAP_STOP_SERVER_EVT */ bta_jv_l2cap_read, /* BTA_JV_API_L2CAP_READ_EVT */ bta_jv_l2cap_write, /* BTA_JV_API_L2CAP_WRITE_EVT */ +#endif /* BTA_JV_L2CAP_INCLUDED */ bta_jv_rfcomm_connect, /* BTA_JV_API_RFCOMM_CONNECT_EVT */ bta_jv_rfcomm_close, /* BTA_JV_API_RFCOMM_CLOSE_EVT */ bta_jv_rfcomm_start_server, /* BTA_JV_API_RFCOMM_START_SERVER_EVT */ @@ -66,11 +68,13 @@ const tBTA_JV_ACTION bta_jv_action[] = { bta_jv_rfcomm_write, /* BTA_JV_API_RFCOMM_WRITE_EVT */ bta_jv_set_pm_profile, /* BTA_JV_API_SET_PM_PROFILE_EVT */ bta_jv_change_pm_state, /* BTA_JV_API_PM_STATE_CHANGE_EVT */ +#if BTA_JV_L2CAP_INCLUDED bta_jv_l2cap_connect_le, /* BTA_JV_API_L2CAP_CONNECT_LE_EVT */ bta_jv_l2cap_start_server_le, /* BTA_JV_API_L2CAP_START_SERVER_LE_EVT */ bta_jv_l2cap_stop_server_le, /* BTA_JV_API_L2CAP_STOP_SERVER_LE_EVT */ bta_jv_l2cap_write_fixed, /* BTA_JV_API_L2CAP_WRITE_FIXED_EVT */ bta_jv_l2cap_close_fixed, /* BTA_JV_API_L2CAP_CLOSE_FIXED_EVT */ +#endif /* BTA_JV_L2CAP_INCLUDED */ }; /******************************************************************************* diff --git a/components/bt/bluedroid/bta/jv/include/bta_jv_int.h b/components/bt/bluedroid/bta/jv/include/bta_jv_int.h index c25263314..a822de007 100644 --- a/components/bt/bluedroid/bta/jv/include/bta_jv_int.h +++ b/components/bt/bluedroid/bta/jv/include/bta_jv_int.h @@ -48,12 +48,14 @@ enum { BTA_JV_API_START_DISCOVERY_EVT, BTA_JV_API_CREATE_RECORD_EVT, BTA_JV_API_DELETE_RECORD_EVT, +#if BTA_JV_L2CAP_INCLUDED BTA_JV_API_L2CAP_CONNECT_EVT, BTA_JV_API_L2CAP_CLOSE_EVT, BTA_JV_API_L2CAP_START_SERVER_EVT, BTA_JV_API_L2CAP_STOP_SERVER_EVT, BTA_JV_API_L2CAP_READ_EVT, BTA_JV_API_L2CAP_WRITE_EVT, +#endif /* BTA_JV_L2CAP_INCLUDED */ BTA_JV_API_RFCOMM_CONNECT_EVT, BTA_JV_API_RFCOMM_CLOSE_EVT, BTA_JV_API_RFCOMM_START_SERVER_EVT, @@ -62,11 +64,13 @@ enum { BTA_JV_API_RFCOMM_WRITE_EVT, BTA_JV_API_SET_PM_PROFILE_EVT, BTA_JV_API_PM_STATE_CHANGE_EVT, +#if BTA_JV_L2CAP_INCLUDED BTA_JV_API_L2CAP_CONNECT_LE_EVT, BTA_JV_API_L2CAP_START_SERVER_LE_EVT, BTA_JV_API_L2CAP_STOP_SERVER_LE_EVT, BTA_JV_API_L2CAP_WRITE_FIXED_EVT, BTA_JV_API_L2CAP_CLOSE_FIXED_EVT, +#endif /* BTA_JV_L2CAP_INCLUDED */ BTA_JV_MAX_INT_EVT }; @@ -115,6 +119,8 @@ enum { BTA_JV_ST_SR_CLOSING } ; typedef UINT8 tBTA_JV_STATE; + +#if BTA_JV_L2CAP_INCLUDED #define BTA_JV_ST_CL_MAX BTA_JV_ST_CL_CLOSING /* JV L2CAP control block */ typedef struct { @@ -127,6 +133,7 @@ typedef struct { tBTA_JV_PM_CB *p_pm_cb; /* ptr to pm control block, NULL: unused */ void *user_data; /* user data for callback from higher layers */ } tBTA_JV_L2C_CB; +#endif /* BTA_JV_L2CAP_INCLUDED */ #define BTA_JV_RFC_HDL_MASK 0xFF #define BTA_JV_RFCOMM_MASK 0x80 @@ -156,6 +163,7 @@ typedef struct { int curr_sess; /* current sessions count*/ } tBTA_JV_RFC_CB; +#if BTA_JV_L2CAP_INCLUDED /* data type for BTA_JV_API_L2CAP_CONNECT_EVT & BTA_JV_API_L2CAP_CONNECT_LE_EVT */ typedef struct { BT_HDR hdr; @@ -233,6 +241,7 @@ typedef struct { UINT16 len; void *user_data; } tBTA_JV_API_L2CAP_WRITE_FIXED; +#endif /* BTA_JV_L2CAP_INCLUDED */ /* data type for BTA_JV_API_RFCOMM_CONNECT_EVT */ typedef struct { @@ -345,11 +354,14 @@ typedef union { tBTA_JV_API_FREE_CHANNEL free_channel; tBTA_JV_API_CREATE_RECORD create_record; tBTA_JV_API_ADD_ATTRIBUTE add_attr; +#if BTA_JV_L2CAP_INCLUDED tBTA_JV_API_L2CAP_CONNECT l2cap_connect; tBTA_JV_API_L2CAP_READ l2cap_read; tBTA_JV_API_L2CAP_WRITE l2cap_write; tBTA_JV_API_L2CAP_CLOSE l2cap_close; tBTA_JV_API_L2CAP_SERVER l2cap_server; + tBTA_JV_API_L2CAP_WRITE_FIXED l2cap_write_fixed; +#endif /* BTA_JV_L2CAP_INCLUDED */ tBTA_JV_API_RFCOMM_CONNECT rfcomm_connect; tBTA_JV_API_RFCOMM_READ rfcomm_read; tBTA_JV_API_RFCOMM_WRITE rfcomm_write; @@ -357,7 +369,6 @@ typedef union { tBTA_JV_API_PM_STATE_CHANGE change_pm_state; tBTA_JV_API_RFCOMM_CLOSE rfcomm_close; tBTA_JV_API_RFCOMM_SERVER rfcomm_server; - tBTA_JV_API_L2CAP_WRITE_FIXED l2cap_write_fixed; } tBTA_JV_MSG; /* JV control block */ @@ -368,7 +379,9 @@ typedef struct { UINT32 sdp_handle[BTA_JV_MAX_SDP_REC]; /* SDP records created */ UINT8 *p_sel_raw_data;/* the raw data of last service select */ tBTA_JV_DM_CBACK *p_dm_cback; +#if BTA_JV_L2CAP_INCLUDED tBTA_JV_L2C_CB l2c_cb[BTA_JV_MAX_L2C_CONN]; /* index is GAP handle (index) */ +#endif /* BTA_JV_L2CAP_INCLUDED */ tBTA_JV_RFC_CB rfc_cb[BTA_JV_MAX_RFC_CONN]; tBTA_JV_PCB port_cb[MAX_RFC_PORTS]; /* index of this array is the port_handle, */ @@ -407,12 +420,14 @@ extern void bta_jv_free_scn (tBTA_JV_MSG *p_data); extern void bta_jv_start_discovery (tBTA_JV_MSG *p_data); extern void bta_jv_create_record (tBTA_JV_MSG *p_data); extern void bta_jv_delete_record (tBTA_JV_MSG *p_data); +#if BTA_JV_L2CAP_INCLUDED extern void bta_jv_l2cap_connect (tBTA_JV_MSG *p_data); extern void bta_jv_l2cap_close (tBTA_JV_MSG *p_data); extern void bta_jv_l2cap_start_server (tBTA_JV_MSG *p_data); extern void bta_jv_l2cap_stop_server (tBTA_JV_MSG *p_data); extern void bta_jv_l2cap_read (tBTA_JV_MSG *p_data); extern void bta_jv_l2cap_write (tBTA_JV_MSG *p_data); +#endif /* BTA_JV_L2CAP_INCLUDED */ extern void bta_jv_rfcomm_connect (tBTA_JV_MSG *p_data); extern void bta_jv_rfcomm_close (tBTA_JV_MSG *p_data); extern void bta_jv_rfcomm_start_server (tBTA_JV_MSG *p_data); @@ -421,11 +436,12 @@ extern void bta_jv_rfcomm_read (tBTA_JV_MSG *p_data); extern void bta_jv_rfcomm_write (tBTA_JV_MSG *p_data); extern void bta_jv_set_pm_profile (tBTA_JV_MSG *p_data); extern void bta_jv_change_pm_state(tBTA_JV_MSG *p_data); +#if BTA_JV_L2CAP_INCLUDED extern void bta_jv_l2cap_connect_le (tBTA_JV_MSG *p_data); extern void bta_jv_l2cap_start_server_le (tBTA_JV_MSG *p_data); extern void bta_jv_l2cap_stop_server_le (tBTA_JV_MSG *p_data); extern void bta_jv_l2cap_write_fixed (tBTA_JV_MSG *p_data); extern void bta_jv_l2cap_close_fixed (tBTA_JV_MSG *p_data); - +#endif /* BTA_JV_L2CAP_INCLUDED */ #endif ///defined BTA_JV_INCLUDED && BTA_JV_INCLUDED == TRUE #endif /* BTA_JV_INT_H */ diff --git a/components/bt/bluedroid/common/include/common/bt_target.h b/components/bt/bluedroid/common/include/common/bt_target.h index 4504e0cd8..00b4c6072 100644 --- a/components/bt/bluedroid/common/include/common/bt_target.h +++ b/components/bt/bluedroid/common/include/common/bt_target.h @@ -96,6 +96,12 @@ #endif /* #if CONFIG_CLASSIC_BT_ENABLED */ +/* This is set to enable use of GAP L2CAP connections. */ +#if (VND_BT_JV_BTA_L2CAP == TRUE) +#define BTA_JV_L2CAP_INCLUDED TRUE +#define GAP_CONN_INCLUDED TRUE +#endif /* VND_BT_JV_BTA_L2CAP */ + #ifndef CLASSIC_BT_INCLUDED #define CLASSIC_BT_INCLUDED FALSE #endif /* CLASSIC_BT_INCLUDED */ @@ -293,6 +299,19 @@ #define BTA_SDP_INCLUDED FALSE #endif +/* This is set to enable use of GAP L2CAP connections. */ +#ifndef VND_BT_JV_BTA_L2CAP +#define VND_BT_JV_BTA_L2CAP FALSE +#endif + +#ifndef BTA_JV_L2CAP_INCLUDED +#define BTA_JV_L2CAP_INCLUDED FALSE +#endif + +#ifndef GAP_CONN_INCLUDED +#define GAP_CONN_INCLUDED FALSE +#endif + /****************************************************************************** ** ** Stack-layer components @@ -1710,15 +1729,6 @@ Range: 2 octets #define GAP_INCLUDED TRUE #endif -/* This is set to enable use of GAP L2CAP connections. */ -#ifndef GAP_CONN_INCLUDED -#if (GAP_INCLUDED == TRUE && CLASSIC_BT_INCLUDED == TRUE) -#define GAP_CONN_INCLUDED TRUE -#else -#define GAP_CONN_INCLUDED FALSE -#endif -#endif - /* This is set to enable posting event for data write */ #ifndef GAP_CONN_POST_EVT_INCLUDED #define GAP_CONN_POST_EVT_INCLUDED FALSE