veil_funcs.h

Go to the documentation of this file.
00001 /**
00002  * @file   veil_funcs.h
00003  * \code
00004  *     Author:       Marc Munro
00005  *     Copyright (c) 2005, 2006 Marc Munro
00006  *     License:      BSD
00007  * $Id: veil_funcs.h,v 1.5 2007/07/31 22:18:27 bloodnok Exp $
00008  * \endcode
00009  * @brief  
00010  * Provide definitions for all non-local C-callable Veil functions.
00011  * 
00012  */
00013 
00014 #include "veil_datatypes.h"
00015 
00016 // veil_utils
00017 extern void *vl_malloc(size_t size);
00018 char *vl_ObjTypeName(ObjType obj);
00019 
00020 
00021 // veil_variables
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 // veil_datatypes
00033 extern Range *vl_NewRange(bool shared);
00034 extern Int4Var *vl_NewInt4(bool shared);
00035 
00036 // veil_bitmap
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 // veil_shmem
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 // veil_query
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 // veil_config
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);

Generated on Tue Mar 11 10:20:03 2008 for Veil by  doxygen 1.5.4