Idź do dokumentacji tego pliku. 1 #ifndef __EKG_DYNSTUFF_INLINE_H 2 #define __EKG_DYNSTUFF_INLINE_H 8 #define __DYNSTUFF_LIST_ADD(lista, typ, __notused) \ 9 void lista##_add(typ *new) { list_add3((list_t *) (void *) &lista, (list_t) new); } 11 #define __DYNSTUFF_LIST_ADD_BEGINNING(lista, typ, __notused) \ 12 void lista##_add(typ *new) { list_add_beginning3((list_t *) (void *) &lista, (list_t) new); } 14 #define __DYNSTUFF_LIST_ADD_SORTED(lista, typ, comparision) \ 15 void lista##_add(typ *new) { list_add_sorted3((list_t *) (void *) &lista, (list_t) new, (void *) comparision); } 17 #define __DYNSTUFF_LIST_REMOVE_SAFE(lista, typ, free_func) \ 18 void lista##_remove(typ *elem) { list_remove3((list_t *) (void *) &lista, (list_t) elem, (void *) free_func); } 20 #define __DYNSTUFF_LIST_REMOVE_ITER(lista, typ, free_func) \ 21 typ *lista##_removei(typ *elem) { return list_remove3i((list_t *) (void *) &lista, (list_t) elem, (void *) free_func); } 23 #define __DYNSTUFF_LIST_DESTROY(lista, typ, free_func) \ 24 void lista##_destroy(void) { list_destroy3((list_t) lista, (void *) free_func); lista = NULL; } 28 #define __DYNSTUFF_ADD(prefix, typ, __notused) \ 29 void prefix##_add(typ **lista, typ *new) { list_add3((list_t *) lista, (list_t) new); } 31 #define __DYNSTUFF_ADD_BEGINNING(prefix, typ, __notused) \ 32 void prefix##_add(typ **lista, typ *new) { list_add_beginning3((list_t *) lista, (list_t) new); } 34 #define __DYNSTUFF_ADD_SORTED(prefix, typ, comparision) \ 35 void prefix##_add(typ **lista, typ *new) { list_add_sorted3((list_t *) lista, (list_t) new, (void *) comparision); } 37 #define __DYNSTUFF_REMOVE_SAFE(prefix, typ, free_func) \ 38 void prefix##_remove(typ **lista, typ *elem) { \ 39 list_remove3((list_t *) lista, (list_t) elem, (void *) free_func); \ 42 #define __DYNSTUFF_DESTROY(prefix, typ, free_func) \ 43 void prefix##_destroy(typ **lista) { \ 44 list_destroy3((list_t) *lista, (void *) free_func); \ 48 #define __DYNSTUFF_NOREMOVE(lista, typ, free_func) 49 #define __DYNSTUFF_NOUNLINK(lista, typ) 50 #define __DYNSTUFF_NOCOUNT(lista, typ) 51 #define __DYNSTUFF_NODESTROY(lista, typ, free_func) 53 #define DYNSTUFF_LIST_DECLARE_FULL(lista, type, compare_func, free_func, list_add, list_remove, list_remove2, list_unlink, list_destroy, list_count) \ 54 list_add(lista, type, compare_func) \ 55 list_remove(lista, type, free_func) \ 56 list_remove2(lista, type, free_func) \ 57 list_unlink(lista, type) \ 58 list_destroy(lista, type, free_func) \ 59 list_count(lista, type) 61 #define DYNSTUFF_LIST_DECLARE(lista, type, free_func, list_add, list_remove, list_destroy) \ 62 DYNSTUFF_LIST_DECLARE_WC(lista, type, free_func, list_add, list_remove, list_destroy, __DYNSTUFF_NOCOUNT) 64 #define DYNSTUFF_LIST_DECLARE_NF(lista, type, list_add, list_unlink) \ 65 DYNSTUFF_LIST_DECLARE_FULL(lista, type, NULL, NULL, list_add, __DYNSTUFF_NOREMOVE, __DYNSTUFF_NOREMOVE, list_unlink, __DYNSTUFF_NODESTROY, __DYNSTUFF_NOCOUNT) 67 #define DYNSTUFF_LIST_DECLARE_WC(lista, type, free_func, list_add, list_remove, list_destroy, list_count) \ 68 DYNSTUFF_LIST_DECLARE_FULL(lista, type, NULL, free_func, list_add, list_remove, __DYNSTUFF_NOREMOVE, __DYNSTUFF_NOUNLINK, list_destroy, list_count) 70 #define DYNSTUFF_LIST_DECLARE_SORTED(lista, type, compare_func, free_func, list_add, list_remove, list_destroy) \ 71 DYNSTUFF_LIST_DECLARE_FULL(lista, type, compare_func, free_func, list_add, list_remove, __DYNSTUFF_NOREMOVE, __DYNSTUFF_NOUNLINK, list_destroy, __DYNSTUFF_NOCOUNT) 74 #define DYNSTUFF_LIST_DECLARE2(lista, type, free_func, list_add, list_remove, list_remove2, list_destroy) \ 75 DYNSTUFF_LIST_DECLARE_FULL(lista, type, NULL, free_func, list_add, list_remove, list_remove2, __DYNSTUFF_NOUNLINK, list_destroy, __DYNSTUFF_NOCOUNT) 77 #define DYNSTUFF_LIST_DECLARE2_SORTED(lista, type, compare_func, free_func, list_add, list_remove, list_remove2, list_destroy) \ 78 DYNSTUFF_LIST_DECLARE_FULL(lista, type, compare_func, free_func, list_add, list_remove, list_remove2, __DYNSTUFF_NOUNLINK, list_destroy, __DYNSTUFF_NOCOUNT) 80 #define DYNSTUFF_LIST_DECLARE_SORTED_NF(lista, type, compare_func, list_add, list_unlink) \ 81 DYNSTUFF_LIST_DECLARE_FULL(lista, type, compare_func, NULL, list_add, __DYNSTUFF_NOREMOVE, __DYNSTUFF_NOREMOVE, list_unlink, __DYNSTUFF_NODESTROY, __DYNSTUFF_NOCOUNT)