Copyright © 2001 - 2007 SILC Project SILC Project Website | SILC Toolkit Reference Manual Index

SILC Toolkit Reference Manual SILC Crypto Library Introduction to SILC RNG SILC RNG Interface SILC Cipher API SILC PKCS API SILC Public Key API SILC PKCS #1 API SILC Hash Interface SILC HMAC Interface SILC Core Library SILC Authentication Interface SILC Message Interface SILC Channel Interface SILC Command Interface SILC Notify Interface SILC Status Types SILC Modes SILC ID Interface SILC Argument Interface SILC Attributes Interface Packet Engine Interface SILC Public Key Payload Interface SILC Key Exchange Library SILC SKE Interface SILC Connection Authentication Interface SILC VCard Library SILC VCard Interface SILC Math Library SILC MP Interface SILC Math Interface SILC Client Library Using SILC Client Library Tutorial Arguments for command_reply Client Operation SilcStatus Error Arguments in command_reply Client Operation Arguments for notify Client Operation Unicode and UTF-8 Strings in Client Library Client Library Interface Reference Client Entry Interface Reference SILC ASN.1 Library SILC ASN.1 Interface SILC BER interface SILC HTTP Library SILC HTTP Server Interface SILC HTTP PHP Translator SILC Utility Library Basic Types and Definitions Data Buffer Interface Data Buffer Format Interface Hash Table Interface Memory Allocation Interface Data Stack (memory pool) Interface Finite State Machine Interface Thread Interface Mutual Exclusion Lock Interface Condition Variable Interface Atomic Operations Interface Network (TCP and UDP) Interface Scheduler Interface Asynchronous Operation Interface Abstract Stream Interface Socket Stream Interface File Descriptor Stream Interface File Utility Functions String Utility Interface Snprintf Interface UTF-8 String Interface Stringprep Interface Utility Functions List Interface Dynamic List Interface MIME Interface Time Utility Functions Logging Interface Config File Interface SILC Key Repository Library SILC SKR Interface SILC Application Utility Library SILC Application Utilities SILC ID Cache Interface SILC SFTP Library SILC SFTP Interface SFTP Filesystems Interface Resource Links SILC Project Website SILC Protocol Documentation SILC White Paper SILC FAQs
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

Copyright © 2001 - 2007 SILC Project SILC Project Website | SILC Toolkit Reference Manual Index