ARGOBOTS  be805649b56a69fc4df1b6bc4efbc8911b854459
Data Structures | Macros | Typedefs | Functions
abti_mem_pool.h File Reference
This graph shows which files directly or indirectly include this file:

Go to the source code of this file.

Data Structures

union  ABTI_mem_pool_header_bucket_info
 
struct  ABTI_mem_pool_header
 
struct  ABTI_mem_pool_page
 
struct  ABTI_mem_pool_global_pool_mprotect_config
 
struct  ABTI_mem_pool_global_pool
 
struct  ABTI_mem_pool_local_pool
 

Macros

#define ABT_MEM_POOL_MAX_LOCAL_BUCKETS   2
 
#define ABT_MEM_POOL_NUM_RETURN_BUCKETS   1
 
#define ABT_MEM_POOL_NUM_TAKE_BUCKETS   1
 

Typedefs

typedef union ABTI_mem_pool_header_bucket_info ABTI_mem_pool_header_bucket_info
 
typedef struct ABTI_mem_pool_header ABTI_mem_pool_header
 
typedef struct ABTI_mem_pool_page ABTI_mem_pool_page
 
typedef struct ABTI_mem_pool_global_pool_mprotect_config ABTI_mem_pool_global_pool_mprotect_config
 
typedef struct ABTI_mem_pool_global_pool ABTI_mem_pool_global_pool
 
typedef struct ABTI_mem_pool_local_pool ABTI_mem_pool_local_pool
 

Functions

void ABTI_mem_pool_init_global_pool (ABTI_mem_pool_global_pool *p_global_pool, size_t num_headers_per_bucket, size_t header_size, size_t header_offset, size_t page_size, const ABTU_MEM_LARGEPAGE_TYPE *lp_type_requests, uint32_t num_lp_type_requests, size_t alignment_hint, ABTI_mem_pool_global_pool_mprotect_config *p_mprotect_config)
 
void ABTI_mem_pool_destroy_global_pool (ABTI_mem_pool_global_pool *p_global_pool)
 
ABTU_ret_err int ABTI_mem_pool_init_local_pool (ABTI_mem_pool_local_pool *p_local_pool, ABTI_mem_pool_global_pool *p_global_pool)
 
void ABTI_mem_pool_destroy_local_pool (ABTI_mem_pool_local_pool *p_local_pool)
 
int ABTI_mem_pool_take_bucket (ABTI_mem_pool_global_pool *p_global_pool, ABTI_mem_pool_header **p_bucket)
 
void ABTI_mem_pool_return_bucket (ABTI_mem_pool_global_pool *p_global_pool, ABTI_mem_pool_header *bucket)
 
static ABTU_ret_err int ABTI_mem_pool_alloc (ABTI_mem_pool_local_pool *p_local_pool, void **p_mem)
 
static void ABTI_mem_pool_free (ABTI_mem_pool_local_pool *p_local_pool, void *mem)
 

Macro Definition Documentation

◆ ABT_MEM_POOL_MAX_LOCAL_BUCKETS

#define ABT_MEM_POOL_MAX_LOCAL_BUCKETS   2

Definition at line 9 of file abti_mem_pool.h.

◆ ABT_MEM_POOL_NUM_RETURN_BUCKETS

#define ABT_MEM_POOL_NUM_RETURN_BUCKETS   1

Definition at line 10 of file abti_mem_pool.h.

◆ ABT_MEM_POOL_NUM_TAKE_BUCKETS

#define ABT_MEM_POOL_NUM_TAKE_BUCKETS   1

Definition at line 11 of file abti_mem_pool.h.

Typedef Documentation

◆ ABTI_mem_pool_global_pool

◆ ABTI_mem_pool_global_pool_mprotect_config

◆ ABTI_mem_pool_header

◆ ABTI_mem_pool_header_bucket_info

◆ ABTI_mem_pool_local_pool

◆ ABTI_mem_pool_page

Function Documentation

◆ ABTI_mem_pool_alloc()

static ABTU_ret_err int ABTI_mem_pool_alloc ( ABTI_mem_pool_local_pool p_local_pool,
void **  p_mem 
)
inlinestatic

◆ ABTI_mem_pool_destroy_global_pool()

void ABTI_mem_pool_destroy_global_pool ( ABTI_mem_pool_global_pool p_global_pool)

Definition at line 142 of file mem_pool.c.

◆ ABTI_mem_pool_destroy_local_pool()

void ABTI_mem_pool_destroy_local_pool ( ABTI_mem_pool_local_pool p_local_pool)

Definition at line 201 of file mem_pool.c.

◆ ABTI_mem_pool_free()

static void ABTI_mem_pool_free ( ABTI_mem_pool_local_pool p_local_pool,
void *  mem 
)
inlinestatic

◆ ABTI_mem_pool_init_global_pool()

void ABTI_mem_pool_init_global_pool ( ABTI_mem_pool_global_pool p_global_pool,
size_t  num_headers_per_bucket,
size_t  header_size,
size_t  header_offset,
size_t  page_size,
const ABTU_MEM_LARGEPAGE_TYPE lp_type_requests,
uint32_t  num_lp_type_requests,
size_t  alignment_hint,
ABTI_mem_pool_global_pool_mprotect_config p_mprotect_config 
)

Definition at line 89 of file mem_pool.c.

◆ ABTI_mem_pool_init_local_pool()

ABTU_ret_err int ABTI_mem_pool_init_local_pool ( ABTI_mem_pool_local_pool p_local_pool,
ABTI_mem_pool_global_pool p_global_pool 
)

Definition at line 186 of file mem_pool.c.

◆ ABTI_mem_pool_return_bucket()

void ABTI_mem_pool_return_bucket ( ABTI_mem_pool_global_pool p_global_pool,
ABTI_mem_pool_header bucket 
)

◆ ABTI_mem_pool_take_bucket()

int ABTI_mem_pool_take_bucket ( ABTI_mem_pool_global_pool p_global_pool,
ABTI_mem_pool_header **  p_bucket 
)

Definition at line 222 of file mem_pool.c.

Referenced by ABTI_mem_pool_alloc(), and ABTI_mem_pool_init_local_pool().