Files
openGauss-server/src/include/common/fe_memutils.h
dengxuyue 1567043064 同步source code
日期: 12-26
    revision: ee5b054c
2020-12-28 22:19:21 +08:00

46 lines
1.5 KiB
C

/* ---------------------------------------------------------------------------------------
*
* fe_memutils.h
* memory management support for frontend code
*
* Copyright (c) 2003-2015, PostgreSQL Global Development Group
*
* IDENTIFICATION
* src/include/common/fe_memutils.h
*
* ---------------------------------------------------------------------------------------
*/
#ifndef FE_MEMUTILS_H
#define FE_MEMUTILS_H
/*
* Flags for pg_malloc_extended and palloc_extended, deliberately named
* the same as the backend flags.
*/
#define MCXT_ALLOC_HUGE \
0x01 /* allow huge allocation (> 1 GB) not \
* actually used for frontends */
#define MCXT_ALLOC_NO_OOM 0x02 /* no failure if out-of-memory */
#define MCXT_ALLOC_ZERO 0x04 /* zero allocated memory */
#include "c.h"
/*
* "Safe" memory allocation functions --- these exit(1) on failure
* (except pg_malloc_extended with MCXT_ALLOC_NO_OOM)
*/
extern char* pg_strdup(const char* in);
extern void* pg_malloc(size_t size);
extern void* pg_malloc0(size_t size);
extern void* pg_malloc_extended(size_t size, int flags);
extern void* pg_realloc(void* pointer, size_t size);
extern void pg_free(void* pointer);
/* Equivalent functions, deliberately named the same as backend functions */
extern void* palloc(Size size);
extern void* palloc_extended(Size size, int flags);
extern void pfree(void* pointer);
#endif /* FE_MEMUTILS_H */