diff options
Diffstat (limited to 'src/include/utils/memutils.h')
-rw-r--r-- | src/include/utils/memutils.h | 119 |
1 files changed, 0 insertions, 119 deletions
diff --git a/src/include/utils/memutils.h b/src/include/utils/memutils.h deleted file mode 100644 index 5e60c52fadd..00000000000 --- a/src/include/utils/memutils.h +++ /dev/null @@ -1,119 +0,0 @@ -/*------------------------------------------------------------------------- - * - * memutils.h - * This file contains declarations for memory allocation utility - * functions. These are functions that are not quite widely used - * enough to justify going in utils/palloc.h, but are still part - * of the API of the memory management subsystem. - * - * - * Portions Copyright (c) 1996-2002, PostgreSQL Global Development Group - * Portions Copyright (c) 1994, Regents of the University of California - * - * $Id: memutils.h,v 1.46 2002/06/20 20:29:53 momjian Exp $ - * - *------------------------------------------------------------------------- - */ -#ifndef MEMUTILS_H -#define MEMUTILS_H - -#include "nodes/memnodes.h" - - -/* - * MaxAllocSize - * Quasi-arbitrary limit on size of allocations. - * - * Note: - * There is no guarantee that allocations smaller than MaxAllocSize - * will succeed. Allocation requests larger than MaxAllocSize will - * be summarily denied. - * - * XXX This is deliberately chosen to correspond to the limiting size - * of varlena objects under TOAST. See VARATT_MASK_SIZE in postgres.h. - */ -#define MaxAllocSize ((Size) 0x3fffffff) /* 1 gigabyte - 1 */ - -#define AllocSizeIsValid(size) (0 < (size) && (size) <= MaxAllocSize) - -/* - * All chunks allocated by any memory context manager are required to be - * preceded by a StandardChunkHeader at a spacing of STANDARDCHUNKHEADERSIZE. - * A currently-allocated chunk must contain a backpointer to its owning - * context as well as the allocated size of the chunk. The backpointer is - * used by pfree() and repalloc() to find the context to call. The allocated - * size is not absolutely essential, but it's expected to be needed by any - * reasonable implementation. - */ -typedef struct StandardChunkHeader -{ - MemoryContext context; /* owning context */ - Size size; /* size of data space allocated in chunk */ -#ifdef MEMORY_CONTEXT_CHECKING - /* when debugging memory usage, also store actual requested size */ - Size requested_size; -#endif -} StandardChunkHeader; - -#define STANDARDCHUNKHEADERSIZE MAXALIGN(sizeof(StandardChunkHeader)) - - -/* - * Standard top-level memory contexts. - * - * Only TopMemoryContext and ErrorContext are initialized by - * MemoryContextInit() itself. - */ -extern DLLIMPORT MemoryContext TopMemoryContext; -extern DLLIMPORT MemoryContext ErrorContext; -extern DLLIMPORT MemoryContext PostmasterContext; -extern DLLIMPORT MemoryContext CacheMemoryContext; -extern DLLIMPORT MemoryContext QueryContext; -extern DLLIMPORT MemoryContext TopTransactionContext; -extern DLLIMPORT MemoryContext TransactionCommandContext; - - -/* - * Memory-context-type-independent functions in mcxt.c - */ -extern void MemoryContextInit(void); -extern void MemoryContextReset(MemoryContext context); -extern void MemoryContextDelete(MemoryContext context); -extern void MemoryContextResetChildren(MemoryContext context); -extern void MemoryContextDeleteChildren(MemoryContext context); -extern void MemoryContextResetAndDeleteChildren(MemoryContext context); -extern void MemoryContextStats(MemoryContext context); -extern void MemoryContextCheck(MemoryContext context); -extern bool MemoryContextContains(MemoryContext context, void *pointer); - -/* - * This routine handles the context-type-independent part of memory - * context creation. It's intended to be called from context-type- - * specific creation routines, and noplace else. - */ -extern MemoryContext MemoryContextCreate(NodeTag tag, Size size, - MemoryContextMethods *methods, - MemoryContext parent, - const char *name); - - -/* - * Memory-context-type-specific functions - */ - -/* aset.c */ -extern MemoryContext AllocSetContextCreate(MemoryContext parent, - const char *name, - Size minContextSize, - Size initBlockSize, - Size maxBlockSize); - -/* - * Recommended default alloc parameters, suitable for "ordinary" contexts - * that might hold quite a lot of data. - */ -#define ALLOCSET_DEFAULT_MINSIZE (8 * 1024) -#define ALLOCSET_DEFAULT_INITSIZE (8 * 1024) -#define ALLOCSET_DEFAULT_MAXSIZE (8 * 1024 * 1024) - -#endif /* MEMUTILS_H */ |