SDSL 3.0.1
Succinct Data Structure Library
|
memory_management.hpp contains two function for allocating and deallocating memory More...
#include <algorithm>
#include <chrono>
#include <sdsl/bits.hpp>
#include <sdsl/config.hpp>
#include <sdsl/memory_tracking.hpp>
#include <sdsl/ram_fs.hpp>
#include <sdsl/uintx_t.hpp>
Go to the source code of this file.
Classes | |
struct | sdsl::mm_block |
struct | sdsl::bfoot |
class | sdsl::hugepage_allocator |
class | sdsl::memory_manager |
Namespaces | |
namespace | sdsl |
Namespace for the succinct data structure library. | |
Macros | |
#define | ALIGNMENT sizeof(uint64_t) |
#define | ALIGNSPLIT(size) (((size)) & ~0x7) |
#define | ALIGN(size) (((size) + (ALIGNMENT - 1)) & ~0x7) |
#define | MM_BLOCK_OVERHEAD (sizeof(size_t) + sizeof(size_t)) |
#define | MIN_BLOCKSIZE (ALIGN(sizeof(mm_block_t) + sizeof(mm_block_foot_t))) |
#define | UNMASK_SIZE(size) ((size) & ~1) |
#define | ISFREE(size) ((size)&1) |
#define | SETFREE(size) ((size) | 1) |
#define | SPLIT_THRESHOLD (MIN_BLOCKSIZE) |
Typedefs | |
typedef struct sdsl::mm_block | sdsl::mm_block_t |
typedef struct sdsl::bfoot | sdsl::mm_block_foot_t |
Functions | |
void | sdsl::output_event_json (std::ostream &out, const mm_event &ev, const tracker_storage &m) |
template<> | |
void | sdsl::write_mem_log< JSON_FORMAT > (std::ostream &out, const tracker_storage &m) |
std::string | sdsl::create_mem_html_header () |
std::string | sdsl::create_mem_js_body (const std::string &jsonObject) |
template<> | |
void | sdsl::write_mem_log< HTML_FORMAT > (std::ostream &out, const tracker_storage &m) |
mm_block_t * | sdsl::block_cur (void *ptr) |
mm_block_t * | sdsl::block_prev (mm_block_t *cur_bptr, mm_block_t *first) |
mm_block_t * | sdsl::block_next (mm_block_t *cur_bptr, uint8_t *top) |
size_t | sdsl::block_size (void *ptr) |
bool | sdsl::block_isfree (mm_block_t *ptr) |
bool | sdsl::block_nextfree (mm_block_t *ptr, uint8_t *top) |
bool | sdsl::block_prevfree (mm_block_t *ptr, mm_block_t *begin) |
void | sdsl::foot_update (mm_block_t *ptr, size_t size) |
void | sdsl::block_update (mm_block_t *ptr, size_t size) |
void * | sdsl::block_data (mm_block_t *ptr) |
size_t | sdsl::block_getdatasize (mm_block_t *ptr) |
void | sdsl::block_markfree (mm_block_t *ptr) |
void | sdsl::block_markused (mm_block_t *ptr) |
memory_management.hpp contains two function for allocating and deallocating memory
Definition in file memory_management.hpp.
#define ALIGN | ( | size | ) | (((size) + (ALIGNMENT - 1)) & ~0x7) |
Definition at line 243 of file memory_management.hpp.
#define ALIGNMENT sizeof(uint64_t) |
Definition at line 241 of file memory_management.hpp.
#define ALIGNSPLIT | ( | size | ) | (((size)) & ~0x7) |
Definition at line 242 of file memory_management.hpp.
#define ISFREE | ( | size | ) | ((size)&1) |
Definition at line 247 of file memory_management.hpp.
#define MIN_BLOCKSIZE (ALIGN(sizeof(mm_block_t) + sizeof(mm_block_foot_t))) |
Definition at line 245 of file memory_management.hpp.
#define MM_BLOCK_OVERHEAD (sizeof(size_t) + sizeof(size_t)) |
Definition at line 244 of file memory_management.hpp.
#define SETFREE | ( | size | ) | ((size) | 1) |
Definition at line 248 of file memory_management.hpp.
#define SPLIT_THRESHOLD (MIN_BLOCKSIZE) |
Definition at line 249 of file memory_management.hpp.
#define UNMASK_SIZE | ( | size | ) | ((size) & ~1) |
Definition at line 246 of file memory_management.hpp.