VSF Documented
impl_vsf_pool.inc
Go to the documentation of this file.
1
3
4#if defined(__name) && defined(__type)
5
6
7VSF_CAL_WEAK(VSF_MCONNECT(__name, _pool_init))
8void VSF_MCONNECT(__name, _pool_init)(vsf_pool(__name) *this_ptr, vsf_pool_cfg_t *cfg_ptr)
9{
10 vsf_pool_init( &(this_ptr->use_as__vsf_pool_t),
11 sizeof(__type),
13 cfg_ptr);
14}
15
16void VSF_MCONNECT(__name, _pool_init_ex)( vsf_pool(__name) *this_ptr,
18 vsf_pool_cfg_t *cfg_ptr)
19{
20 vsf_pool_init( &(this_ptr->use_as__vsf_pool_t),
21 sizeof(__type),
23 cfg_ptr);
24}
25
26VSF_CAL_WEAK(VSF_MCONNECT(__name, _pool_add_buffer))
27bool VSF_MCONNECT(__name, _pool_add_buffer)(
28 vsf_pool(__name) *this_ptr, uintptr_t buffer_ptr, uint_fast32_t u32_size)
29{
30 return vsf_pool_add_buffer((vsf_pool_t *)this_ptr, buffer_ptr,
31 u32_size, sizeof(vsf_pool_item(__name)));
32}
33
34VSF_CAL_WEAK(VSF_MCONNECT(__name, _pool_add_buffer_ex))
35VSF_CAL_SECTION(".text." VSF_STR(__name) "_pool_add_buffer_ex")
36bool VSF_MCONNECT(__name, _pool_add_buffer_ex)(
37 vsf_pool(__name) *this_ptr,
38 void *buffer_ptr,
39 uint_fast32_t u32_size,
40 vsf_pool_item_init_evt_handler_t *handler_fn)
41{
43 (vsf_pool_t *)this_ptr, (uintptr_t)buffer_ptr,
44 u32_size,
45 sizeof(vsf_pool_item(__name)),
46 handler_fn);
47}
48
49VSF_CAL_WEAK(VSF_MCONNECT(__name, _pool_alloc))
50__type *VSF_MCONNECT(__name, _pool_alloc)(vsf_pool(__name) *this_ptr)
51{
52 return (__type *)vsf_pool_alloc((vsf_pool_t *)this_ptr);
53}
54
55VSF_CAL_WEAK(VSF_MCONNECT(__name, _pool_free))
56void VSF_MCONNECT(__name, _pool_free)(vsf_pool(__name) *this_ptr, __type *item_ptr)
57{
58 vsf_pool_free((vsf_pool_t *)this_ptr, (uintptr_t)item_ptr);
59}
60
61VSF_CAL_WEAK(VSF_MCONNECT(__name, _get_pool_item_count))
62VSF_CAL_SECTION(".text." VSF_STR(__name) "_get_pool_item_count")
63uint_fast32_t VSF_MCONNECT(__name, _get_pool_item_count)(vsf_pool(__name) *this_ptr)
64{
65 return vsf_pool_get_count((vsf_pool_t *)this_ptr);
66}
67
68VSF_CAL_WEAK(VSF_MCONNECT(__name, _pool_get_region))
69VSF_CAL_SECTION(".text." VSF_STR(__name) "_pool_get_region")
70vsf_protect_region_t *VSF_MCONNECT(__name, _pool_get_region)(vsf_pool(__name) *this_ptr)
71{
72 return vsf_pool_get_region((vsf_pool_t *)this_ptr);
73}
74
76
77#endif
78
79#undef __name
80#undef __type
#define VSF_CAL_ALIGN_OF(__TYPE)
Definition __compiler.h:188
#define VSF_CAL_SECTION(__SEC)
Definition __compiler.h:181
#define VSF_STR(__STRING)
Definition __type.h:140
#define vsf_max(__a, __b)
Definition __type.h:151
struct VSF_MCONNECT(VSF_FLASH_CFG_IMP_PREFIX, _flash_t)
Definition flash.c:53
#define __type
Definition hci_transport_aic8800.c:553
#define __name
Definition hci_transport_aic8800.c:552
uint32_t uintptr_t
Definition stdint.h:38
unsigned int uint_fast32_t
Definition stdint.h:27
unsigned short uint_fast16_t
Definition stdint.h:25
Definition vsf_arch_abstraction.h:54
uintptr_t vsf_pool_alloc(vsf_pool_t *obj_ptr)
try to fetch a memory block from the target pool !
Definition vsf_pool.c:232
vsf_protect_region_t * vsf_pool_get_region(vsf_pool_t *obj_ptr)
get the address of the code region used by this pool !
Definition vsf_pool.c:413
bool vsf_pool_add_buffer_ex(vsf_pool_t *obj_ptr, uintptr_t buffer_ptr, uint32_t buffer_size, uint32_t item_size, vsf_pool_item_init_evt_handler_t *item_init_fn)
add memory to pool !
Definition vsf_pool.c:301
bool vsf_pool_add_buffer(vsf_pool_t *this_ptr, uintptr_t buffer_ptr, uint32_t buffer_size, uint32_t item_size)
add memory to pool !
Definition vsf_pool.c:194
uint_fast16_t vsf_pool_get_count(vsf_pool_t *obj_ptr)
get the number of memory blocks available in the target pool !
Definition vsf_pool.c:371
void vsf_pool_free(vsf_pool_t *obj_ptr, uintptr_t pItem)
return a memory block to the target pool !
Definition vsf_pool.c:352
void vsf_pool_init(vsf_pool_t *obj_ptr, uint32_t item_size, uint_fast16_t align, vsf_pool_cfg_t *cfg_ptr)
initialise target pool !
Definition vsf_pool.c:132
uint32_t uint_fast16_t align
Definition vsf_pool.h:548
#define vsf_pool(__name)
Definition vsf_pool.h:258
#define vsf_pool_item(__name)
Definition vsf_pool.h:259
vsf_pool_cfg_t
Definition vsf_pool.h:539
#define __implement_vsf_pool_tag(__name)
Definition vsf_pool.h:152
uintptr_t item_ptr
Definition vsf_pool.h:476