📄 mmap_mem.h
字号:
/************************************************** Memory Mapping Allocator Header File ** (C) 1999-2002 The Botan Project **************************************************/#include <botan/manalloc.h>#include <utility>#include <vector>#include <map>#ifndef BOTAN_EXT_MMAP_ALLOCATOR_H__#define BOTAN_EXT_MMAP_ALLOCATOR_H__namespace Botan {/************************************************** Memory Mapping Allocator **************************************************/class MemoryMapping_Allocator : public ManagedAllocator { public: SecureAllocator* clone() { return this; } MemoryMapping_Allocator(const std::string& = "", bool = false); ~MemoryMapping_Allocator(); private: struct Mapped_Buffer { void* buf; u32bit length; int fd; }; void* alloc_block(u32bit) const; void dealloc_block(void*, u32bit) const; std::string temp_dir(const std::string&) const; void* mmap_block(u32bit) const; void munmap_block(void*, u32bit, int) const; const bool paranoid; const std::string path; mutable std::map<void*, std::pair<int, u32bit> > allocated; mutable std::vector<Mapped_Buffer> cache; };}#endif
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -