00001
00038 #ifndef MEMBAG_H_INCLUDED
00039 #define MEMBAG_H_INCLUDED
00040
00041 #include <types.h>
00042
00076 #ifdef CONFIG_MEMBAG_USE_TUNING
00077
00078 struct membag_bagstats {
00079 size_t num_free_blocks;
00080 size_t max_blocks_used;
00081 size_t min_block_size;
00082 size_t max_block_size;
00083 uint32_t num_allocations;
00084 };
00085 #endif
00086
00087
00088 void membag_init(unsigned int align_order);
00089
00090 size_t membag_get_total(void);
00091
00092 #ifdef CONFIG_MEMBAG_USE_TUNING
00093 size_t membag_get_free(void);
00094 #endif
00095
00096 size_t membag_get_smallest_free_block_size(void);
00097 size_t membag_get_largest_free_block_size(void);
00098 void *membag_alloc(size_t size);
00099 void membag_free(void *ptr);
00100
00101 #ifdef CONFIG_MEMBAG_USE_TUNING
00102 void membag_get_bag_stats(size_t bag_no, struct membag_bagstats *stats);
00103 #endif
00104
00106
00107 #endif