Diff for /libelwix/inc/elwix.h between versions 1.1.1.1.2.6 and 1.15.2.3

version 1.1.1.1.2.6, 2013/03/05 13:09:50 version 1.15.2.3, 2017/11/24 15:52:57
Line 12  terms: Line 12  terms:
 All of the documentation and software included in the ELWIX and AITNET  All of the documentation and software included in the ELWIX and AITNET
 Releases is copyrighted by ELWIX - Sofia/Bulgaria <info@elwix.org>  Releases is copyrighted by ELWIX - Sofia/Bulgaria <info@elwix.org>
   
Copyright 2004, 2005, 2006, 2007, 2008, 2009, 2010, 2011, 2012, 2013Copyright 2004 - 2017
         by Michael Pounov <misho@elwix.org>.  All rights reserved.          by Michael Pounov <misho@elwix.org>.  All rights reserved.
   
 Redistribution and use in source and binary forms, with or without  Redistribution and use in source and binary forms, with or without
Line 49  SUCH DAMAGE. Line 49  SUCH DAMAGE.
   
 #include <assert.h>  #include <assert.h>
 #include <syslog.h>  #include <syslog.h>
   #include <stdarg.h>
 #include <sys/types.h>  #include <sys/types.h>
   #include <sys/param.h>
 #include <sys/socket.h>  #include <sys/socket.h>
 #include <sys/un.h>  #include <sys/un.h>
   #ifndef __linux__
   #include <sys/limits.h>
   #include <sys/endian.h>
 #include <net/if_dl.h>  #include <net/if_dl.h>
   #else
   #include <linux/if_packet.h>
   #endif
 #include <netinet/in.h>  #include <netinet/in.h>
 #include <arpa/inet.h>  #include <arpa/inet.h>
   
   #include <elwix/aqueue.h>
 #include <elwix/atree.h>  #include <elwix/atree.h>
 #include <elwix/ampool.h>  #include <elwix/ampool.h>
 #include <elwix/acrc.h>  #include <elwix/acrc.h>
Line 67  SUCH DAMAGE. Line 76  SUCH DAMAGE.
 #include <elwix/aav.h>  #include <elwix/aav.h>
 #include <elwix/anet.h>  #include <elwix/anet.h>
 #include <elwix/atime.h>  #include <elwix/atime.h>
   #include <elwix/apack.h>
   #include <elwix/apio.h>
   #include <elwix/ajson.h>
   
   
 #ifndef STRSIZ  #ifndef STRSIZ
 #define STRSIZ          256  #define STRSIZ          256
 #endif  #endif
   
   #ifndef NBBY
   #define NBBY            8               /* number of bits in a byte */
   #endif
   
   #ifndef BYTE_ORDER
           #ifndef LITTLE_ENDIAN
                   #define LITTLE_ENDIAN   1234
           #endif /* LITTLE_ENDIAN */
           #ifndef BIG_ENDIAN
                   #define BIG_ENDIAN      4321
           #endif /* BIG_ENDIAN */
           #ifdef WORDS_BIGENDIAN
                   #define BYTE_ORDER BIG_ENDIAN
           #else /* WORDS_BIGENDIAN */
                   #define BYTE_ORDER LITTLE_ENDIAN
           #endif /* WORDS_BIGENDIAN */
   #endif /* BYTE_ORDER */
   
 #ifndef be16toh  #ifndef be16toh
 #define be16toh         betoh16  #define be16toh         betoh16
 #endif  #endif
Line 92  SUCH DAMAGE. Line 122  SUCH DAMAGE.
 #define le64toh         letoh64  #define le64toh         letoh64
 #endif  #endif
   
#define E_ALIGN(x, a)        (((x) + ((a) - 1)) & ~((a) - 1))/* Bit map related macros. */
 #ifndef setbit
 #define setbit(a, i)            (((unsigned char *)(a))[(i) / NBBY] |= 1 << ((i) % NBBY))
 #endif
 #ifndef clrbit
 #define clrbit(a, i)            (((unsigned char *)(a))[(i) / NBBY] &= ~(1 << ((i) % NBBY)))
 #endif
 #ifndef isset
 #define isset(a, i)             (((const unsigned char *)(a))[(i) / NBBY] & (1 << ((i) % NBBY)))
 #endif
 #ifndef isclr
 #define isclr(a, i)             ((((const unsigned char *)(a))[(i) / NBBY] & (1 << ((i) % NBBY))) == 0)
 #endif
   
   /* Macros for counting and rounding. */
   #ifndef howmany
   #define howmany(x, y)           (((x) + ((y) - 1)) / (y))
   #endif
   #ifndef nitems
   #define nitems(x)               (sizeof((x)) / sizeof((x)[0]))
   #endif
   #ifndef rounddown
   #define rounddown(x, y)         (((x) / (y)) * (y))
   #endif
   #ifndef rounddown2
   #define rounddown2(x, y)        ((x) & (~((y) - 1))) /* if y is power of two */
   #endif
   #ifndef roundup
   #define roundup(x, y)           ((((x) + ((y) - 1)) / (y)) * (y)) /* to any y */
   #endif
   #ifndef roundup2
   #define roundup2(x, y)          (((x) + ((y) - 1)) & (~((y) - 1))) /* if y is powers of two */
   #endif
   #ifndef powerof2
   #define powerof2(x)             ((((x) - 1) & (x)) == 0)
   #endif
   
#define ELWIX_SYSM      0/* Macros for min/max. */
#define ELWIX_MPOOL     1#ifndef MIN
 #define MIN(a, b)               (((a) < (b)) ? (a) : (b))
 #endif
 #ifndef MAX
 #define MAX(a, b)               (((a) > (b)) ? (a) : (b))
 #endif
   
#define VACUUM_LEFT     1#define E_ALIGN(x, a)           (((x) + ((a) - 1)) & ~((a) - 1))
#define VACUUM_BETWEEN  2 
   
   
   #define ELWIX_SYSM              0
   #define ELWIX_MPOOL             1
   
   #define VACUUM_LEFT             1
   #define VACUUM_BETWEEN          2
   
   
   extern int __isthreaded;
   
   
 // elwix_SetProg() Set program memory pool name  // elwix_SetProg() Set program memory pool name
inline void elwix_SetProg(const char *csProgName);void elwix_SetProg(const char *csProgName);
 // elwix_GetProg() Get program memory pool name  // elwix_GetProg() Get program memory pool name
inline const char *elwix_GetProg();const char *elwix_GetProg();
   
 // elwix_GetErrno() Get error code of last operation  // elwix_GetErrno() Get error code of last operation
inline int elwix_GetErrno();int elwix_GetErrno();
 // elwix_GetError() Get error text of last operation  // elwix_GetError() Get error text of last operation
inline const char *elwix_GetError();const char *elwix_GetError();
   
   
 // elwix_mm_inuse() Check for memory management model  // elwix_mm_inuse() Check for memory management model
inline int elwix_mm_inuse();int elwix_mm_inuse();
   
   
 /*  /*
Line 124  inline int elwix_mm_inuse(); Line 202  inline int elwix_mm_inuse();
  * @maxmem = memory limit   * @maxmem = memory limit
  * return: -1 error or !=-1 used memory management model   * return: -1 error or !=-1 used memory management model
  */   */
inline int elwixInit(int mm, unsigned long maxmem);int elwixInit(int mm, unsigned long maxmem);
 /*  /*
  * elwixFini() - Finish libelwix library memory management   * elwixFini() - Finish libelwix library memory management
  *   *
  * return: none   * return: none
  */   */
inline void elwixFini();void elwixFini();
   
   /*
    * elwix_byteOrder() - Detect platform byte order
    *
    * return: 1 = little endian or 0 big endian
    */
   int elwix_byteOrder();
   
   #ifndef strlcpy
   /*
    * Copy src to string dst of size siz.  At most siz-1 characters
    * will be copied.  Always NUL terminates (unless siz == 0).
    * Returns strlen(src); if retval >= siz, truncation occurred.
    */
   size_t strlcpy(char *dst, const char *src, size_t siz);
   #endif
   #ifndef strlcat
   /*
    * Appends src to string dst of size siz (unlike strncat, siz is the
    * full size of dst, not space left).  At most siz-1 characters
    * will be copied.  Always NUL terminates (unless siz <= strlen(dst)).
    * Returns strlen(src) + MIN(siz, strlen(initial dst)).
    * If retval >= siz, truncation occurred.
    */
   size_t strlcat(char *dst, const char *src, size_t siz);
   #endif
   
 /* memory management hooks */  /* memory management hooks */
 extern void *(*e_malloc)(size_t);  extern void *(*e_malloc)(size_t);
 extern void *(*e_calloc)(size_t, size_t);  extern void *(*e_calloc)(size_t, size_t);
Line 151  extern int elwix_Verbose; Line 255  extern int elwix_Verbose;
 #define EVERBS(x)               if ((x) <= elwix_Verbose)  #define EVERBS(x)               if ((x) <= elwix_Verbose)
 #define EVERBOSE(x, fmt, ...)   do { assert((fmt)); \  #define EVERBOSE(x, fmt, ...)   do { assert((fmt)); \
                                         if ((x) <= elwix_Verbose) { \                                          if ((x) <= elwix_Verbose) { \
                                                char str[BUFSIZ] = { 0 }; \                                                char __str[BUFSIZ] = { [0 ... BUFSIZ - 1] = 0 }; \
                                                snprintf(str, sizeof str, (fmt), ##__VA_ARGS__); \                                                snprintf(__str, sizeof __str, (fmt), ##__VA_ARGS__); \
                                                syslog(LOG_DEBUG, "Verbose(%d):%s(%d): %s\n", \                                                syslog(LOG_INFO, "Verbose(%d):%s(%d): %s\n", \
                                                                (x), __func__, __LINE__, str); \                                                                (x), __func__, __LINE__, __str); \
                                         } \                                          } \
                                 } while (0)                                  } while (0)
   
 /* Debug macros */  /* Debug macros */
 extern int elwix_Debug;  extern int elwix_Debug;
   #define e_Debug                 elwix_Debug
   
 #define ELWIX_DEBUG_OFF         0x0  #define ELWIX_DEBUG_OFF         0x0
 #define ELWIX_DEBUG_TRACE       0x1  #define ELWIX_DEBUG_TRACE       0x1
 #define ELWIX_DEBUG_LOG         0x2  #define ELWIX_DEBUG_LOG         0x2
 #define ELWIX_DEBUG_ANY         0xFFFFFFFF  #define ELWIX_DEBUG_ANY         0xFFFFFFFF
   
#define ETRACE(x)               if (elwix_Debug & ELWIX_DEBUG_TRACE) \#define ETRACE()               if (elwix_Debug & ELWIX_DEBUG_TRACE) \
                                           syslog(LOG_DEBUG, "I'm in %s(%d)", __func__, __LINE__)                                           syslog(LOG_DEBUG, "I'm in %s(%d)\n", __func__, __LINE__)
 #define EDEBUG(x, fmt, ...)     do { assert((fmt)); \  #define EDEBUG(x, fmt, ...)     do { assert((fmt)); \
                                         if ((x) & elwix_Debug) { \                                          if ((x) & elwix_Debug) { \
                                                char str[BUFSIZ] = { 0 }; \                                                char __str[BUFSIZ] = { [0 ... BUFSIZ - 1] = 0 }; \
                                                snprintf(str, sizeof str, (fmt), ##__VA_ARGS__); \                                                snprintf(__str, sizeof __str, (fmt), ##__VA_ARGS__); \
                                                 syslog(LOG_DEBUG, "Debug(%d):%s(%d): %s\n", \                                                  syslog(LOG_DEBUG, "Debug(%d):%s(%d): %s\n", \
                                                                (x), __func__, __LINE__, str); \                                                                (x), __func__, __LINE__, __str); \
                                         } \                                          } \
                                 } while (0)                                  } while (0)
   
 /* Logger macro */  /* Logger macro */
 #define ELOGGER(x, fmt, ...)    do { assert((fmt)); \  #define ELOGGER(x, fmt, ...)    do { assert((fmt)); \
                                        char str[BUFSIZ] = { 0 }; \                                        char __str[BUFSIZ] = { [0 ... BUFSIZ - 1] = 0 }; \
                                        snprintf(str, sizeof str, (fmt), ##__VA_ARGS__); \                                        snprintf(__str, sizeof __str, (fmt), ##__VA_ARGS__); \
                                         syslog((x), "Logger:%s(%d): %s\n", \                                          syslog((x), "Logger:%s(%d): %s\n", \
                                                                __func__, __LINE__, str); \                                                                __func__, __LINE__, __str); \
                                 } while (0)                                  } while (0)
   
   #define EWARNING(x, fmt, ...)   do { assert((fmt)); \
                                           char __str[BUFSIZ] = { [0 ... BUFSIZ - 1] = 0 }; \
                                           snprintf(__str, sizeof __str, (fmt), ##__VA_ARGS__); \
                                           syslog(LOG_WARNING, "Warning:%s(%d): #%d - %s\n", \
                                                            __func__, __LINE__, (x), __str); \
                                   } while (0)
 /* Error state macros */  /* Error state macros */
 #define EERROR(x, fmt, ...)     do { assert((fmt)); \  #define EERROR(x, fmt, ...)     do { assert((fmt)); \
                                        char str[BUFSIZ] = { 0 }; \                                        char __str[BUFSIZ] = { [0 ... BUFSIZ - 1] = 0 }; \
                                        snprintf(str, sizeof str, (fmt), ##__VA_ARGS__); \                                        snprintf(__str, sizeof __str, (fmt), ##__VA_ARGS__); \
                                         syslog(LOG_ERR, "Error:%s(%d): #%d - %s\n", \                                          syslog(LOG_ERR, "Error:%s(%d): #%d - %s\n", \
                                                         __func__, __LINE__, (x), str); \                                                         __func__, __LINE__, (x), __str); \
                                 } while (0)                                  } while (0)
 #define ESYSERR(x)              do { \  #define ESYSERR(x)              do { \
                                         if (x > 0 || errno) \                                          if (x > 0 || errno) \

Removed from v.1.1.1.1.2.6  
changed lines
  Added in v.1.15.2.3


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