This repository has been archived on 2025-09-14. You can view files and clone it, but cannot push or open issues or pull requests.
Files
stellar-stellar/deps/nmx_pool/nmx_palloc.h
2024-08-21 09:38:18 +08:00

59 lines
1.2 KiB
C

#ifndef __nmx_palloc_H_
#define __nmx_palloc_H_
#include <stdlib.h>
#include "nmx_alloc.h"
typedef struct nmx_pool_large_s nmx_pool_large_t;
typedef struct nmx_pool_s nmx_pool_t;
struct nmx_pool_large_s {
nmx_pool_large_t *next;
void *alloc;
};
typedef struct {
unsigned char *last;
unsigned char *end;
nmx_pool_t *next;
unsigned int failed;
} nmx_pool_data_t;
struct nmx_pool_s {
nmx_pool_data_t d;
size_t max;
nmx_pool_t *current;
nmx_pool_large_t *large;
};
/* ======================================
* ++++++++ Library Open API ++++++++++
* ======================================
*/
void *nmx_alloc (size_t size);
void *nmx_calloc (size_t size);
nmx_pool_t *nmx_create_pool (size_t size);
void nmx_destroy_pool (nmx_pool_t *pool);
void nmx_reset_pool (nmx_pool_t *pool);
void *nmx_palloc (nmx_pool_t *pool, size_t size);
void *nmx_pnalloc (nmx_pool_t *pool, size_t size);
void *nmx_prealloc (nmx_pool_t *pool, void *p, size_t size);
void *nmx_pcalloc (nmx_pool_t *pool, size_t size);
void *nmx_pmemalign (nmx_pool_t *pool, size_t size, size_t alignment);
int nmx_pfree (nmx_pool_t *pool, void *p);
#endif //nmx_palloc.h_H_