123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120 |
- #ifndef LINKED_LISTS_H
- #define LINKED_LISTS_H
- #include "dmm_config.h"
- #ifndef LEON3
- #include <stdint.h>
- #else
- #include <sys/types.h>
- #endif
- #include <dmmlib/heap.h>
- #ifndef LEON3
- typedef uintptr_t list_node_ptr;
- #else
- typedef void* list_node_ptr;
- #endif
- typedef struct list_node_header_s {
- list_node_ptr next;
- #ifdef BLOCKS_IN_DLL
- list_node_ptr previous;
- #endif
- } list_node_header_t;
- void set_next(void *block, void *next_block);
- void * get_next(void *ptr);
- #ifdef BLOCKS_IN_DLL
- void set_previous(void *previous, void *previous_block);
- void * get_previous(void *ptr);
- #endif
- void push_block(void **block, void **starting_node);
- void remove_block(void **block, void **starting_node);
- void remove_block_from_lists(void **block, heap_t *heap);
- #endif
|