mirror of
https://github.com/bluekitchen/btstack.git
synced 2025-02-13 15:41:17 +00:00
mesh: provide mesh_virtual_address structs via memory pool
This commit is contained in:
parent
761cd951fb
commit
1f45d60344
@ -1084,6 +1084,52 @@ void btstack_memory_mesh_transport_key_free(mesh_transport_key_t *mesh_transport
|
|||||||
#endif
|
#endif
|
||||||
|
|
||||||
|
|
||||||
|
// MARK: mesh_virtual_address_t
|
||||||
|
#if !defined(HAVE_MALLOC) && !defined(MAX_NR_MESH_VIRTUAL_ADDRESSS)
|
||||||
|
#if defined(MAX_NO_MESH_VIRTUAL_ADDRESSS)
|
||||||
|
#error "Deprecated MAX_NO_MESH_VIRTUAL_ADDRESSS defined instead of MAX_NR_MESH_VIRTUAL_ADDRESSS. Please update your btstack_config.h to use MAX_NR_MESH_VIRTUAL_ADDRESSS."
|
||||||
|
#else
|
||||||
|
#define MAX_NR_MESH_VIRTUAL_ADDRESSS 0
|
||||||
|
#endif
|
||||||
|
#endif
|
||||||
|
|
||||||
|
#ifdef MAX_NR_MESH_VIRTUAL_ADDRESSS
|
||||||
|
#if MAX_NR_MESH_VIRTUAL_ADDRESSS > 0
|
||||||
|
static mesh_virtual_address_t mesh_virtual_address_storage[MAX_NR_MESH_VIRTUAL_ADDRESSS];
|
||||||
|
static btstack_memory_pool_t mesh_virtual_address_pool;
|
||||||
|
mesh_virtual_address_t * btstack_memory_mesh_virtual_address_get(void){
|
||||||
|
void * buffer = btstack_memory_pool_get(&mesh_virtual_address_pool);
|
||||||
|
if (buffer){
|
||||||
|
memset(buffer, 0, sizeof(mesh_virtual_address_t));
|
||||||
|
}
|
||||||
|
return (mesh_virtual_address_t *) buffer;
|
||||||
|
}
|
||||||
|
void btstack_memory_mesh_virtual_address_free(mesh_virtual_address_t *mesh_virtual_address){
|
||||||
|
btstack_memory_pool_free(&mesh_virtual_address_pool, mesh_virtual_address);
|
||||||
|
}
|
||||||
|
#else
|
||||||
|
mesh_virtual_address_t * btstack_memory_mesh_virtual_address_get(void){
|
||||||
|
return NULL;
|
||||||
|
}
|
||||||
|
void btstack_memory_mesh_virtual_address_free(mesh_virtual_address_t *mesh_virtual_address){
|
||||||
|
// silence compiler warning about unused parameter in a portable way
|
||||||
|
(void) mesh_virtual_address;
|
||||||
|
};
|
||||||
|
#endif
|
||||||
|
#elif defined(HAVE_MALLOC)
|
||||||
|
mesh_virtual_address_t * btstack_memory_mesh_virtual_address_get(void){
|
||||||
|
void * buffer = malloc(sizeof(mesh_virtual_address_t));
|
||||||
|
if (buffer){
|
||||||
|
memset(buffer, 0, sizeof(mesh_virtual_address_t));
|
||||||
|
}
|
||||||
|
return (mesh_virtual_address_t *) buffer;
|
||||||
|
}
|
||||||
|
void btstack_memory_mesh_virtual_address_free(mesh_virtual_address_t *mesh_virtual_address){
|
||||||
|
free(mesh_virtual_address);
|
||||||
|
}
|
||||||
|
#endif
|
||||||
|
|
||||||
|
|
||||||
#endif
|
#endif
|
||||||
// init
|
// init
|
||||||
void btstack_memory_init(void){
|
void btstack_memory_init(void){
|
||||||
@ -1158,5 +1204,8 @@ void btstack_memory_init(void){
|
|||||||
#if MAX_NR_MESH_TRANSPORT_KEYS > 0
|
#if MAX_NR_MESH_TRANSPORT_KEYS > 0
|
||||||
btstack_memory_pool_create(&mesh_transport_key_pool, mesh_transport_key_storage, MAX_NR_MESH_TRANSPORT_KEYS, sizeof(mesh_transport_key_t));
|
btstack_memory_pool_create(&mesh_transport_key_pool, mesh_transport_key_storage, MAX_NR_MESH_TRANSPORT_KEYS, sizeof(mesh_transport_key_t));
|
||||||
#endif
|
#endif
|
||||||
|
#if MAX_NR_MESH_VIRTUAL_ADDRESSS > 0
|
||||||
|
btstack_memory_pool_create(&mesh_virtual_address_pool, mesh_virtual_address_storage, MAX_NR_MESH_VIRTUAL_ADDRESSS, sizeof(mesh_virtual_address_t));
|
||||||
|
#endif
|
||||||
#endif
|
#endif
|
||||||
}
|
}
|
||||||
|
@ -77,6 +77,7 @@ extern "C" {
|
|||||||
#ifdef ENABLE_MESH
|
#ifdef ENABLE_MESH
|
||||||
#include "ble/mesh/mesh_network.h"
|
#include "ble/mesh/mesh_network.h"
|
||||||
#include "mesh_keys.h"
|
#include "mesh_keys.h"
|
||||||
|
#include "mesh_virtual_addresses.h"
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
/* API_START */
|
/* API_START */
|
||||||
@ -152,7 +153,7 @@ sm_lookup_entry_t * btstack_memory_sm_lookup_entry_get(void);
|
|||||||
void btstack_memory_sm_lookup_entry_free(sm_lookup_entry_t *sm_lookup_entry);
|
void btstack_memory_sm_lookup_entry_free(sm_lookup_entry_t *sm_lookup_entry);
|
||||||
#endif
|
#endif
|
||||||
#ifdef ENABLE_MESH
|
#ifdef ENABLE_MESH
|
||||||
// mesh_network_pdu, mesh_transport_pdu, mesh_network_key, mesh_transport_key
|
// mesh_network_pdu, mesh_transport_pdu, mesh_network_key, mesh_transport_key, mesh_virtual_address
|
||||||
mesh_network_pdu_t * btstack_memory_mesh_network_pdu_get(void);
|
mesh_network_pdu_t * btstack_memory_mesh_network_pdu_get(void);
|
||||||
void btstack_memory_mesh_network_pdu_free(mesh_network_pdu_t *mesh_network_pdu);
|
void btstack_memory_mesh_network_pdu_free(mesh_network_pdu_t *mesh_network_pdu);
|
||||||
mesh_transport_pdu_t * btstack_memory_mesh_transport_pdu_get(void);
|
mesh_transport_pdu_t * btstack_memory_mesh_transport_pdu_get(void);
|
||||||
@ -161,6 +162,8 @@ mesh_network_key_t * btstack_memory_mesh_network_key_get(void);
|
|||||||
void btstack_memory_mesh_network_key_free(mesh_network_key_t *mesh_network_key);
|
void btstack_memory_mesh_network_key_free(mesh_network_key_t *mesh_network_key);
|
||||||
mesh_transport_key_t * btstack_memory_mesh_transport_key_get(void);
|
mesh_transport_key_t * btstack_memory_mesh_transport_key_get(void);
|
||||||
void btstack_memory_mesh_transport_key_free(mesh_transport_key_t *mesh_transport_key);
|
void btstack_memory_mesh_transport_key_free(mesh_transport_key_t *mesh_transport_key);
|
||||||
|
mesh_virtual_address_t * btstack_memory_mesh_virtual_address_get(void);
|
||||||
|
void btstack_memory_mesh_virtual_address_free(mesh_virtual_address_t *mesh_virtual_address);
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
#if defined __cplusplus
|
#if defined __cplusplus
|
||||||
|
@ -30,6 +30,7 @@
|
|||||||
|
|
||||||
#define MAX_NR_LE_DEVICE_DB_ENTRIES 4
|
#define MAX_NR_LE_DEVICE_DB_ENTRIES 4
|
||||||
#define MAX_NR_MESH_TRANSPORT_KEYS 16
|
#define MAX_NR_MESH_TRANSPORT_KEYS 16
|
||||||
|
#define MAX_NR_MESH_VIRTUAL_ADDRESSES 16
|
||||||
|
|
||||||
#define NVM_NUM_LINK_KEYS 2
|
#define NVM_NUM_LINK_KEYS 2
|
||||||
|
|
||||||
|
@ -85,6 +85,7 @@ extern "C" {
|
|||||||
#ifdef ENABLE_MESH
|
#ifdef ENABLE_MESH
|
||||||
#include "ble/mesh/mesh_network.h"
|
#include "ble/mesh/mesh_network.h"
|
||||||
#include "mesh_keys.h"
|
#include "mesh_keys.h"
|
||||||
|
#include "mesh_virtual_addresses.h"
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
/* API_START */
|
/* API_START */
|
||||||
@ -209,7 +210,7 @@ list_of_le_structs = [
|
|||||||
["gatt_client", "whitelist_entry", "sm_lookup_entry"],
|
["gatt_client", "whitelist_entry", "sm_lookup_entry"],
|
||||||
]
|
]
|
||||||
list_of_mesh_structs = [
|
list_of_mesh_structs = [
|
||||||
['mesh_network_pdu', 'mesh_transport_pdu', 'mesh_network_key', 'mesh_transport_key']
|
['mesh_network_pdu', 'mesh_transport_pdu', 'mesh_network_key', 'mesh_transport_key', 'mesh_virtual_address']
|
||||||
]
|
]
|
||||||
|
|
||||||
btstack_root = os.path.abspath(os.path.dirname(sys.argv[0]) + '/..')
|
btstack_root = os.path.abspath(os.path.dirname(sys.argv[0]) + '/..')
|
||||||
|
Loading…
x
Reference in New Issue
Block a user