00001 #ifndef __PINNED_MEM_POOL__ 00002 #define __PINNED_MEM_POOL__ 00003 #include "memory_pool.hh" 00004 00010 class pinned_mem_pool : public mem_pool 00011 { 00012 public: 00013 virtual ~pinned_mem_pool(); 00021 virtual bool init(unsigned long maxsize); 00022 00027 virtual void destroy(); 00028 __inline__ void store_pointer(uint8_t * pos) { curpointer_ = pos; } 00029 __inline__ void* get_stored_pointer() { return (void *) curpointer_; } 00030 __inline__ void store_pos() { pos_ = curpos_; } 00031 __inline__ void* get_stored_pos() { return (void *) ((uint8_t*) mem_ + pos_);} 00032 private: 00033 unsigned long pos_; 00034 uint8_t * curpointer_; 00035 }; 00036 00037 #endif