diff options
Diffstat (limited to 'lib/bt/host/bluedroid/config/stack_config.c')
| -rw-r--r-- | lib/bt/host/bluedroid/config/stack_config.c | 55 |
1 files changed, 55 insertions, 0 deletions
diff --git a/lib/bt/host/bluedroid/config/stack_config.c b/lib/bt/host/bluedroid/config/stack_config.c new file mode 100644 index 00000000..66d04a63 --- /dev/null +++ b/lib/bt/host/bluedroid/config/stack_config.c @@ -0,0 +1,55 @@ +/* + * SPDX-FileCopyrightText: 2022-2023 Espressif Systems (Shanghai) CO LTD + * + * SPDX-License-Identifier: Apache-2.0 + */ + +#include <string.h> + +#include "osi/allocator.h" +#include "esp_bt_main.h" + +#include "config/stack_config.h" + +struct stack_config_env_tag { + esp_bluedroid_config_t cfg; + struct bluedroid_config interface; +}; + +static struct stack_config_env_tag *s_stack_config_env = NULL; + +static bool get_ssp_enabled(void) +{ + assert(s_stack_config_env); + esp_bluedroid_config_t *cfg = &s_stack_config_env->cfg; + return cfg->ssp_en; +} + +bt_status_t bluedriod_config_init(esp_bluedroid_config_t *cfg) +{ + s_stack_config_env = osi_calloc(sizeof(struct stack_config_env_tag)); + if (!s_stack_config_env) { + return BT_STATUS_NOMEM; + } + + memcpy(&s_stack_config_env->cfg, cfg, sizeof(esp_bluedroid_config_t)); + + struct bluedroid_config *interface = &s_stack_config_env->interface; + interface->get_ssp_enabled = get_ssp_enabled; + + return BT_STATUS_SUCCESS; +} + +void bluedriod_config_deinit(void) +{ + if (s_stack_config_env) { + osi_free(s_stack_config_env); + s_stack_config_env = NULL; + } +} + +const struct bluedroid_config *bluedriod_config_get(void) +{ + assert(s_stack_config_env); + return &s_stack_config_env->interface; +} |
