00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014 #include "veil_datatypes.h"
00015
00016
00017 extern void *vl_malloc(size_t size);
00018 char *vl_ObjTypeName(ObjType obj);
00019
00020
00021
00022 extern VarEntry *vl_lookup_shared_variable(char *name);
00023 extern VarEntry *vl_lookup_variable(char *name);
00024 extern veil_variable_t *vl_next_variable(veil_variable_t *prev);
00025 extern void vl_ClearInt4Array(Int4Array *array);
00026 extern Int4Array *vl_NewInt4Array(Int4Array *current, bool shared,
00027 int32 min, int32 max);
00028 extern void vl_Int4ArraySet(Int4Array *array, int32 idx, int32 value);
00029 extern int32 vl_Int4ArrayGet(Int4Array *array, int32 idx);
00030
00031
00032
00033 extern Range *vl_NewRange(bool shared);
00034 extern Int4Var *vl_NewInt4(bool shared);
00035
00036
00037 extern void vl_ClearBitmap(Bitmap *bitmap);
00038 extern void vl_NewBitmap(Bitmap **p_bitmap, bool shared, int32 min, int32 max);
00039 extern void vl_BitmapSetbit(Bitmap *bitmap, int32 bit);
00040 extern void vl_BitmapClearbit(Bitmap *bitmap, int32 bit);
00041 extern bool vl_BitmapTestbit(Bitmap *bitmap, int32 bit);
00042 extern void vl_BitmapUnion(Bitmap *target, Bitmap *source);
00043 extern void vl_BitmapIntersect(Bitmap *target, Bitmap *source);
00044 extern int32 vl_BitmapNextBit(Bitmap *bitmap, int32 bit, bool *found);
00045 extern Bitmap *vl_BitmapFromArray(BitmapArray *bmarray, int32 elem);
00046 extern void vl_ClearBitmapArray(BitmapArray *bmarray);
00047 extern void vl_NewBitmapArray(BitmapArray **p_bmarray, bool shared,
00048 int32 arrayzero, int32 arraymax,
00049 int32 bitzero, int32 bitmax);
00050 extern VarEntry *vl_NextHashEntry(HTAB *hash, VarEntry *prev);
00051 extern void vl_NewBitmapHash(BitmapHash **p_bmhash, char *name,
00052 int32 bitzero, int32 bitmax);
00053 extern Bitmap *vl_BitmapFromHash(BitmapHash *bmhash, char *hashelem);
00054 extern Bitmap *vl_AddBitmapToHash(BitmapHash *bmhash, char *hashelem);
00055
00056
00057 extern void vl_list_hash(HTAB *hash, char *info);
00058 extern HTAB *vl_get_shared_hash(void);
00059 extern bool vl_prepare_context_switch(void);
00060 extern bool vl_complete_context_switch(void);
00061 extern void vl_force_context_switch(void);
00062 extern void *vl_shmalloc(size_t size);
00063 extern void vl_free(void *mem);
00064 extern void _PG_init(void);
00065
00066
00067 extern int vl_spi_connect();
00068 extern int vl_spi_finish();
00069 extern bool vl_bool_from_query(const char *qry, bool *result);
00070 extern bool vl_db_exists(Oid db_id);
00071
00072
00073 extern void veil_config_init(void);
00074 extern int veil_shared_hash_elems(void);
00075 extern int veil_dbs_in_cluster(void);
00076 extern int veil_shmem_context_size(void);