mowgli.h | mowgli.h | |||
---|---|---|---|---|
skipping to change at line 29 | skipping to change at line 29 | |||
* STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING | * STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING | |||
* IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE | * IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE | |||
* POSSIBILITY OF SUCH DAMAGE. | * POSSIBILITY OF SUCH DAMAGE. | |||
*/ | */ | |||
#ifndef __MOWGLI_STAND_H__ | #ifndef __MOWGLI_STAND_H__ | |||
#define __MOWGLI_STAND_H__ | #define __MOWGLI_STAND_H__ | |||
#ifdef __cplusplus | #ifdef __cplusplus | |||
# define MOWGLI_DECLS_START extern "C" { | # define MOWGLI_DECLS_START extern "C" { | |||
# define MOWGLI_DECLS_END }; | # define MOWGLI_DECLS_END } | |||
#else | #else | |||
# define MOWGLI_DECLS_START | # define MOWGLI_DECLS_START | |||
# define MOWGLI_DECLS_END | # define MOWGLI_DECLS_END | |||
#endif | #endif | |||
#ifdef MOWGLI_CORE | #ifdef MOWGLI_CORE | |||
# include "mowgli_config.h" | # include "mowgli_config.h" | |||
#endif | #endif | |||
#include "mowgli_stdinc.h" | #include "mowgli_stdinc.h" | |||
skipping to change at line 55 | skipping to change at line 55 | |||
#include "mowgli_exception.h" | #include "mowgli_exception.h" | |||
#include "mowgli_iterator.h" | #include "mowgli_iterator.h" | |||
#include "mowgli_alloc.h" | #include "mowgli_alloc.h" | |||
#include "mowgli_spinlock.h" | #include "mowgli_spinlock.h" | |||
#include "mowgli_list.h" | #include "mowgli_list.h" | |||
#include "mowgli_object_class.h" | #include "mowgli_object_class.h" | |||
#include "mowgli_object.h" | #include "mowgli_object.h" | |||
#include "mowgli_allocation_policy.h" | #include "mowgli_allocation_policy.h" | |||
#include "mowgli_dictionary.h" | #include "mowgli_dictionary.h" | |||
#include "mowgli_patricia.h" | ||||
#include "mowgli_mempool.h" | #include "mowgli_mempool.h" | |||
#include "mowgli_module.h" | #include "mowgli_module.h" | |||
#include "mowgli_queue.h" | #include "mowgli_queue.h" | |||
#include "mowgli_hash.h" | #include "mowgli_hash.h" | |||
#include "mowgli_heap.h" | #include "mowgli_heap.h" | |||
#include "mowgli_init.h" | #include "mowgli_init.h" | |||
#include "mowgli_bitvector.h" | #include "mowgli_bitvector.h" | |||
#include "mowgli_hook.h" | #include "mowgli_hook.h" | |||
#include "mowgli_signal.h" | #include "mowgli_signal.h" | |||
#include "mowgli_error_backtrace.h" | #include "mowgli_error_backtrace.h" | |||
End of changes. 2 change blocks. | ||||
1 lines changed or deleted | 2 lines changed or added | |||
mowgli_config.h | mowgli_config.h | |||
---|---|---|---|---|
skipping to change at line 133 | skipping to change at line 133 | |||
slash. */ | slash. */ | |||
#define LSTAT_FOLLOWS_SLASHED_SYMLINK 1 | #define LSTAT_FOLLOWS_SLASHED_SYMLINK 1 | |||
/* Define to the address where bug reports for this package should be sent. */ | /* Define to the address where bug reports for this package should be sent. */ | |||
#define PACKAGE_BUGREPORT "bugs+libmowgli@atheme.org" | #define PACKAGE_BUGREPORT "bugs+libmowgli@atheme.org" | |||
/* Define to the full name of this package. */ | /* Define to the full name of this package. */ | |||
#define PACKAGE_NAME "libmowgli" | #define PACKAGE_NAME "libmowgli" | |||
/* Define to the full name and version of this package. */ | /* Define to the full name and version of this package. */ | |||
#define PACKAGE_STRING "libmowgli 0.6.0" | #define PACKAGE_STRING "libmowgli 0.7.0" | |||
/* Define to the one symbol short name of this package. */ | /* Define to the one symbol short name of this package. */ | |||
#define PACKAGE_TARNAME "libmowgli" | #define PACKAGE_TARNAME "libmowgli" | |||
/* Define to the version of this package. */ | /* Define to the version of this package. */ | |||
#define PACKAGE_VERSION "0.6.0" | #define PACKAGE_VERSION "0.7.0" | |||
/* Define to 1 if you have the ANSI C header files. */ | /* Define to 1 if you have the ANSI C header files. */ | |||
#define STDC_HEADERS 1 | #define STDC_HEADERS 1 | |||
/* Define to empty if `const' does not conform to ANSI C. */ | /* Define to empty if `const' does not conform to ANSI C. */ | |||
/* #undef const */ | /* #undef const */ | |||
End of changes. 2 change blocks. | ||||
2 lines changed or deleted | 2 lines changed or added | |||
mowgli_dictionary.h | mowgli_dictionary.h | |||
---|---|---|---|---|
skipping to change at line 50 | skipping to change at line 50 | |||
char *key; | char *key; | |||
int position; | int position; | |||
}; | }; | |||
/* | /* | |||
* mowgli_dictionary_iteration_state_t, private. | * mowgli_dictionary_iteration_state_t, private. | |||
*/ | */ | |||
struct mowgli_dictionary_iteration_state_ | struct mowgli_dictionary_iteration_state_ | |||
{ | { | |||
mowgli_dictionary_elem_t *cur, *next; | mowgli_dictionary_elem_t *cur, *next; | |||
void *pspare[4]; | ||||
int ispare[4]; | ||||
}; | }; | |||
typedef struct mowgli_dictionary_iteration_state_ mowgli_dictionary_iterati on_state_t; | typedef struct mowgli_dictionary_iteration_state_ mowgli_dictionary_iterati on_state_t; | |||
/* | /* | |||
* this is a convenience macro for inlining iteration of dictionaries. | * this is a convenience macro for inlining iteration of dictionaries. | |||
*/ | */ | |||
#define MOWGLI_DICTIONARY_FOREACH(element, state, dict) for (mowgli_diction ary_foreach_start((dict), (state)); (element = mowgli_dictionary_foreach_cu r((dict), (state))); mowgli_dictionary_foreach_next((dict), (state))) | #define MOWGLI_DICTIONARY_FOREACH(element, state, dict) for (mowgli_diction ary_foreach_start((dict), (state)); (element = mowgli_dictionary_foreach_cu r((dict), (state))); mowgli_dictionary_foreach_next((dict), (state))) | |||
/* | /* | |||
End of changes. 1 change blocks. | ||||
0 lines changed or deleted | 2 lines changed or added | |||
mowgli_heap.h | mowgli_heap.h | |||
---|---|---|---|---|
skipping to change at line 33 | skipping to change at line 33 | |||
* | * | |||
* Legal note: code devised from claro.base.block module r288 (Pre MPL) | * Legal note: code devised from claro.base.block module r288 (Pre MPL) | |||
*/ | */ | |||
#ifndef __MOWGLI_HEAP_H__ | #ifndef __MOWGLI_HEAP_H__ | |||
#define __MOWGLI_HEAP_H__ | #define __MOWGLI_HEAP_H__ | |||
typedef struct mowgli_heap_ mowgli_heap_t; | typedef struct mowgli_heap_ mowgli_heap_t; | |||
typedef struct mowgli_block_ mowgli_block_t; | typedef struct mowgli_block_ mowgli_block_t; | |||
/* A block of memory allocated to the allocator */ | ||||
struct mowgli_block_ | ||||
{ | ||||
mowgli_node_t node; | ||||
/* link back to our heap */ | ||||
mowgli_heap_t *heap; | ||||
/* pointer to the first item */ | ||||
void *data; | ||||
/* singly linked list of free items */ | ||||
void *first_free; | ||||
int num_allocated; | ||||
}; | ||||
/* A pile of blocks */ | ||||
struct mowgli_heap_ | ||||
{ | ||||
mowgli_node_t node; | ||||
unsigned int elem_size; | ||||
unsigned int mowgli_heap_elems; | ||||
unsigned int free_elems; | ||||
unsigned int alloc_size; | ||||
unsigned int flags; | ||||
mowgli_list_t blocks; | ||||
mowgli_allocation_policy_t *allocator; | ||||
mowgli_boolean_t use_mmap; | ||||
}; | ||||
/* Flag for mowgli_heap_create */ | /* Flag for mowgli_heap_create */ | |||
#define BH_DONTCARE 0 | #define BH_DONTCARE 0 | |||
#define BH_NOW 1 | #define BH_NOW 1 | |||
#define BH_LAZY 0 | #define BH_LAZY 0 | |||
/* Functions for heaps */ | /* Functions for heaps */ | |||
extern mowgli_heap_t *mowgli_heap_create(size_t elem_size, size_t mowgli_he ap_elems, unsigned int flags); | extern mowgli_heap_t *mowgli_heap_create(size_t elem_size, size_t mowgli_he ap_elems, unsigned int flags); | |||
extern mowgli_heap_t *mowgli_heap_create_full(size_t elem_size, size_t mowg li_heap_elems, unsigned int flags, | extern mowgli_heap_t *mowgli_heap_create_full(size_t elem_size, size_t mowg li_heap_elems, unsigned int flags, | |||
mowgli_allocation_policy_t *allocator); | mowgli_allocation_policy_t *allocator); | |||
End of changes. 1 change blocks. | ||||
36 lines changed or deleted | 0 lines changed or added | |||
mowgli_list.h | mowgli_list.h | |||
---|---|---|---|---|
skipping to change at line 44 | skipping to change at line 44 | |||
#define MOWGLI_LIST_FOREACH_SAFE(n, tn, head) for (n = (head), tn = n ? n-> next : NULL; n != NULL; n = tn, tn = n ? n->next : NULL) | #define MOWGLI_LIST_FOREACH_SAFE(n, tn, head) for (n = (head), tn = n ? n-> next : NULL; n != NULL; n = tn, tn = n ? n->next : NULL) | |||
/* list node struct */ | /* list node struct */ | |||
typedef struct mowgli_node_ mowgli_node_t; | typedef struct mowgli_node_ mowgli_node_t; | |||
typedef struct mowgli_list_ mowgli_list_t; | typedef struct mowgli_list_ mowgli_list_t; | |||
struct mowgli_node_ | struct mowgli_node_ | |||
{ | { | |||
struct mowgli_node_ *next, *prev; | struct mowgli_node_ *next, *prev; | |||
void *data; /* pointer to real structure */ | void *data; /* pointer to real structure */ | |||
mowgli_list_t *parent; | ||||
}; | }; | |||
/* node list struct */ | /* node list struct */ | |||
struct mowgli_list_ | struct mowgli_list_ | |||
{ | { | |||
mowgli_node_t *head, *tail; | mowgli_node_t *head, *tail; | |||
size_t count; /* how many entries in the list */ | size_t count; /* how many entries in the list */ | |||
}; | }; | |||
extern void mowgli_node_init(void); | extern void mowgli_node_init(void); | |||
skipping to change at line 66 | skipping to change at line 65 | |||
extern void mowgli_node_free(mowgli_node_t *n); | extern void mowgli_node_free(mowgli_node_t *n); | |||
extern void mowgli_node_add(void *data, mowgli_node_t *n, mowgli_list_t *l) ; | extern void mowgli_node_add(void *data, mowgli_node_t *n, mowgli_list_t *l) ; | |||
extern void mowgli_node_add_head(void *data, mowgli_node_t *n, mowgli_list_ t *l); | extern void mowgli_node_add_head(void *data, mowgli_node_t *n, mowgli_list_ t *l); | |||
extern void mowgli_node_add_before(void *data, mowgli_node_t *n, mowgli_lis t_t *l, mowgli_node_t *before); | extern void mowgli_node_add_before(void *data, mowgli_node_t *n, mowgli_lis t_t *l, mowgli_node_t *before); | |||
extern void mowgli_node_add_after(void *data, mowgli_node_t *n, mowgli_list _t *l, mowgli_node_t *before); | extern void mowgli_node_add_after(void *data, mowgli_node_t *n, mowgli_list _t *l, mowgli_node_t *before); | |||
extern void mowgli_node_insert(void *data, mowgli_node_t *n, mowgli_list_t *l, int position); | extern void mowgli_node_insert(void *data, mowgli_node_t *n, mowgli_list_t *l, int position); | |||
extern int mowgli_node_index(mowgli_node_t *n, mowgli_list_t *l); | extern int mowgli_node_index(mowgli_node_t *n, mowgli_list_t *l); | |||
extern void mowgli_node_delete(mowgli_node_t *n, mowgli_list_t *l); | extern void mowgli_node_delete(mowgli_node_t *n, mowgli_list_t *l); | |||
extern mowgli_node_t *mowgli_node_find(void *data, mowgli_list_t *l); | extern mowgli_node_t *mowgli_node_find(void *data, mowgli_list_t *l); | |||
extern void mowgli_node_move(mowgli_node_t *m, mowgli_list_t *oldlist, mowg li_list_t *newlist); | extern void mowgli_node_move(mowgli_node_t *m, mowgli_list_t *oldlist, mowg li_list_t *newlist); | |||
extern mowgli_list_t *mowgli_node_parent(mowgli_node_t *n); | ||||
extern mowgli_node_t *mowgli_node_nth(mowgli_list_t *l, int pos); | extern mowgli_node_t *mowgli_node_nth(mowgli_list_t *l, int pos); | |||
extern void *mowgli_node_nth_data(mowgli_list_t *l, int pos); | extern void *mowgli_node_nth_data(mowgli_list_t *l, int pos); | |||
typedef int (*mowgli_list_comparator_t)(mowgli_node_t *n, mowgli_node_t *n2 , void *opaque); | typedef int (*mowgli_list_comparator_t)(mowgli_node_t *n, mowgli_node_t *n2 , void *opaque); | |||
extern mowgli_list_t *mowgli_list_create(void); | extern mowgli_list_t *mowgli_list_create(void); | |||
extern void mowgli_list_free(mowgli_list_t *l); | extern void mowgli_list_free(mowgli_list_t *l); | |||
extern void mowgli_list_concat(mowgli_list_t *l, mowgli_list_t *l2); | extern void mowgli_list_concat(mowgli_list_t *l, mowgli_list_t *l2); | |||
extern void mowgli_list_reverse(mowgli_list_t *l); | extern void mowgli_list_reverse(mowgli_list_t *l); | |||
extern void mowgli_list_sort(mowgli_list_t *l, mowgli_list_comparator_t com p, void *opaque); | extern void mowgli_list_sort(mowgli_list_t *l, mowgli_list_comparator_t com p, void *opaque); | |||
End of changes. 2 change blocks. | ||||
2 lines changed or deleted | 0 lines changed or added | |||
mowgli_logger.h | mowgli_logger.h | |||
---|---|---|---|---|
skipping to change at line 30 | skipping to change at line 30 | |||
* IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE | * IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE | |||
* POSSIBILITY OF SUCH DAMAGE. | * POSSIBILITY OF SUCH DAMAGE. | |||
*/ | */ | |||
#ifndef __MOWGLI_LOGGER_H__ | #ifndef __MOWGLI_LOGGER_H__ | |||
#define __MOWGLI_LOGGER_H__ | #define __MOWGLI_LOGGER_H__ | |||
typedef void (*mowgli_log_cb_t)(const char *); | typedef void (*mowgli_log_cb_t)(const char *); | |||
#ifdef __GNUC__ | #ifdef __GNUC__ | |||
# define mowgli_log(fmt, args ...) mowgli_log_real(__FILE__, __LINE__, __PR ETTY_FUNCTION__, fmt, ## args) | # define mowgli_log(...) mowgli_log_real(__FILE__, __LINE__, __PRETTY_FUNCT ION__, __VA_ARGS__) | |||
#else | #else | |||
# define mowgli_log(fmt, args ...) mowgli_log_real(__FILE__, __LINE__, "", fmt, ## args) | # define mowgli_log(...) mowgli_log_real(__FILE__, __LINE__, __func__, __VA _ARGS__) | |||
#endif | #endif | |||
extern void mowgli_log_real(const char *file, int line, const char *func, c onst char *buf, ...); | extern void mowgli_log_real(const char *file, int line, const char *func, c onst char *buf, ...); | |||
extern void mowgli_log_set_cb(mowgli_log_cb_t callback); | ||||
#endif | #endif | |||
End of changes. 3 change blocks. | ||||
2 lines changed or deleted | 4 lines changed or added | |||