X-Git-Url: http://git.silcnet.org/gitweb/?a=blobdiff_plain;f=lib%2Fsilcutil%2Fsilcstack.h;h=f2663eef949e4b37b8774b9391d85ca56a301d48;hb=8fc3402eeef449d1a0b7dfa10a2f316a181d8a27;hp=88032aa81eb7f97c56fe1b9656d1b7c2f329df32;hpb=dcd0f46c0359192154c83de86ec0ca1f84e1a9d0;p=silc.git diff --git a/lib/silcutil/silcstack.h b/lib/silcutil/silcstack.h index 88032aa8..f2663eef 100644 --- a/lib/silcutil/silcstack.h +++ b/lib/silcutil/silcstack.h @@ -4,7 +4,7 @@ Author: Pekka Riikonen - Copyright (C) 2003 - 2007 Pekka Riikonen + Copyright (C) 2003 - 2008 Pekka Riikonen This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by @@ -21,7 +21,7 @@ * * DESCRIPTION * - * Implementation of data stack which can be used to allocate memory from + * Implementation of data stack which can be used to do fast allocations from * the stack. Basically 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 @@ -125,8 +125,7 @@ typedef void (*SilcStackOomHandler)(SilcStack stack, void *context); * allocation by various routines. Returns the pointer to the stack * that must be freed with silc_stack_free function when it is not * needed anymore. If the `stack_size' is zero (0) by default a - * 1 kilobyte (1024 bytes) stack is allocated. If the `stack_size' - * is non-zero the byte value must be multiple by 8. + * 1 kilobyte (1024 bytes) stack is allocated. * * If `parent' is non-NULL the created stack is a child of the `parent' * stack. All of childs the memory is allocated from the `parent' and @@ -385,6 +384,42 @@ SilcUInt32 silc_stack_get_alignment(SilcStack stack); ***/ SilcBool silc_stack_purge(SilcStack stack); +/****f* silcutil/SilcStackAPI/silc_stack_set_global + * + * SYNOPSIS + * + * void silc_stack_set_global(SilcStack stack); + * + * DESCRIPTION + * + * Sets global SilcStack `stack' that can be retrieved at any time + * by using silc_stack_get_global. The global stack is global only + * to the current thread. Each thread can have their own global stack. + * If each thread must have own stack this must be called in each + * thread. If the global stack has been set already, new call will + * replace the old one. + * + * This routine is provided only as a convenience function to store + * program's or thread's stack in one global place. It is not mandatory + * to call this function in order to use SilcStack. + * + ***/ +void silc_stack_set_global(SilcStack stack); + +/****f* silcutil/SilcStackAPI/silc_stack_get_global + * + * SYNOPSIS + * + * SilcStack silc_stack_get_global(void); + * + * DESCRIPTION + * + * Returns the thread's global stack that was set by calling the + * silc_stack_set_global or NULL if global stack has not been set. + * + ***/ +SilcStack silc_stack_get_global(void); + #include "silcstack_i.h" #endif /* SILCSTACK_H */