|
|
@@ -89,7 +89,7 @@ do{\
|
|
|
} while(0)
|
|
|
|
|
|
#define OSI_FUNCS_TIME_BLOCKING 0xffffffff
|
|
|
-#define OSI_VERSION 0x00010003
|
|
|
+#define OSI_VERSION 0x00010004
|
|
|
#define OSI_MAGIC_VALUE 0xFADEBEAD
|
|
|
|
|
|
/* Types definition
|
|
|
@@ -176,6 +176,7 @@ struct osi_funcs_t {
|
|
|
void (*_interrupt_l3_disable)(void);
|
|
|
void (*_interrupt_l3_restore)(void);
|
|
|
void *(* _customer_queue_create)(uint32_t queue_len, uint32_t item_size);
|
|
|
+ int (* _coex_version_get)(unsigned int *major, unsigned int *minor, unsigned int *patch);
|
|
|
uint32_t _magic;
|
|
|
};
|
|
|
|
|
|
@@ -320,6 +321,7 @@ static uint8_t coex_schm_curr_period_get_wrapper(void);
|
|
|
static void * coex_schm_curr_phase_get_wrapper(void);
|
|
|
static int coex_wifi_channel_get_wrapper(uint8_t *primary, uint8_t *secondary);
|
|
|
static int coex_register_wifi_channel_change_callback_wrapper(void *cb);
|
|
|
+static int coex_version_get_wrapper(unsigned int *major, unsigned int *minor, unsigned int *patch);
|
|
|
#if CONFIG_BTDM_CTRL_HLI
|
|
|
static void *customer_queue_create_hlevel_wrapper(uint32_t queue_len, uint32_t item_size);
|
|
|
#endif /* CONFIG_BTDM_CTRL_HLI */
|
|
|
@@ -412,6 +414,7 @@ static const struct osi_funcs_t osi_funcs_ro = {
|
|
|
#else
|
|
|
._customer_queue_create = NULL,
|
|
|
#endif /* CONFIG_BTDM_CTRL_HLI */
|
|
|
+ ._coex_version_get = coex_version_get_wrapper,
|
|
|
._magic = OSI_MAGIC_VALUE,
|
|
|
};
|
|
|
|
|
|
@@ -1231,6 +1234,30 @@ static int coex_register_wifi_channel_change_callback_wrapper(void *cb)
|
|
|
#endif
|
|
|
}
|
|
|
|
|
|
+static int coex_version_get_wrapper(unsigned int *major, unsigned int *minor, unsigned int *patch)
|
|
|
+{
|
|
|
+#if CONFIG_SW_COEXIST_ENABLE
|
|
|
+ const char *ver_str = esp_coex_version_get();
|
|
|
+ if (ver_str != NULL) {
|
|
|
+ unsigned int _major = 0, _minor = 0, _patch = 0;
|
|
|
+ if (sscanf(ver_str, "%u.%u.%u", &_major, &_minor, &_patch) != 3) {
|
|
|
+ return -1;
|
|
|
+ }
|
|
|
+ if (major != NULL) {
|
|
|
+ *major = _major;
|
|
|
+ }
|
|
|
+ if (minor != NULL) {
|
|
|
+ *minor = _minor;
|
|
|
+ }
|
|
|
+ if (patch != NULL) {
|
|
|
+ *patch = _patch;
|
|
|
+ }
|
|
|
+ return 0;
|
|
|
+ }
|
|
|
+#endif
|
|
|
+ return -1;
|
|
|
+}
|
|
|
+
|
|
|
bool esp_vhci_host_check_send_available(void)
|
|
|
{
|
|
|
return API_vhci_host_check_send_available();
|