Diff for /libaitio/inc/aitio.h between versions 1.11.2.4 and 1.11.2.5

version 1.11.2.4, 2011/08/29 23:27:22 version 1.11.2.5, 2011/08/30 08:54:25
Line 110  typedef enum { Line 110  typedef enum {
         buffer, string, blob, array,    /* buffer -> uint8_t*; string -> int8_t*;           buffer, string, blob, array,    /* buffer -> uint8_t*; string -> int8_t*; 
                                                 blob -> void*(+socket); array -> array_t* */                                                  blob -> void*(+socket); array -> array_t* */
         u8, u16, u32, u64,              /* unsigned integers ... */          u8, u16, u32, u64,              /* unsigned integers ... */
        i8, i16, i32, i64               /* integers ... */        i8, i16, i32, i64,                /* integers ... */
         zeroCopy = 0x80                 /* OR attribute used from RPC dispatcher to mark data in val union 
                                                 is zero copied from network buffer */
 } ait_type_t;  } ait_type_t;
   
 typedef struct {  typedef struct {
Line 132  typedef struct { Line 134  typedef struct {
         } val;          } val;
 } __packed ait_val_t;  } __packed ait_val_t;
   
#define AIT_TYPE(_vl)                   ((ait_type_t) (_vl)->val_type)#define AIT_TYPE(_vl)                   ((ait_type_t) (_vl)->val_type & ~zeroCopy)
 #define AIT_LEN(_vl)                    (_vl)->val_len  #define AIT_LEN(_vl)                    (_vl)->val_len
#define AIT_BLOB_CHUNKS(_vl, _n)        (assert((_vl)), (_vl)->val_len / _n + ((_vl)->val_len % _n) ? 1 : 0)#define AIT_BLOB_CHUNKS(_vl, _n)        (assert((_vl)), AIT_LEN((_vl)) / _n + (AIT_LEN((_vl)) % _n) ? 1 : 0)
#define AIT_ISEMPTY(_vl)                (assert((_vl)), (_vl)->val_type == empty)#define AIT_ISEMPTY(_vl)                (assert((_vl)), AIT_TYPE((_vl)) == empty)
   
#define AIT_GET_ARRAY(_vl)              (assert((_vl)), assert((_vl)->val_type == array), \#define AIT_ISZCOPY(_vl)                (assert((_vl)), (_vl)->val_type & zeroCopy)
 #define AIT_ADDZCOPY(_vl)               (assert((_vl)), (_vl)->val_type | zeroCopy)
 #define AIT_DELZCOPY(_vl)               (assert((_vl)), (_vl)->val_type &= ~zeroCopy)
 
 #define AIT_GET_ARRAY(_vl)              (assert((_vl)), assert(AIT_TYPE((_vl)) == array), \
                                                 ((array_t*) (_vl)->val.array))                                                  ((array_t*) (_vl)->val.array))
#define AIT_GET_BUF(_vl)                (assert((_vl)), assert((_vl)->val_type == buffer), (_vl)->val.buffer)#define AIT_GET_BUF(_vl)                (assert((_vl)), assert(AIT_TYPE((_vl)) == buffer), (_vl)->val.buffer)
#define AIT_GET_STR(_vl)                (assert((_vl)), assert((_vl)->val_type == string), (_vl)->val.string)#define AIT_GET_STR(_vl)                (assert((_vl)), assert(AIT_TYPE((_vl)) == string), (_vl)->val.string)
#define AIT_GET_BLOB(_vl)               (assert((_vl)), assert((_vl)->val_type == blob), (_vl)->val.blob)#define AIT_GET_BLOB(_vl)               (assert((_vl)), assert(AIT_TYPE((_vl)) == blob), (_vl)->val.blob)
#define AIT_GET_U8(_vl)                 (assert((_vl)), assert((_vl)->val_type == u8), (_vl)->val.u8)#define AIT_GET_U8(_vl)                 (assert((_vl)), assert(AIT_TYPE((_vl)) == u8), (_vl)->val.u8)
#define AIT_GET_U16(_vl)                (assert((_vl)), assert((_vl)->val_type == u16), (_vl)->val.u16)#define AIT_GET_U16(_vl)                (assert((_vl)), assert(AIT_TYPE((_vl)) == u16), (_vl)->val.u16)
#define AIT_GET_U32(_vl)                (assert((_vl)), assert((_vl)->val_type == u32), (_vl)->val.u32)#define AIT_GET_U32(_vl)                (assert((_vl)), assert(AIT_TYPE((_vl)) == u32), (_vl)->val.u32)
#define AIT_GET_U64(_vl)                (assert((_vl)), assert((_vl)->val_type == u64), (_vl)->val.u64)#define AIT_GET_U64(_vl)                (assert((_vl)), assert(AIT_TYPE((_vl)) == u64), (_vl)->val.u64)
#define AIT_GET_I8(_vl)                 (assert((_vl)), assert((_vl)->val_type == i8), (_vl)->val.i8)#define AIT_GET_I8(_vl)                 (assert((_vl)), assert(AIT_TYPE((_vl)) == i8), (_vl)->val.i8)
#define AIT_GET_I16(_vl)                (assert((_vl)), assert((_vl)->val_type == i16), (_vl)->val.i16)#define AIT_GET_I16(_vl)                (assert((_vl)), assert(AIT_TYPE((_vl)) == i16), (_vl)->val.i16)
#define AIT_GET_I32(_vl)                (assert((_vl)), assert((_vl)->val_type == i32), (_vl)->val.i32)#define AIT_GET_I32(_vl)                (assert((_vl)), assert(AIT_TYPE((_vl)) == i32), (_vl)->val.i32)
#define AIT_GET_I64(_vl)                (assert((_vl)), assert((_vl)->val_type == i64), (_vl)->val.i64)#define AIT_GET_I64(_vl)                (assert((_vl)), assert(AIT_TYPE((_vl)) == i64), (_vl)->val.i64)
   
 #define AIT_SET_BUF(_vl, _v, _len)      do { ait_val_t *__val = (_vl); assert(__val); assert((_v)); \  #define AIT_SET_BUF(_vl, _v, _len)      do { ait_val_t *__val = (_vl); assert(__val); assert((_v)); \
                                                 __val->val.buffer = malloc(_len); \                                                  __val->val.buffer = malloc(_len); \
Line 199  typedef struct { Line 205  typedef struct {
                                                 __val->val_type = i64; __val->val.i64 = _n; \                                                  __val->val_type = i64; __val->val.i64 = _n; \
                                                 AIT_LEN(__val) = sizeof(int64_t); } while (0)                                                  AIT_LEN(__val) = sizeof(int64_t); } while (0)
   
                                           /* if attribute zeroCopy is set not execute 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 (__val->val_type) { \                                                  switch (__val->val_type) { \
                                                         case buffer: \                                                          case buffer: \

Removed from v.1.11.2.4  
changed lines
  Added in v.1.11.2.5


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