stack_config.c 1.3 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455
  1. /*
  2. * SPDX-FileCopyrightText: 2022-2023 Espressif Systems (Shanghai) CO LTD
  3. *
  4. * SPDX-License-Identifier: Apache-2.0
  5. */
  6. #include <string.h>
  7. #include "osi/allocator.h"
  8. #include "esp_bt_main.h"
  9. #include "config/stack_config.h"
  10. struct stack_config_env_tag {
  11. esp_bluedroid_config_t cfg;
  12. struct bluedroid_config interface;
  13. };
  14. static struct stack_config_env_tag *s_stack_config_env = NULL;
  15. static bool get_ssp_enabled(void)
  16. {
  17. assert(s_stack_config_env);
  18. esp_bluedroid_config_t *cfg = &s_stack_config_env->cfg;
  19. return cfg->ssp_en;
  20. }
  21. bt_status_t bluedriod_config_init(esp_bluedroid_config_t *cfg)
  22. {
  23. s_stack_config_env = osi_calloc(sizeof(struct stack_config_env_tag));
  24. if (!s_stack_config_env) {
  25. return BT_STATUS_NOMEM;
  26. }
  27. memcpy(&s_stack_config_env->cfg, cfg, sizeof(esp_bluedroid_config_t));
  28. struct bluedroid_config *interface = &s_stack_config_env->interface;
  29. interface->get_ssp_enabled = get_ssp_enabled;
  30. return BT_STATUS_SUCCESS;
  31. }
  32. void bluedriod_config_deinit(void)
  33. {
  34. if (s_stack_config_env) {
  35. osi_free(s_stack_config_env);
  36. s_stack_config_env = NULL;
  37. }
  38. }
  39. const struct bluedroid_config *bluedriod_config_get(void)
  40. {
  41. assert(s_stack_config_env);
  42. return &s_stack_config_env->interface;
  43. }