183 #ifndef LEGATO_SAFEREF_INCLUDE_GUARD 184 #define LEGATO_SAFEREF_INCLUDE_GUARD 191 #define LIMIT_MAX_SAFE_REF_NAME_LEN 31 192 #define LIMIT_MAX_SAFE_REF_NAME_BYTES (LIMIT_MAX_SAFE_REF_NAME_LEN + 1) 220 #define LE_REF_BLOCK_SIZE(numRefs) (1 + (numRefs)) 233 #if LE_CONFIG_SAFE_REF_NAMES_ENABLED 235 le_log_TraceRef_t traceRef;
255 #define LE_REF_DEFINE_STATIC_MAP(name, maxRefs) \ 256 static struct le_ref_Map _ref_##name##Map; \ 257 static void *_ref_##name##Data[LE_REF_BLOCK_SIZE(maxRefs)] 265 le_ref_MapRef_t _le_ref_InitStaticMap
267 #
if LE_CONFIG_SAFE_REF_NAMES_ENABLED
271 le_ref_MapRef_t mapPtr,
288 #if LE_CONFIG_SAFE_REF_NAMES_ENABLED 289 # define le_ref_InitStaticMap(name, maxRefs) \ 290 _le_ref_InitStaticMap(#name, (maxRefs), &_ref_##name##Map, _ref_##name##Data) 292 # define le_ref_InitStaticMap(name, maxRefs) \ 293 _le_ref_InitStaticMap((maxRefs), &_ref_##name##Map, _ref_##name##Data) 297 #if LE_CONFIG_SAFE_REF_NAMES_ENABLED 321 le_ref_MapRef_t _le_ref_CreateMap(
size_t maxRefs);
341 return _le_ref_CreateMap(maxRefs);
356 le_ref_MapRef_t mapRef,
372 le_ref_MapRef_t mapRef,
384 le_ref_MapRef_t mapRef,
402 le_ref_MapRef_t mapRef
461 le_ref_MapRef_t mapRef
464 #endif // LEGATO_SAFEREF_INCLUDE_GUARD le_ref_IterRef_t le_ref_GetIterator(le_ref_MapRef_t mapRef)
uint32_t mapBase
Randomized "base" for references in this map.
Definition: le_safeRef.h:242
bool advance
Iterator advance flag.
Definition: le_safeRef.h:239
#define LIMIT_MAX_SAFE_REF_NAME_BYTES
Definition: le_safeRef.h:192
void le_ref_EnableTrace(le_ref_MapRef_t mapRef)
const void * le_ref_GetSafeRef(le_ref_IterRef_t iteratorRef)
Definition: le_doublyLinkedList.h:200
size_t size
Total allocated entries.
Definition: le_safeRef.h:240
void * le_ref_GetValue(le_ref_IterRef_t iteratorRef)
size_t index
Iterator.
Definition: le_safeRef.h:238
LE_DECLARE_INLINE le_ref_MapRef_t le_ref_CreateMap(const char *name, size_t maxRefs)
Definition: le_safeRef.h:335
le_result_t le_ref_NextNode(le_ref_IterRef_t iteratorRef)
size_t maxRefs
Nominal maximum number of safe references.
Definition: le_safeRef.h:241
Definition: le_safeRef.h:229
#define LE_UNUSED(v)
Definition: le_basics.h:379
#define LE_DECLARE_INLINE
Definition: le_basics.h:330
void * le_ref_Lookup(le_ref_MapRef_t mapRef, void *safeRef)
void le_ref_DeleteRef(le_ref_MapRef_t mapRef, void *safeRef)
le_dls_Link_t entry
Map list entry, for inspection tools.
Definition: le_safeRef.h:231
le_result_t
Definition: le_basics.h:45
void * le_ref_CreateRef(le_ref_MapRef_t mapRef, void *ptr)
struct le_ref_Block * blocksPtr
Block list head.
Definition: le_safeRef.h:244
struct le_ref_Iter * le_ref_IterRef_t
Definition: le_safeRef.h:208