arbtree.h   arbtree.h 
#ifndef _LIBHX_ARBTREE_H #ifndef _LIBHX_ARBTREE_H
#define _LIBHX_ARBTREE_H 1 #define _LIBHX_ARBTREE_H 1
#include <sys/types.h>
#ifdef __cplusplus #ifdef __cplusplus
extern "C" { extern "C" {
#endif #endif
enum { enum {
/* activates key=>value pairs */ /* activates key=>value pairs */
HXBT_MAP = 1 << 0, HXBT_MAP = 1 << 0,
/* copy key (only for string keys!) */ /* copy key */
HXBT_CKEY = 1 << 1, HXBT_CKEY = 1 << 1,
/* copy data (only for string data!) */ /* copy data */
HXBT_CDATA = 1 << 2, HXBT_CDATA = 1 << 2,
/* pointer to comparison routine passed */ /* HXbtree_init only: pointer to comparison routine passed */
HXBT_CMPFN = 1 << 3, HXBT_CMPFN = 1 << 3,
/* use direct integer comparison */ /* HXbtree_init only: use direct integer comparison */
HXBT_ICMP = 1 << 4, HXBT_ICMP = 1 << 4,
/* use strcmp() -- abbreviation for HXBT_CMPFN,strcmp */ /* HXbtree_init only:
* use strcmp() -- abbreviation for HXBT_CMPFN,strcmp */
HXBT_SCMP = 1 << 5, HXBT_SCMP = 1 << 5,
HXBT_SKEY = 1 << 5, /* init2 */ /* HXbtree_init2 only: keys are strings */
/* use CIDs for traverser */ HXBT_SKEY = 1 << 5,
/* Copy key during traversal to ease pickup */
HXBT_CID = 1 << 6, HXBT_CID = 1 << 6,
HXBT_SDATA = 1 << 7, /* init2 */ /* HXbtree_init2 only: data are strings */
HXBT_SDATA = 1 << 7,
}; };
struct HXbtree_node { struct HXbtree_node {
struct HXbtree_node *sub[2]; struct HXbtree_node *sub[2];
union { union {
void *key; void *key;
const char *const skey; const char *const skey;
}; };
union { union {
void *data; void *data;
 End of changes. 8 change blocks. 
8 lines changed or deleted 13 lines changed or added


 defs.h   defs.h 
#ifndef _LIBHX_DEFS_H #ifndef _LIBHX_DEFS_H
#define _LIBHX_DEFS_H 1 #define _LIBHX_DEFS_H 1
#ifdef __cplusplus #ifdef __cplusplus
# if defined(__GNUC__) && __GNUC__ >= 4 && !defined(offsetof) # if defined(__GNUC__) && __GNUC__ >= 4 && !defined(offsetof)
/*
* This is here so most programs can skip inclusion
* of stddef.h just to get offsetof.
*/
# define offsetof(type, member) __builtin_offsetof(type, membe r) # define offsetof(type, member) __builtin_offsetof(type, membe r)
# endif # endif
# ifndef offsetof # ifndef offsetof
# define offsetof(type, member) \ # define offsetof(type, member) \
reinterpret_cast<long>(&(static_cast<type *>(NULL)-> member)) reinterpret_cast<long>(&(static_cast<type *>(NULL)-> member))
# endif # endif
# ifndef containerof # ifndef containerof
# define containerof(var, type, member) reinterpret_cast<type *>( \ # define containerof(var, type, member) reinterpret_cast<type *>( \
reinterpret_cast<char *>(var) - offsetof(type, membe r)) reinterpret_cast<char *>(var) - offsetof(type, membe r))
# endif # endif
 End of changes. 1 change blocks. 
0 lines changed or deleted 4 lines changed or added


 list.h   list.h 
#ifndef _LIBHX_LIST_H #ifndef _LIBHX_LIST_H
#define _LIBHX_LIST_H 1 #define _LIBHX_LIST_H 1
#ifdef __cplusplus #ifdef __cplusplus
# include <cstddef> # include <cstddef>
#else #else
# include <stddef.h> # include <stddef.h>
#endif #endif
#include <libHX/defs.h>
#ifdef __cplusplus #ifdef __cplusplus
extern "C" { extern "C" {
#endif #endif
#ifndef container_of #define HXlist_entry(ptr, type, member) containerof((ptr), type, member)
# define container_of(ptr, type, member) ({ \
const typeof(((type *)0)->member) *__mptr = (ptr); \
(type *)((char *)__mptr - offsetof(type, member)); \
})
#endif
#define HXlist_entry(ptr, type, member) container_of((ptr), type, member)
struct HXlist_head { struct HXlist_head {
struct HXlist_head *next, *prev; struct HXlist_head *next, *prev;
}; };
#define HXLIST_HEAD_INIT(name) {&(name), &(name)} #define HXLIST_HEAD_INIT(name) {&(name), &(name)}
#define HXLIST_HEAD(name) \ #define HXLIST_HEAD(name) \
struct HXlist_head name = HXLIST_HEAD_INIT(name) struct HXlist_head name = HXLIST_HEAD_INIT(name)
static inline void HXlist_init(struct HXlist_head *list) static inline void HXlist_init(struct HXlist_head *list)
 End of changes. 2 change blocks. 
7 lines changed or deleted 2 lines changed or added


 option.h   option.h 
#ifndef _LIBHX_OPTION_H #ifndef _LIBHX_OPTION_H
#define _LIBHX_OPTION_H 1 #define _LIBHX_OPTION_H 1
#ifdef __cplusplus #ifdef __cplusplus
# include <cstdio> # include <cstdio>
#else #else
# include <stdio.h> # include <stdio.h>
#endif #endif
#include <sys/types.h>
#ifdef __cplusplus #ifdef __cplusplus
extern "C" { extern "C" {
#endif #endif
#ifndef __libhx_internal_hxmc_t_defined #ifndef __libhx_internal_hxmc_t_defined
#define __libhx_internal_hxmc_t_defined 1 #define __libhx_internal_hxmc_t_defined 1
typedef char hxmc_t; typedef char hxmc_t;
#endif #endif
 End of changes. 1 change blocks. 
0 lines changed or deleted 1 lines changed or added

This html diff was produced by rfcdiff 1.41. The latest version is available from http://tools.ietf.org/tools/rfcdiff/