+
+
+
+silcstack.html
+
+
+
+
+
+
+SilcStack Interface Header: silcstack.h
+
+
+DESCRIPTION
+
+
+ Implementation of data stack which can be used to allocate memory from
+ the stack. Basicly SilcStack is a pre-allocated memory pool system
+ which allows fast memory allocation for routines and applications that
+ frequently allocate small amounts of memory. Other advantage of this
+ system is that there are no memory leaks, as long as the stack is
+ freed eventually. Since the stack is usually allocated only once this
+ is not an issue.
+
+ SilcStack can be used to allocate both aligned and unaligned memory so
+ it is suitable for allocating structures and is optimal for allocating
+ strings and data buffers. SilcStack also supports stack pushing and
+ popping allowing to push the stack, allocate memory and then pop it
+ to free the allocated memory. The freeing does not actually do any
+ real memory freeing so it is optimized for performance.
+
+ A basic set of utility functions are provided for application that wish
+ to use the SilcStack as their primary memory allocation source. The
+ following functions support SilcStack:
+
+ silc_smalloc, silc_smalloc_ua, silc_scalloc, silc_srealloc, silc_smemdup,
+ silc_sstrdup, silc_buffer_salloc, silc_buffer_salloc_size,
+ silc_buffer_srealloc, silc_buffer_srealloc_size, silc_buffer_scopy,
+ silc_buffer_sclone, silc_buffer_sformat, silc_buffer_sformat_vp,
+ silc_buffer_sstrformat, silc_buffer_senlarge, silc_mp_sinit
+
+ The data stack is not thread-safe. If the same stack context must be
+ used in multithreaded environment concurrency control must be employed.
+ Each thread should allocate their own SilcStack.
+
+ SilcStack
+SilcStackFrame
+silc_stack_alloc
+silc_stack_free
+silc_stack_push
+silc_stack_pop
+
+
+ |
+