46 lines
1.5 KiB
C
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 */
|
|
|