Diff for /libelwix/inc/elwix/aiov.h between versions 1.1.2.1 and 1.2.38.1

version 1.1.2.1, 2021/03/18 13:57:21 version 1.2.38.1, 2024/12/05 12:33:49
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 - 2021Copyright 2004 - 2024
         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 46  SUCH DAMAGE. Line 46  SUCH DAMAGE.
 #ifndef __AIOV_H  #ifndef __AIOV_H
 #define __AIOV_H  #define __AIOV_H
   
   
   struct tagIOV {
           size_t          iov_size;
           struct iovec    *iov_array;
   };
   typedef struct tagIOV iovec_t;
   
   #define iov_Size(x)     (x)->iov_size
   #define iov_Array(x)    (x)->iov_array
   
   #ifdef __cplusplus
   extern "C" {
   #endif
   
   /*
    * iov_Init() - Init new iovec array
    *
    * return: =NULL error, !=NULL ready array
    */
   iovec_t *iov_Init();
   /*
    * iov_Destroy() - Destroy iovec array
    *
    * @iov = iovec array
    * return: none
    */
   void iov_Destroy(iovec_t ** __restrict iov);
   /*
    * iov_Get() - Get data and length from position
    *
    * @iov = iovec array
    * @pos = position
    * @data = data
    * @datlen = data length
    * return: -1 error, 0 ok
    */
   int iov_Get(iovec_t * __restrict iov, unsigned int pos, void *data, size_t *datlen);
   /*
    * iov_Insert() - Insert data at position into array
    *
    * @iov = iovec array
    * @pos = position
    * @data = data
    * @datlen = data length
    * return: -1 error, 0 ok
    */
   int iov_Insert(iovec_t * __restrict iov, unsigned int pos, void *data, size_t datlen);
   /*
    * iov_Delete() - Delete data at position into array
    *
    * @iov = iovec array
    * @pos = position
    * @mustfree = data must be free before delete
    * return: -1 error, 0 ok
    */
   int iov_Delete(iovec_t * __restrict iov, unsigned int pos, int mustfree);
   /*
    * iov_Push() - Push data on first free position
    *
    * @iov = iovec array
    * @data = data
    * @datlen = data length
    * return: -1 error, !=-1 pushed at position
    */
   int iov_Push(iovec_t * __restrict iov, void *data, size_t datlen);
   /*
    * iov_Pop() - Pop data from last used position
    *
    * @iov = iovec array
    * @data = data
    * @datlen = data length
    * @mustfree = data must be free before delete
    * return: -1 error, !=-1 poped from position
    */
   int iov_Pop(iovec_t * __restrict iov, void *data, size_t *datlen, int mustfree);
   /*
    * iov_PushPair() - Push pair/named data on first free position
    *
    * @iov = iovec array
    * @name = name of data
    * @data = data
    * @datlen = data length
    * return: -1 error, !=-1 pushed at position
    */
   int iov_PushPair(iovec_t * __restrict iov, const char *name, void *data, size_t datlen);
   /*
    * iov_PopPair() - Pop pair/named data from last used position
    *
    * @iov = iovec array
    * @name = name of data
    * @namlen = name length
    * @data = data
    * @datlen = data length
    * @mustfree = data must be free before delete
    * return: -1 error, !=-1 poped from position
    */
   int iov_PopPair(iovec_t * __restrict iov, char *name, size_t *namlen, 
                   void *data, size_t *datlen, int mustfree);
   /*
    * iov_FreePairs() - Free pairs/named data in iovec array
    *
    * @iov = iovec array
    * @mustfree = data must be free before delete
    * return: -1 error or 0 ok
    */
   int iov_FreePairs(iovec_t * __restrict iov, int mustfree);
   
   /*
    * iov_Debug() - Debug of iovec array
    *
    * @iov = iovec array
    * return: none
    */
   void iov_Debug(iovec_t * __restrict iov);
   
   #ifdef __cplusplus
   }
   #endif
   
 #endif  #endif

Removed from v.1.1.2.1  
changed lines
  Added in v.1.2.38.1


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