gdk_bbp.h
来自「这个是内存数据库中的一个管理工具」· C头文件 代码 · 共 105 行
H
105 行
#ifndef _GDK_BBP_H_#define _GDK_BBP_H_#define BBPINIT 2048#define BBPMAXSIZE 1024*1024#define BBPLOADED 1 /* set if bat in memory */#define BBPSWAPPED 2 /* set if dirty bat is not in memory */#define BBPTMP 4 /* set if non-persistent bat has image on disk */#define BBPDELETED 16 /* set if bat persistent at last commit is now transient */#define BBPEXISTING 32 /* set if bat was already persistent at end of last commit */#define BBPNEW 64 /* set if bat has become persistent since last commit */#define BBPPERSISTENT 96 /* mask for currently persistent bats */#define BBPSTATUS 127#define BBPDELETING 2048 /* set while we are deleting (special case in module unload) */#define BBPUNSTABLE 2176 /* set while we are unloading */#define BBPUNLOADING 128 /* set while we are unloading */#define BBPLOADING 256 /* set while we are loading */#define BBPSAVING 512 /* set while we are saving */#define BBPWAITING 2944#define BBPRENAMED 1024 /* set when bat is renamed in this transaction */#define BBPTRIM_ALL (((size_t)1) << (sizeof(size_t)*8 - 2)) /* very large positive size_t */#define BBPLASTUSED(x) ((x) & 0x7fffffff) /* stamp is always a positive int */gdk_export int BBPin; /* BATs swapped into BBP */gdk_export int BBPout; /* BATs swapped out of BBP */gdk_export int BBPsize; /* current occupied size of BBP array *//* global calls */gdk_export void BBPinit(void);gdk_export void BBPexit(void);gdk_export int BBPdir(int cnt, bat* subcommit);/* update interface */gdk_export void BBPclear(bat bid);gdk_export bat BBPinsert(BAT *b);gdk_export void BBPcacheit(BAT *b);gdk_export void BBPuncacheit(bat bid);gdk_export int BBPreclaim(BAT *b);gdk_export int BBPsave(BAT *b);gdk_export int BBPrename(bat bid, str nme);gdk_export BAT * BBPrecycle(int ht, int tt, ssize_t cap);gdk_export wrd BBPrecycle_minsize(wrd);/* query interface */gdk_export bat BBPindex(str nme);gdk_export BAT *BBPdescriptor(bat b);/* swapping interface */gdk_export int BBPrecover(void);gdk_export lng BBPdiskscan(void);gdk_export int BBPsync(int cnt, bat* subcommit);gdk_export int BBPincref(bat b, int logical);gdk_export void BBPkeepref(bat i);gdk_export void BBPreleaseref(bat i);gdk_export void BBPreleaselref(bat i);gdk_export int BBPdecref(bat b, int logical);gdk_export void BBPshare(bat b);gdk_export void BBPunshare(bat b);gdk_export void BBPextend(dbl factor, int buildhash);gdk_export void BBPatom_drop(int atom);gdk_export void BBPatom_load(int atom);gdk_export int BBPbackup(BAT *b, bit subcommit);#define BBPnamecheck(s) (((s)[0]=='t' && (s)[1]=='m' && (s)[2]=='p' &&\ (s)[3]=='_')?strtol(s+4,NULL,8):0)#define BBPtmpcheck(s) (((s)[0]=='t' && (s)[1]=='m' && (s)[2]=='p' &&\ (s)[3]=='_')?1:0)#define BBP_status_set(bid, mode, nme) { \ BBP_status(bid) = mode; \}#define BBP_status_on(bid, flags, nme) \ BBP_status_set(bid, BBP_status(bid) | flags, nme);#define BBP_status_off(bid, flags, nme) \ BBP_status_set(bid, BBP_status(bid) & ~(flags), nme);#define BBP_unload_inc(bid, nme) { \ gdk_set_lock(GDKunloadLock, nme); \ BBPunloadCnt++; \ gdk_unset_lock(GDKunloadLock, nme); }#define BBP_unload_dec(bid, nme) { \ gdk_set_lock(GDKunloadLock, nme); \ if (--BBPunloadCnt == 0) gdk_signal_cond(GDKunloadCond, nme); \ assert(BBPunloadCnt >= 0); \ gdk_unset_lock(GDKunloadLock, nme); }#define BBPswappable(b) ((b) && BBP_refs((b)->batCacheid) == 0)#define BBPtrimmable(b) (BBPswappable(b) && b->batParentid == 0 && (BBP_status((b)->batCacheid)&BBPWAITING) == 0)#endif /* _GDK_BBP_H_ */
⌨️ 快捷键说明
复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?