mirror of
https://github.com/postgres/postgres.git
synced 2025-11-18 02:02:55 +03:00
59 lines
1.7 KiB
C
59 lines
1.7 KiB
C
/*-------------------------------------------------------------------------
|
|
*
|
|
* mcxt.h
|
|
* POSTGRES memory context definitions.
|
|
*
|
|
*
|
|
* Copyright (c) 1994, Regents of the University of California
|
|
*
|
|
* $Id: mcxt.h,v 1.15 1999/05/25 16:14:55 momjian Exp $
|
|
*
|
|
*-------------------------------------------------------------------------
|
|
*/
|
|
#ifndef MCXT_H
|
|
#define MCXT_H
|
|
|
|
/* These types are declared in nodes/memnodes.h, but most users of memory
|
|
* allocation should just treat them as abstract types, so we do not provide
|
|
* the struct contents here.
|
|
*/
|
|
|
|
typedef struct MemoryContextData *MemoryContext;
|
|
typedef struct GlobalMemoryData *GlobalMemory;
|
|
|
|
|
|
extern DLLIMPORT MemoryContext CurrentMemoryContext;
|
|
extern MemoryContext TopMemoryContext;
|
|
|
|
|
|
/*
|
|
* MaxAllocSize
|
|
* 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.
|
|
*
|
|
* This value should not be referenced except in one place in the code.
|
|
*
|
|
* XXX This should be defined in a file of tunable constants.
|
|
*/
|
|
#define MaxAllocSize (0xfffffff) /* 16G - 1 */
|
|
|
|
/*
|
|
* prototypes for functions in mcxt.c
|
|
*/
|
|
extern void EnableMemoryContext(bool on);
|
|
extern Pointer MemoryContextAlloc(MemoryContext context, Size size);
|
|
extern Pointer MemoryContextRealloc(MemoryContext context,
|
|
Pointer pointer,
|
|
Size size);
|
|
extern void MemoryContextFree(MemoryContext context, Pointer pointer);
|
|
extern MemoryContext MemoryContextSwitchTo(MemoryContext context);
|
|
extern GlobalMemory CreateGlobalMemory(char *name);
|
|
extern void GlobalMemoryDestroy(GlobalMemory context);
|
|
|
|
|
|
#endif /* MCXT_H */
|