Hermes  0.9.5-beta
Hierarchical Distributed I/O Buffering System
buffer_pool_internal.h File Reference
#include "buffer_pool.h"
#include "memory_management.h"
Include dependency graph for buffer_pool_internal.h:
This graph shows which files directly or indirectly include this file:

Go to the source code of this file.

Namespaces

 hermes
 

Functions

ptrdiff_t hermes::InitBufferPool (u8 *shmem_base, Arena *buffer_pool_arena, Arena *scratch_arena, i32 node_id, Config *config)
 
BufferPool * hermes::GetBufferPoolFromContext (SharedMemoryContext *context)
 
Device * hermes::GetDeviceById (SharedMemoryContext *context, DeviceID device_id)
 
BufferHeader * hermes::GetHeadersBase (SharedMemoryContext *context)
 
BufferHeader * hermes::GetHeaderByBufferId (SharedMemoryContext *context, BufferID id)
 
bool hermes::HeaderIsDormant (BufferHeader *header)
 
void hermes::SplitRamBufferFreeList (SharedMemoryContext *context, int slab_index)
 
void hermes::MergeRamBufferFreeList (SharedMemoryContext *context, int slab_index)
 
BufferID hermes::PeekFirstFreeBufferId (SharedMemoryContext *context, DeviceID device_id, int slab_index)
 
void hermes::LocalReleaseBuffer (SharedMemoryContext *context, BufferID buffer_id)
 
void hermes::LocalReleaseBuffers (SharedMemoryContext *context, const std::vector< BufferID > &buffer_ids)
 
i32 hermes::GetSlabUnitSize (SharedMemoryContext *context, DeviceID device_id, int slab_index)
 
u32 hermes::LocalGetBufferSize (SharedMemoryContext *context, BufferID id)
 
i32 hermes::GetSlabBufferSize (SharedMemoryContext *context, DeviceID device_id, int slab_index)
 
void hermes::SerializeBufferPoolToFile (SharedMemoryContext *context, FILE *file)
 
void hermes::ParseConfig (Arena *arena, const char *path, Config *config)
 
u8 * hermes::InitSharedMemory (const char *shmem_name, size_t total_size)
 
u8 * hermes::GetRamBufferPtr (SharedMemoryContext *context, BufferID buffer_id)
 
Target * hermes::GetTarget (SharedMemoryContext *context, int index)
 
Target * hermes::GetTargetFromId (SharedMemoryContext *context, TargetID id)
 
std::atomic< u32 > * hermes::GetAvailableBuffersArray (SharedMemoryContext *context, DeviceID device_id)
 

Detailed Description

This file contains the developer interface to the BufferPool. It describes the API available to direct consumers of the BufferPool which include buffer pool tests, the buffer pool visualizer, and the BufferPool itself. For the "public" API, see buffer_pool.h.