Diff for /libaitio/inc/aitio.h between versions 1.7.2.4 and 1.9.2.2

version 1.7.2.4, 2011/04/20 08:09:13 version 1.9.2.2, 2011/05/17 20:25:20
Line 27  are met: Line 27  are met:
    must display the following acknowledgement:     must display the following acknowledgement:
 This product includes software developed by Michael Pounov <misho@elwix.org>  This product includes software developed by Michael Pounov <misho@elwix.org>
 ELWIX - Embedded LightWeight unIX and its contributors.  ELWIX - Embedded LightWeight unIX and its contributors.
4. Neither the name of the University nor the names of its contributors4. Neither the name of AITNET nor the names of its contributors
    may be used to endorse or promote products derived from this software     may be used to endorse or promote products derived from this software
    without specific prior written permission.     without specific prior written permission.
   
THIS SOFTWARE IS PROVIDED BY THE REGENTS AND CONTRIBUTORS ``AS IS'' ANDTHIS SOFTWARE IS PROVIDED BY AITNET AND CONTRIBUTORS ``AS IS'' AND
 ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE  ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
 IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE  IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
 ARE DISCLAIMED.  IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE  ARE DISCLAIMED.  IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE
Line 55  SUCH DAMAGE. Line 55  SUCH DAMAGE.
 #define VACUUM_BETWEEN  2  #define VACUUM_BETWEEN  2
   
   
   typedef void ** sarr_seg_t;
   typedef struct _tagSplitArray {
           int             sarr_num;
           int             sarr_seg;
           int             sarr_siz;
           sarr_seg_t      *sarr_data;
   } sarr_t;
   
 typedef struct _tagArray {  typedef struct _tagArray {
         int     arr_num;          int     arr_num;
         void    **arr_data;          void    **arr_data;
Line 252  int io_arrayVacuum(array_t * __restrict arr, int fromW Line 260  int io_arrayVacuum(array_t * __restrict arr, int fromW
                                                 assert(_arr && _arr->arr_num > _d); \                                                  assert(_arr && _arr->arr_num > _d); \
                                                 *(_arr->arr_data + _d) = (void*) _ptr; \                                                  *(_arr->arr_data + _d) = (void*) _ptr; \
                                         } while (0)                                          } while (0)
   #define io_arrayDel(_arr, _d)           do { \
                                                   assert(_arr && _arr->arr_num > _d); \
                                                   *(_arr->arr_data + _d) = NULL; \
                                           } while (0)
   
 /*  /*
  * io_arrayPush() - Push element into dynamic array like stack manner, place at first empty position   * io_arrayPush() - Push element into dynamic array like stack manner, place at first empty position
Line 302  int io_arrayMake(char * __restrict psArgs, int nargs,  Line 314  int io_arrayMake(char * __restrict psArgs, int nargs, 
 int io_MakeAV(const char * __restrict csArgs, const char *csDelim,   int io_MakeAV(const char * __restrict csArgs, const char *csDelim, 
                 char * __restrict psAttr, int attrLen, char * __restrict psValue, int valLen);                  char * __restrict psAttr, int attrLen, char * __restrict psValue, int valLen);
   
   /*
    * io_sarrInit() - Create and initialize dynamic split-order array
    * @numItems = Number of Items
    * @segLen = Length of segment
    * return: NULL error, != NULL allocated memory for array
    */
   inline sarr_t *io_sarrInit(int numItems, int segLen);
   /*
    * io_sarrDestroy() - Free all data in dynamic split-order array and Destroy array
    * @parr = Array
    * return: none
    */
   inline void io_sarrDestroy(sarr_t ** __restrict parr);
   /*
    * io_sarrGrow() - Grow/Shrink dynamic split-order array, Use with care when it shrink!!!
    * @arr = Array
    * @newNumItems = Number of Items
    * return: -1 error, 0 ok
    */
   int io_sarrGrow(sarr_t * __restrict arr, int newNumItems);
   /*
    * io_sarrVacuum() - Vacuum dynamic split-order array, empty segments will be freed
    * @arr = Array
    * return: -1 error, >-1 freed segments
    */
   inline int io_sarrVacuum(sarr_t * __restrict arr);
   #define io_sarrSize(_arr)               ((assert(_arr)), _arr->sarr_num)
   /*
    * io_sarrGet() - Get element from dynamic split-order array
    * @arr = Array
    * @idx = Index (warning 1st element is at position 1)
    * return: NULL not found, !=NULL element
    */
   inline void *io_sarrGet(sarr_t * __restrict arr, unsigned int idx);
   /*
    * io_sarrGet2() - Always get element from dynamic split-order array
    *      Function automatic grow array. Good use for Hash tables! 
    * @arr = Array
    * @idx = Index (warning 1st element is at position 1)
    * return: NULL not found, !=NULL element
    */
   void *io_sarrGet2(sarr_t * __restrict arr, unsigned int idx);
   /*
    * io_sarrSet() - Set element to dynamic split-order array
    * @arr = Array
    * @idx = Index (warning 1st element is at position 1)
    * @data = Value
    * return: NULL error or empty, !=NULL old value in element
    */
   inline void *io_sarrSet(sarr_t * __restrict arr, unsigned int idx, void *data);
   #define io_sarrDel(_arr, _idx)          io_sarrSet(_arr, _idx, NULL)
   #define io_sarr(_arr, _idx, _type)      (_type)io_sarrGet(_arr, _idx)
   
   /*
    * io_CopyEnv() Copy environment to new environment array;
    * @oldenv = Environment array
    * return: NULL error; !=NULL Allocated new environment array(must be free)
   */
   char **io_CopyEnv(const char **oldenv);
   /*
    * io_ExecArgs() Build exec arguments from other array
    * @psProg = Program name for execute
    * @oldarg = Arguments array
    * return: NULL error; !=NULL Allocated execution array(must be free)
   */
   char **io_ExecArgs(const char *psProg, const char **oldarg);
   /*
    * io_FreeNullTerm() Free dynamic allocated null terminated array with strings
    * @arr = Pointer to array for free
    * return: none
   */
   inline void io_FreeNullTerm(char *** __restrict arr);
   
 /*  /*
  * ioURLGet() Parse and get data from input URL   * ioURLGet() Parse and get data from input URL

Removed from v.1.7.2.4  
changed lines
  Added in v.1.9.2.2


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