Diff for /libaitio/src/aitio.c between versions 1.10.6.1 and 1.10.6.4

version 1.10.6.1, 2012/05/23 11:49:35 version 1.10.6.4, 2012/05/23 13:53:00
Line 47  SUCH DAMAGE. Line 47  SUCH DAMAGE.
   
   
 int io_Debug;  int io_Debug;
   mpool_t *io_mpool;
   
   
   /* Memory management */
   
   void *(*io_malloc)(size_t) = malloc;
   void *(*io_calloc)(size_t, size_t) = calloc;
   void *(*io_realloc)(void*, size_t) = realloc;
   char *(*io_strdup)(const char*) = strdup;
   void (*io_free)(void*) = free;
   
   
 #pragma GCC visibility push(hidden)  #pragma GCC visibility push(hidden)
   
   int use_mm;
   
 int io_Errno;  int io_Errno;
 char io_Error[STRSIZ];  char io_Error[STRSIZ];
   
Line 82  io_SetErr(int eno, char *estr, ...) Line 94  io_SetErr(int eno, char *estr, ...)
         va_start(lst, estr);          va_start(lst, estr);
         vsnprintf(io_Error, STRSIZ, estr, lst);          vsnprintf(io_Error, STRSIZ, estr, lst);
         va_end(lst);          va_end(lst);
   }
   
   // io_mm_inuse() Check for memory management model
   inline int
   io_mm_inuse()
   {
           return use_mm & IO_MPOOL;
   }
   
   
   // init libaitio routine
   void
   _init()
   {
   #ifdef USE_MPOOL
           ioLibInit(IO_MPOOL, 0);
   #else
           ioLibInit(IO_SYSM, 0);
   #endif
   }
   
   // fini libaitio routine
   void
   _fini()
   {
           ioLibFini();
   }
   
   /*
    * ioLibInit() - Init libaitio library memory management
    *
    * @mm = memory management (IO_SYSM or IO_MPOOL)
    * @maxmem = memory limit
    * return: -1 error or !=-1 used memory management model
    */
   inline int
   ioLibInit(int mm, u_long maxmem)
   {
           switch (mm) {
                   case IO_MPOOL:  /* mpool */
                           io_mpool = mpool_init(maxmem);
                           if (io_mpool) {
                                   io_malloc = mpool_xmalloc;
                                   io_calloc = mpool_xcalloc;
                                   io_realloc = mpool_xrealloc;
                                   io_strdup = mpool_xstrdup;
                                   io_free = mpool_xfree;
                                   use_mm = mm;
                                   break;
                           } else {
                                   #undef USE_MPOOL
                           }
                   case IO_SYSM:   /* system */
                           io_malloc = malloc;
                           io_calloc = calloc;
                           io_realloc = realloc;
                           io_strdup = strdup;
                           io_free = free;
                           use_mm = mm;
                           break;
                   default:        /* not supported */
                           io_SetErr(EINVAL, "Not supported memory management");
                           return -1;
           }
   
           return use_mm;
   }
   
   /*
    * ioLibFini() - Finish libaitio library memory management
    *
    * return: none
    */
   inline void
   ioLibFini()
   {
           switch (use_mm) {
                   case 1:
                           mpool_destroy(&io_mpool);
   
                           io_malloc = malloc;
                           io_calloc = calloc;
                           io_realloc = realloc;
                           io_strdup = strdup;
                           io_free = free;
                           use_mm = IO_SYSM;
                           break;
           }
 }  }
   
   

Removed from v.1.10.6.1  
changed lines
  Added in v.1.10.6.4


FreeBSD-CVSweb <freebsd-cvsweb@FreeBSD.org>