@ -404,26 +404,36 @@ do { \
* extern declarations
* extern declarations
* - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
* - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
*/
*/
/* flags for PageAddItemExtended() */
# define PAI_OVERWRITE (1 << 0)
# define PAI_OVERWRITE (1 << 0)
# define PAI_IS_HEAP (1 << 1)
# define PAI_IS_HEAP (1 << 1)
/* flags for PageIsVerifiedExtended() */
# define PIV_LOG_WARNING (1 << 0)
# define PIV_REPORT_STAT (1 << 1)
# define PageAddItem(page, item, size, offsetNumber, overwrite, is_heap) \
# define PageAddItem(page, item, size, offsetNumber, overwrite, is_heap) \
PageAddItemExtended ( page , item , size , offsetNumber , \
PageAddItemExtended ( page , item , size , offsetNumber , \
( ( overwrite ) ? PAI_OVERWRITE : 0 ) | \
( ( overwrite ) ? PAI_OVERWRITE : 0 ) | \
( ( is_heap ) ? PAI_IS_HEAP : 0 ) )
( ( is_heap ) ? PAI_IS_HEAP : 0 ) )
# define PageIsVerified(page, blkno) \
PageIsVerifiedExtended ( page , blkno , \
PIV_LOG_WARNING | PIV_REPORT_STAT )
/*
/*
* Check that BLCKSZ is a multiple of sizeof ( size_t ) . In PageIsVerified ( ) ,
* Check that BLCKSZ is a multiple of sizeof ( size_t ) . In
* it is much faster to check if a page is full of zeroes using the native
* PageIsVerifiedExtended ( ) , it is much faster to check if a page is
* word size . Note that this assertion is kept within a header to make
* full of zeroes using the native word size . Note that this assertion
* sure that StaticAssertDecl ( ) works across various combinations of
* is kept within a header to make sure that StaticAssertDecl ( ) works
* platforms and compilers .
* across various combinations of platforms and compilers .
*/
*/
StaticAssertDecl ( BLCKSZ = = ( ( BLCKSZ / sizeof ( size_t ) ) * sizeof ( size_t ) ) ,
StaticAssertDecl ( BLCKSZ = = ( ( BLCKSZ / sizeof ( size_t ) ) * sizeof ( size_t ) ) ,
" BLCKSZ has to be a multiple of sizeof(size_t) " ) ;
" BLCKSZ has to be a multiple of sizeof(size_t) " ) ;
extern void PageInit ( Page page , Size pageSize , Size specialSize ) ;
extern void PageInit ( Page page , Size pageSize , Size specialSize ) ;
extern bool PageIsVerified ( Page page , BlockNumber blkno ) ;
extern bool PageIsVerifiedExtended ( Page page , BlockNumber blkno , int flags ) ;
extern OffsetNumber PageAddItemExtended ( Page page , Item item , Size size ,
extern OffsetNumber PageAddItemExtended ( Page page , Item item , Size size ,
OffsetNumber offsetNumber , int flags ) ;
OffsetNumber offsetNumber , int flags ) ;
extern Page PageGetTempPage ( Page page ) ;
extern Page PageGetTempPage ( Page page ) ;