| 38 |
|
/*! \brief Block contains status information for |
| 39 |
|
* an allocated block in our heap. |
| 40 |
|
*/ |
| 41 |
< |
struct Block { |
| 41 |
> |
struct Block |
| 42 |
> |
{ |
| 43 |
|
int freeElems; /*!< Number of available elems */ |
| 44 |
|
size_t alloc_size; /*!< Size of data space for each block */ |
| 45 |
|
struct Block* next; /*!< Next in our chain of blocks */ |
| 49 |
|
|
| 50 |
|
typedef struct Block Block; |
| 51 |
|
|
| 52 |
< |
struct MemBlock { |
| 53 |
< |
dlink_node self; /*!< Node for linking into free_list or used_list */ |
| 52 |
> |
struct MemBlock |
| 53 |
> |
{ |
| 54 |
> |
dlink_node self; /*!< Node for linking into free_list */ |
| 55 |
|
Block *block; /*!< Which block we belong to */ |
| 56 |
|
}; |
| 57 |
|
typedef struct MemBlock MemBlock; |
| 59 |
|
/*! \brief BlockHeap contains the information for the root node of the |
| 60 |
|
* memory heap. |
| 61 |
|
*/ |
| 62 |
< |
struct BlockHeap { |
| 62 |
> |
struct BlockHeap |
| 63 |
> |
{ |
| 64 |
|
size_t elemSize; /*!< Size of each element to be stored */ |
| 65 |
|
int elemsPerBlock; /*!< Number of elements per block */ |
| 66 |
|
int blocksAllocated; /*!< Number of blocks allocated */ |