From 1ac69172e4cfe32aa910ed28fb23166ad9f0ff42 Mon Sep 17 00:00:00 2001 From: Matthias Ringwald Date: Mon, 11 Jan 2021 18:26:47 +0100 Subject: [PATCH] rfcomm: support de-inint --- src/classic/rfcomm.c | 16 +++++++++++++--- src/classic/rfcomm.h | 5 +++++ 2 files changed, 18 insertions(+), 3 deletions(-) diff --git a/src/classic/rfcomm.c b/src/classic/rfcomm.c index 5a0773b8b..22773abd4 100644 --- a/src/classic/rfcomm.c +++ b/src/classic/rfcomm.c @@ -164,9 +164,9 @@ typedef struct rfcomm_channel_event_msc { static uint16_t rfcomm_client_cid_generator; // used for client channel IDs // linked lists for all -static btstack_linked_list_t rfcomm_multiplexers = NULL; -static btstack_linked_list_t rfcomm_channels = NULL; -static btstack_linked_list_t rfcomm_services = NULL; +static btstack_linked_list_t rfcomm_multiplexers; +static btstack_linked_list_t rfcomm_channels; +static btstack_linked_list_t rfcomm_services; static gap_security_level_t rfcomm_security_level; @@ -2187,6 +2187,16 @@ void rfcomm_init(void){ rfcomm_services = NULL; rfcomm_channels = NULL; rfcomm_security_level = gap_get_security_level(); +#ifdef RFCOMM_USE_ERTM + rfcomm_ertm_id = 0; +#endif +} + +void rfcomm_deinit(void){ +#ifdef RFCOMM_USE_ERTM + rfcomm_ertm_request_callback = NULL; + rfcomm_ertm_released_callback = NULL; +#endif } void rfcomm_set_required_security_level(gap_security_level_t security_level){ diff --git a/src/classic/rfcomm.h b/src/classic/rfcomm.h index cb77cc440..f69afb10e 100644 --- a/src/classic/rfcomm.h +++ b/src/classic/rfcomm.h @@ -429,6 +429,11 @@ void rfcomm_release_packet_buffer(void); */ void rfcomm_enable_l2cap_ertm(void request_callback(rfcomm_ertm_request_t * request), void released_callback(uint16_t ertm_id)); +/** + * @brief De-Init RFCOMM + */ +void rfcomm_deinit(void); + /* API_END */ #if defined __cplusplus