|
version 1.1, 2013/01/17 10:05:35
|
version 1.8.8.1, 2016/08/11 13:19:16
|
|
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, 2013 | Copyright 2004 - 2016 |
| 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 71 char elwix_Error[STRSIZ];
|
Line 71 char elwix_Error[STRSIZ];
|
| |
|
| |
|
| // elwix_SetProg() Set program memory pool name |
// elwix_SetProg() Set program memory pool name |
| inline void | void |
| elwix_SetProg(const char *csProgName) |
elwix_SetProg(const char *csProgName) |
| { |
{ |
| strlcpy((char*) elwix_Prog, csProgName, sizeof elwix_Prog); |
strlcpy((char*) elwix_Prog, csProgName, sizeof elwix_Prog); |
| } |
} |
| |
|
| // elwix_GetProg() Get program memory pool name |
// elwix_GetProg() Get program memory pool name |
| inline const char * | const char * |
| elwix_GetProg() |
elwix_GetProg() |
| { |
{ |
| return elwix_Prog; |
return elwix_Prog; |
| } |
} |
| |
|
| // elwix_GetErrno() Get error code of last operation |
// elwix_GetErrno() Get error code of last operation |
| inline int | int |
| elwix_GetErrno() |
elwix_GetErrno() |
| { |
{ |
| return elwix_Errno; |
return elwix_Errno; |
| } |
} |
| |
|
| // elwix_GetError() Get error text of last operation |
// elwix_GetError() Get error text of last operation |
| inline const char * | const char * |
| elwix_GetError() |
elwix_GetError() |
| { |
{ |
| return elwix_Error; |
return elwix_Error; |
| } |
} |
| |
|
| // elwix_SetErr() Set error to variables for internal use!!! |
// elwix_SetErr() Set error to variables for internal use!!! |
| inline void | void |
| elwix_SetErr(int eno, char *estr, ...) |
elwix_SetErr(int eno, char *estr, ...) |
| { |
{ |
| va_list lst; |
va_list lst; |
|
Line 112 elwix_SetErr(int eno, char *estr, ...)
|
Line 112 elwix_SetErr(int eno, char *estr, ...)
|
| } |
} |
| |
|
| // elwix_mm_inuse() Check for memory management model |
// elwix_mm_inuse() Check for memory management model |
| inline int | int |
| elwix_mm_inuse() |
elwix_mm_inuse() |
| { |
{ |
| return use_mm & ELWIX_MPOOL; |
return use_mm & ELWIX_MPOOL; |
| } |
} |
| |
|
| |
|
| |
#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 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 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 |