#ifndef BLOCK_HEADER_H #define BLOCK_HEADER_H #include #include typedef struct block_header_s { size_t size; size_t requested_size; size_t previous_size; void *next; } block_header_t; #define HEADER_SIZE sizeof(block_header_t) void * get_next(void *ptr); size_t get_size(void *ptr); void set_size(void *ptr, size_t size); void set_requested_size(void *ptr, size_t size); void set_next(void *block, void *next_block); bool is_previous_free(void *ptr); size_t get_previous_size(void *ptr); void * get_previous(void *ptr); /** * Removes a memory block from a singly linked list of memory blocks. * * @param *block The block to be removed. * @param *starting_node The starting memory block of the list. */ void remove_block(void *block, void *starting_node); #endif /* BLOCK_HEADER_H */