version 1.24.2.3, 2012/08/28 08:53:32
|
version 1.26.4.3, 2012/11/19 15:23:31
|
Line 245 typedef struct {
|
Line 245 typedef struct {
|
void *__p = io_realloc(__val->val.string, AIT_LEN(__val) + __l); \ |
void *__p = io_realloc(__val->val.string, AIT_LEN(__val) + __l); \ |
if (__p) { \ |
if (__p) { \ |
AIT_LEN(__val) += __l; \ |
AIT_LEN(__val) += __l; \ |
|
if (!__val->val.string) \ |
|
memset(__p, 0, AIT_LEN(__val)); \ |
__val->val.string = __p; \ |
__val->val.string = __p; \ |
strlcat((char*) __val->val.string, __s, \ |
strlcat((char*) __val->val.string, __s, \ |
AIT_LEN(__val)); \ |
AIT_LEN(__val)); \ |
Line 341 typedef struct {
|
Line 343 typedef struct {
|
AIT_INIT_VAL((_vl)); \ |
AIT_INIT_VAL((_vl)); \ |
(_vl)->val_type = _t; \ |
(_vl)->val_type = _t; \ |
} while (0) |
} while (0) |
#define AIT_SET_LIKE(_vl, _t, _l, _v) do { assert((_vl)); \ | #define AIT_SET_LIKE(_vl, _t, _l, _v) (assert((_vl)), io_setlikeVar((_vl), _t, _l, _v)) |
AIT_INIT_VAL2((_vl), _t); \ | |
AIT_LEN((_vl)) = _l; AIT_IN((_vl)) = 1; \ | |
AIT_RAW((_vl)) = (uint64_t) (_v); \ | |
} while (0) | |
/* if attribute zeroCopy is set not execute io_free() */ |
/* if attribute zeroCopy is set not execute io_free() */ |
#define AIT_FREE_VAL(_vl) do { ait_val_t *__val = (_vl); assert(__val); \ |
#define AIT_FREE_VAL(_vl) do { ait_val_t *__val = (_vl); assert(__val); \ |
switch (AIT_TYPE(__val)) { \ |
switch (AIT_TYPE(__val)) { \ |
Line 403 typedef union {
|
Line 401 typedef union {
|
#define IO_SOCKADDR_INIT { .ss = { 0 } } |
#define IO_SOCKADDR_INIT { .ss = { 0 } } |
|
|
|
|
#define io_align(x, a) (((x) + (a)) & ~(a)) | #define io_align(x, a) (((x) + ((a) - 1)) & ~((a) - 1)) |
|
|
|
|
// io_GetErrno() Get error code of last operation |
// io_GetErrno() Get error code of last operation |
Line 439 extern void (*io_free)(void*);
|
Line 437 extern void (*io_free)(void*);
|
|
|
|
|
/* |
/* |
|
* io_usleep() - usleep() replacement for ELWIX |
|
* |
|
* @usec = microseconds for sleep |
|
* return: -1 interrupted by signal or 0 ok |
|
*/ |
|
inline int io_usleep(unsigned int usec); |
|
/* |
* io_ether_ntoa() - Convert ethernet address to string |
* io_ether_ntoa() - Convert ethernet address to string |
* |
* |
* @n = ethernet address structure, like struct ether_addr |
* @n = ethernet address structure, like struct ether_addr |
Line 461 inline struct io_ether_addr *io_ether_aton(const char
|
Line 466 inline struct io_ether_addr *io_ether_aton(const char
|
* @addr = Address |
* @addr = Address |
* return: 0 not supported family type or port number |
* return: 0 not supported family type or port number |
*/ |
*/ |
inline u_short io_n2port(io_sockaddr_t * __restrict addr); | inline unsigned short io_n2port(io_sockaddr_t * __restrict addr); |
/* |
/* |
* io_n2addr() - Extract address from network structure |
* io_n2addr() - Extract address from network structure |
* |
* |
Line 480 const char *io_n2addr(io_sockaddr_t * __restrict addr,
|
Line 485 const char *io_n2addr(io_sockaddr_t * __restrict addr,
|
*/ |
*/ |
io_sockaddr_t *io_gethostbyname(const char *psHost, unsigned short port, |
io_sockaddr_t *io_gethostbyname(const char *psHost, unsigned short port, |
io_sockaddr_t * __restrict addr); |
io_sockaddr_t * __restrict addr); |
|
/* |
|
* io_addrcmp() - Compare network addresses |
|
* |
|
* @a = 1st address |
|
* @b = 2nd address |
|
* @p = compare and ports, if family is AF_INET or AF_INET6 |
|
* return: 0 is equal or !=0 is different |
|
*/ |
|
int io_addrcmp(io_sockaddr_t * __restrict a, io_sockaddr_t * __restrict b, int p); |
|
|
/* |
/* |
* io_vars2buffer() - Marshaling data from array with variables to buffer |
* io_vars2buffer() - Marshaling data from array with variables to buffer |
Line 547 inline void io_freeVar(ait_val_t ** __restrict val);
|
Line 561 inline void io_freeVar(ait_val_t ** __restrict val);
|
*/ |
*/ |
ait_val_t *io_makeVar(ait_type_t type, ...); |
ait_val_t *io_makeVar(ait_type_t type, ...); |
/* |
/* |
* io_hashVar() - Generate hash key for variable | * io_setlikeVar() - Set variable like ... |
* |
* |
* @v = variable |
* @v = variable |
|
* @t = type of data |
|
* @l = length of data |
|
* @... = data |
|
* return: -1 error or 0 ok |
|
*/ |
|
inline int io_setlikeVar(ait_val_t * __restrict v, ait_type_t t, unsigned int l, ...); |
|
/* |
|
* io_sprintfVar() - Builtin string variable from formatted input |
|
* |
|
* @v = variable |
|
* @fmt = format string |
|
* @... = argument(s) |
|
* return: -1 error or >0 copied bytes to variable |
|
*/ |
|
int io_sprintfVar(ait_val_t * __restrict v, const char *fmt, ...); |
|
/* |
|
* io_cmpVar() - Compare two variables |
|
* |
|
* @a = 1st variable |
|
* @b = 2nd variable |
|
* return: 0 is equal or !=0 is different |
|
*/ |
|
inline int io_cmpVar(ait_val_t * __restrict a, ait_val_t * __restrict b); |
|
/* |
|
* io_hashVar() - Generate hash key for variable from string or value |
|
* |
|
* @v = variable |
|
* @key = key string for hash, if =NULL hash will built from variable |
* return: hash key |
* return: hash key |
*/ |
*/ |
unsigned short io_hashVar(ait_val_t * __restrict v); | unsigned short io_hashVar(ait_val_t * __restrict v, const char * __restrict key); |
/* |
/* |
* io_allocVars() - Allocate ait_val_t array |
* io_allocVars() - Allocate ait_val_t array |
* |
* |
Line 607 inline void io_sortVarsByVal(array_t * __restrict vars
|
Line 649 inline void io_sortVarsByVal(array_t * __restrict vars
|
* @key = Search key |
* @key = Search key |
* return: NULL error or not found, !=NULL valid element |
* return: NULL error or not found, !=NULL valid element |
*/ |
*/ |
ait_val_t *io_findKeyVars(array_t * __restrict vars, u_short key); | ait_val_t *io_findKeyVars(array_t * __restrict vars, unsigned short key); |
| /* |
| * io_findKeyHash() - Find variable by hash string from array |
| * |
| * @vars = Variables |
| * @key = Search string |
| * return: NULL error or not found, !=NULL valid element |
| */ |
| inline ait_val_t *io_findKeyHash(array_t * __restrict vars, const char * __restrict key); |
/* |
/* |
* io_hashKeyVars() - Generate hash keys for variables |
* io_hashKeyVars() - Generate hash keys for variables |
* |
* |