diff options
author | 2016-05-17 00:49:38 +0200 | |
---|---|---|
committer | 2016-05-21 13:31:17 +0200 | |
commit | fdf63818ded94b364616feb528031dd5423d8282 (patch) | |
tree | 2e4e233d439060b9b6561fa8191dd28c21895ebe /src/lib/netlist/plib/palloc.h | |
parent | 9102271ef76bfc552b40e087ba5c3968991d9fe9 (diff) |
All netlist devices now follow new syntax. Removed dead code. All sub
devices are now forced to be initialized in the constructor. Device
setup now completely in constructor. Removed start call. [Couriersud]
Diffstat (limited to 'src/lib/netlist/plib/palloc.h')
-rw-r--r-- | src/lib/netlist/plib/palloc.h | 35 |
1 files changed, 35 insertions, 0 deletions
diff --git a/src/lib/netlist/plib/palloc.h b/src/lib/netlist/plib/palloc.h index 01193998392..7b4be017c33 100644 --- a/src/lib/netlist/plib/palloc.h +++ b/src/lib/netlist/plib/palloc.h @@ -9,6 +9,7 @@ #define PALLOC_H_ #include <exception> +#include <vector> #include "pconfig.h" #include "pstring.h" @@ -117,4 +118,38 @@ inline void pfree_array_t(T *p) #endif +class pmempool +{ +private: + struct block + { + block() : m_num_alloc(0), m_free(0), cur_ptr(nullptr), data(nullptr) { } + int m_num_alloc; + int m_free; + char *cur_ptr; + char *data; + }; + + int new_block(); + + struct info + { + info() : m_block(0) { } + size_t m_block; + }; + +public: + pmempool(int min_alloc, int min_align); + ~pmempool(); + + void *alloc(size_t size); + void free(void *ptr); + + int m_min_alloc; + int m_min_align; + + std::vector<block> m_blocks; +}; + + #endif /* NLCONFIG_H_ */ |