Lines Matching refs:p

109   PgHdr *p;  in pageOnDirtyList()  local
110 for(p=pCache->pDirty; p; p=p->pDirtyNext){ in pageOnDirtyList()
111 if( p==pPg ) return 1; in pageOnDirtyList()
183 PCache *p = pPage->pCache; in pcacheManageDirtyList() local
185 pcacheTrace(("%p.DIRTYLIST.%s %d\n", p, in pcacheManageDirtyList()
189 assert( pPage->pDirtyNext || pPage==p->pDirtyTail ); in pcacheManageDirtyList()
190 assert( pPage->pDirtyPrev || pPage==p->pDirty ); in pcacheManageDirtyList()
193 if( p->pSynced==pPage ){ in pcacheManageDirtyList()
194 p->pSynced = pPage->pDirtyPrev; in pcacheManageDirtyList()
200 assert( pPage==p->pDirtyTail ); in pcacheManageDirtyList()
201 p->pDirtyTail = pPage->pDirtyPrev; in pcacheManageDirtyList()
210 assert( pPage==p->pDirty ); in pcacheManageDirtyList()
211 p->pDirty = pPage->pDirtyNext; in pcacheManageDirtyList()
212 assert( p->bPurgeable || p->eCreate==2 ); in pcacheManageDirtyList()
213 if( p->pDirty==0 ){ /*OPTIMIZATION-IF-TRUE*/ in pcacheManageDirtyList()
214 assert( p->bPurgeable==0 || p->eCreate==1 ); in pcacheManageDirtyList()
215 p->eCreate = 2; in pcacheManageDirtyList()
221 pPage->pDirtyNext = p->pDirty; in pcacheManageDirtyList()
226 p->pDirtyTail = pPage; in pcacheManageDirtyList()
227 if( p->bPurgeable ){ in pcacheManageDirtyList()
228 assert( p->eCreate==2 ); in pcacheManageDirtyList()
229 p->eCreate = 1; in pcacheManageDirtyList()
232 p->pDirty = pPage; in pcacheManageDirtyList()
239 if( !p->pSynced in pcacheManageDirtyList()
242 p->pSynced = pPage; in pcacheManageDirtyList()
245 pcacheDump(p); in pcacheManageDirtyList()
252 static void pcacheUnpin(PgHdr *p){ in pcacheUnpin() argument
253 if( p->pCache->bPurgeable ){ in pcacheUnpin()
254 pcacheTrace(("%p.UNPIN %d\n", p->pCache, p->pgno)); in pcacheUnpin()
255 sqlite3GlobalConfig.pcache2.xUnpin(p->pCache->pCache, p->pPage, 0); in pcacheUnpin()
256 pcacheDump(p->pCache); in pcacheUnpin()
264 static int numberOfCachePages(PCache *p){ in numberOfCachePages() argument
265 if( p->szCache>=0 ){ in numberOfCachePages()
268 return p->szCache; in numberOfCachePages()
275 n = ((-1024*(i64)p->szCache)/(p->szPage+p->szExtra)); in numberOfCachePages()
326 PCache *p /* Preallocated space for the PCache */ in sqlite3PcacheOpen() argument
328 memset(p, 0, sizeof(PCache)); in sqlite3PcacheOpen()
329 p->szPage = 1; in sqlite3PcacheOpen()
330 p->szExtra = szExtra; in sqlite3PcacheOpen()
332 p->bPurgeable = bPurgeable; in sqlite3PcacheOpen()
333 p->eCreate = 2; in sqlite3PcacheOpen()
334 p->xStress = xStress; in sqlite3PcacheOpen()
335 p->pStress = pStress; in sqlite3PcacheOpen()
336 p->szCache = 100; in sqlite3PcacheOpen()
337 p->szSpill = 1; in sqlite3PcacheOpen()
338 pcacheTrace(("%p.OPEN szPage %d bPurgeable %d\n",p,szPage,bPurgeable)); in sqlite3PcacheOpen()
339 return sqlite3PcacheSetPageSize(p, szPage); in sqlite3PcacheOpen()
537 void SQLITE_NOINLINE sqlite3PcacheRelease(PgHdr *p){ in sqlite3PcacheRelease() argument
538 assert( p->nRef>0 ); in sqlite3PcacheRelease()
539 p->pCache->nRefSum--; in sqlite3PcacheRelease()
540 if( (--p->nRef)==0 ){ in sqlite3PcacheRelease()
541 if( p->flags&PGHDR_CLEAN ){ in sqlite3PcacheRelease()
542 pcacheUnpin(p); in sqlite3PcacheRelease()
544 pcacheManageDirtyList(p, PCACHE_DIRTYLIST_FRONT); in sqlite3PcacheRelease()
545 assert( sqlite3PcachePageSanity(p) ); in sqlite3PcacheRelease()
553 void sqlite3PcacheRef(PgHdr *p){ in sqlite3PcacheRef() argument
554 assert(p->nRef>0); in sqlite3PcacheRef()
555 assert( sqlite3PcachePageSanity(p) ); in sqlite3PcacheRef()
556 p->nRef++; in sqlite3PcacheRef()
557 p->pCache->nRefSum++; in sqlite3PcacheRef()
565 void sqlite3PcacheDrop(PgHdr *p){ in sqlite3PcacheDrop() argument
566 assert( p->nRef==1 ); in sqlite3PcacheDrop()
567 assert( sqlite3PcachePageSanity(p) ); in sqlite3PcacheDrop()
568 if( p->flags&PGHDR_DIRTY ){ in sqlite3PcacheDrop()
569 pcacheManageDirtyList(p, PCACHE_DIRTYLIST_REMOVE); in sqlite3PcacheDrop()
571 p->pCache->nRefSum--; in sqlite3PcacheDrop()
572 sqlite3GlobalConfig.pcache2.xUnpin(p->pCache->pCache, p->pPage, 1); in sqlite3PcacheDrop()
579 void sqlite3PcacheMakeDirty(PgHdr *p){ in sqlite3PcacheMakeDirty() argument
580 assert( p->nRef>0 ); in sqlite3PcacheMakeDirty()
581 assert( sqlite3PcachePageSanity(p) ); in sqlite3PcacheMakeDirty()
582 if( p->flags & (PGHDR_CLEAN|PGHDR_DONT_WRITE) ){ /*OPTIMIZATION-IF-FALSE*/ in sqlite3PcacheMakeDirty()
583 p->flags &= ~PGHDR_DONT_WRITE; in sqlite3PcacheMakeDirty()
584 if( p->flags & PGHDR_CLEAN ){ in sqlite3PcacheMakeDirty()
585 p->flags ^= (PGHDR_DIRTY|PGHDR_CLEAN); in sqlite3PcacheMakeDirty()
586 pcacheTrace(("%p.DIRTY %d\n",p->pCache,p->pgno)); in sqlite3PcacheMakeDirty()
587 assert( (p->flags & (PGHDR_DIRTY|PGHDR_CLEAN))==PGHDR_DIRTY ); in sqlite3PcacheMakeDirty()
588 pcacheManageDirtyList(p, PCACHE_DIRTYLIST_ADD); in sqlite3PcacheMakeDirty()
589 assert( sqlite3PcachePageSanity(p) ); in sqlite3PcacheMakeDirty()
591 assert( sqlite3PcachePageSanity(p) ); in sqlite3PcacheMakeDirty()
599 void sqlite3PcacheMakeClean(PgHdr *p){ in sqlite3PcacheMakeClean() argument
600 assert( sqlite3PcachePageSanity(p) ); in sqlite3PcacheMakeClean()
601 assert( (p->flags & PGHDR_DIRTY)!=0 ); in sqlite3PcacheMakeClean()
602 assert( (p->flags & PGHDR_CLEAN)==0 ); in sqlite3PcacheMakeClean()
603 pcacheManageDirtyList(p, PCACHE_DIRTYLIST_REMOVE); in sqlite3PcacheMakeClean()
604 p->flags &= ~(PGHDR_DIRTY|PGHDR_NEED_SYNC|PGHDR_WRITEABLE); in sqlite3PcacheMakeClean()
605 p->flags |= PGHDR_CLEAN; in sqlite3PcacheMakeClean()
606 pcacheTrace(("%p.CLEAN %d\n",p->pCache,p->pgno)); in sqlite3PcacheMakeClean()
607 assert( sqlite3PcachePageSanity(p) ); in sqlite3PcacheMakeClean()
608 if( p->nRef==0 ){ in sqlite3PcacheMakeClean()
609 pcacheUnpin(p); in sqlite3PcacheMakeClean()
617 PgHdr *p; in sqlite3PcacheCleanAll() local
619 while( (p = pCache->pDirty)!=0 ){ in sqlite3PcacheCleanAll()
620 sqlite3PcacheMakeClean(p); in sqlite3PcacheCleanAll()
628 PgHdr *p; in sqlite3PcacheClearWritable() local
630 for(p=pCache->pDirty; p; p=p->pDirtyNext){ in sqlite3PcacheClearWritable()
631 p->flags &= ~(PGHDR_NEED_SYNC|PGHDR_WRITEABLE); in sqlite3PcacheClearWritable()
640 PgHdr *p; in sqlite3PcacheClearSyncFlags() local
641 for(p=pCache->pDirty; p; p=p->pDirtyNext){ in sqlite3PcacheClearSyncFlags()
642 p->flags &= ~PGHDR_NEED_SYNC; in sqlite3PcacheClearSyncFlags()
650 void sqlite3PcacheMove(PgHdr *p, Pgno newPgno){ in sqlite3PcacheMove() argument
651 PCache *pCache = p->pCache; in sqlite3PcacheMove()
653 assert( p->nRef>0 ); in sqlite3PcacheMove()
655 assert( sqlite3PcachePageSanity(p) ); in sqlite3PcacheMove()
656 pcacheTrace(("%p.MOVE %d -> %d\n",pCache,p->pgno,newPgno)); in sqlite3PcacheMove()
665 sqlite3GlobalConfig.pcache2.xRekey(pCache->pCache, p->pPage, p->pgno,newPgno); in sqlite3PcacheMove()
666 p->pgno = newPgno; in sqlite3PcacheMove()
667 if( (p->flags&PGHDR_DIRTY) && (p->flags&PGHDR_NEED_SYNC) ){ in sqlite3PcacheMove()
668 pcacheManageDirtyList(p, PCACHE_DIRTYLIST_FRONT); in sqlite3PcacheMove()
669 assert( sqlite3PcachePageSanity(p) ); in sqlite3PcacheMove()
684 PgHdr *p; in sqlite3PcacheTruncate() local
687 for(p=pCache->pDirty; p; p=pNext){ in sqlite3PcacheTruncate()
688 pNext = p->pDirtyNext; in sqlite3PcacheTruncate()
693 assert( p->pgno>0 ); in sqlite3PcacheTruncate()
694 if( p->pgno>pgno ){ in sqlite3PcacheTruncate()
695 assert( p->flags&PGHDR_DIRTY ); in sqlite3PcacheTruncate()
696 sqlite3PcacheMakeClean(p); in sqlite3PcacheTruncate()
770 PgHdr *a[N_SORT_BUCKET], *p; in pcacheSortDirtyList() local
774 p = pIn; in pcacheSortDirtyList()
775 pIn = p->pDirty; in pcacheSortDirtyList()
776 p->pDirty = 0; in pcacheSortDirtyList()
779 a[i] = p; in pcacheSortDirtyList()
782 p = pcacheMergeDirtyList(a[i], p); in pcacheSortDirtyList()
790 a[i] = pcacheMergeDirtyList(a[i], p); in pcacheSortDirtyList()
793 p = a[0]; in pcacheSortDirtyList()
796 p = p ? pcacheMergeDirtyList(p, a[i]) : a[i]; in pcacheSortDirtyList()
798 return p; in pcacheSortDirtyList()
805 PgHdr *p; in sqlite3PcacheDirtyList() local
806 for(p=pCache->pDirty; p; p=p->pDirtyNext){ in sqlite3PcacheDirtyList()
807 p->pDirty = p->pDirtyNext; in sqlite3PcacheDirtyList()
825 int sqlite3PcachePageRefcount(PgHdr *p){ in sqlite3PcachePageRefcount() argument
826 return p->nRef; in sqlite3PcachePageRefcount()
861 int sqlite3PcacheSetSpillsize(PCache *p, int mxPage){ in sqlite3PcacheSetSpillsize() argument
863 assert( p->pCache!=0 ); in sqlite3PcacheSetSpillsize()
866 mxPage = (int)((-1024*(i64)mxPage)/(p->szPage+p->szExtra)); in sqlite3PcacheSetSpillsize()
868 p->szSpill = mxPage; in sqlite3PcacheSetSpillsize()
870 res = numberOfCachePages(p); in sqlite3PcacheSetSpillsize()
871 if( res<p->szSpill ) res = p->szSpill; in sqlite3PcacheSetSpillsize()