mcxt.h
上传用户:blenddy
上传日期:2007-01-07
资源大小:6495k
文件大小:2k
源码类别:

数据库系统

开发平台:

Unix_Linux

  1. /*-------------------------------------------------------------------------
  2.  *
  3.  * mcxt.h
  4.  *   POSTGRES memory context definitions.
  5.  *
  6.  *
  7.  * Copyright (c) 1994, Regents of the University of California
  8.  *
  9.  * $Id: mcxt.h,v 1.15 1999/05/25 16:14:55 momjian Exp $
  10.  *
  11.  *-------------------------------------------------------------------------
  12.  */
  13. #ifndef MCXT_H
  14. #define MCXT_H
  15. /* These types are declared in nodes/memnodes.h, but most users of memory
  16.  * allocation should just treat them as abstract types, so we do not provide
  17.  * the struct contents here.
  18.  */
  19. typedef struct MemoryContextData *MemoryContext;
  20. typedef struct GlobalMemoryData *GlobalMemory;
  21. extern DLLIMPORT MemoryContext CurrentMemoryContext;
  22. extern MemoryContext TopMemoryContext;
  23. /*
  24.  * MaxAllocSize
  25.  * Arbitrary limit on size of allocations.
  26.  *
  27.  * Note:
  28.  * There is no guarantee that allocations smaller than MaxAllocSize
  29.  * will succeed.  Allocation requests larger than MaxAllocSize will
  30.  * be summarily denied.
  31.  *
  32.  * This value should not be referenced except in one place in the code.
  33.  *
  34.  * XXX This should be defined in a file of tunable constants.
  35.  */
  36. #define MaxAllocSize (0xfffffff) /* 16G - 1 */
  37. /*
  38.  * prototypes for functions in mcxt.c
  39.  */
  40. extern void EnableMemoryContext(bool on);
  41. extern Pointer MemoryContextAlloc(MemoryContext context, Size size);
  42. extern Pointer MemoryContextRealloc(MemoryContext context,
  43.  Pointer pointer,
  44.  Size size);
  45. extern void MemoryContextFree(MemoryContext context, Pointer pointer);
  46. extern MemoryContext MemoryContextSwitchTo(MemoryContext context);
  47. extern GlobalMemory CreateGlobalMemory(char *name);
  48. extern void GlobalMemoryDestroy(GlobalMemory context);
  49. #endif  /* MCXT_H */