Diff for /libelwix/src/elwix.c between versions 1.2 and 1.10.6.2

version 1.2, 2013/05/30 09:07:33 version 1.10.6.2, 2023/07/27 22:20:38
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 - 2023
         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 119  elwix_mm_inuse() Line 119  elwix_mm_inuse()
 }  }
   
   
   #pragma GCC visibility push(hidden)
 // init libelwix routine  // init libelwix routine
__attribute__((constructor)) void__attribute__((constructor)) static void
 _elwix_init()  _elwix_init()
 {  {
        elwixInit(ELWIX_MPOOL, 0);        elwixInit(MEMMGR, 0);
 }  }
   
 // fini libelwix routine  // fini libelwix routine
__attribute__((destructor)) void__attribute__((destructor)) static void
 _elwix_fini()  _elwix_fini()
 {  {
         elwixFini();          elwixFini();
Line 173  elwixInit(int mm, u_long maxmem) Line 174  elwixInit(int mm, u_long maxmem)
 }  }
   
 /*  /*
 * elwixFini() - Finish libaitio library memory management * elwixFini() - Finish libelwix library memory management
  *   *
  * return: none   * return: none
  */   */
Line 193  elwixFini() Line 194  elwixFini()
                         break;                          break;
         }          }
 }  }
   #pragma GCC visibility pop
   
   /*
    * elwix_byteOrder() - Detect platform byte order
    *
    * return: 1 = little endian or 0 big endian
    */
   int
   elwix_byteOrder()
   {
           int x = 1;
   
           return *(char*) &x;
   }
   
   #ifndef HAVE_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)
   {
           char *d = dst;
           const char *s = src;
           register size_t n = siz;
   
           /* Copy as many bytes as will fit */
           if (n)
                   while (--n)
                           if ((*d++ = *s++) == '\0')
                                   break;
   
           /* Not enough room in dst, add NUL and traverse rest of src */
           if (!n) {
                   if (siz)
                           *d = '\0';      /* NUL-terminate dst */
                   while (*s++);
           }
   
           return (s - src - 1);   /* count does not include NUL */
   }
   #endif
   
   #ifndef HAVE_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)
   {
           char *d = dst;
           const char *s = src;
           register size_t n = siz;
           size_t dlen;
   
           /* Find the end of dst and adjust bytes left but don't go past end */
           while (n-- && *d != '\0')
                   d++;
   
           dlen = d - dst;
           n = siz - dlen;
           if (!n)
                   return (dlen + strlen(s));
   
           while (*s != '\0') {
                   if (n != 1) {
                           *d++ = *s;
                           n--;
                   }
                   s++;
           }
           *d = '\0';
   
           return (dlen + (s - src));      /* count does not include NUL */
   }
   #endif

Removed from v.1.2  
changed lines
  Added in v.1.10.6.2


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