Lines Matching refs:pFd

40141 static int unixMapfile(unixFile *pFd, i64 nByte);
40142 static void unixUnmapfile(unixFile *pFd);
41748 static int openDirectory(const char *zFilename, int *pFd){
41765 *pFd = fd;
42152 static void setDeviceCharacteristics(unixFile *pFd){
42153 assert( pFd->deviceCharacteristics==0 || pFd->sectorSize!=0 );
42154 if( pFd->sectorSize==0 ){
42160 res = osIoctl(pFd->h, F2FS_IOC_GET_FEATURES, &f);
42162 pFd->deviceCharacteristics = SQLITE_IOCAP_BATCH_ATOMIC;
42167 if( pFd->ctrlFlags & UNIXFILE_PSOW ){
42168 pFd->deviceCharacteristics |= SQLITE_IOCAP_POWERSAFE_OVERWRITE;
42171 pFd->sectorSize = SQLITE_DEFAULT_SECTOR_SIZE;
42260 unixFile *pFd = (unixFile*)id;
42261 setDeviceCharacteristics(pFd);
42262 return pFd->sectorSize;
42279 unixFile *pFd = (unixFile*)id;
42280 setDeviceCharacteristics(pFd);
42281 return pFd->deviceCharacteristics;
42550 static void unixShmPurge(unixFile *pFd){
42551 unixShmNode *p = pFd->pInode->pShmNode;
42556 assert( p->pInode==pFd->pInode );
42572 robust_close(pFd, p->hShm, __LINE__);
43300 static void unixUnmapfile(unixFile *pFd){
43301 assert( pFd->nFetchOut==0 );
43302 if( pFd->pMapRegion ){
43303 osMunmap(pFd->pMapRegion, pFd->mmapSizeActual);
43304 pFd->pMapRegion = 0;
43305 pFd->mmapSize = 0;
43306 pFd->mmapSizeActual = 0;
43326 unixFile *pFd, /* File descriptor object */
43330 int h = pFd->h; /* File descriptor open on db file */
43331 u8 *pOrig = (u8 *)pFd->pMapRegion; /* Pointer to current file mapping */
43332 i64 nOrig = pFd->mmapSizeActual; /* Size of pOrig region in bytes */
43336 assert( pFd->nFetchOut==0 );
43337 assert( nNew>pFd->mmapSize );
43338 assert( nNew<=pFd->mmapSizeMax );
43340 assert( pFd->mmapSizeActual>=pFd->mmapSize );
43344 if( (pFd->ctrlFlags & UNIXFILE_RDONLY)==0 ) flags |= PROT_WRITE;
43349 i64 nReuse = pFd->mmapSize;
43352 i64 nReuse = (pFd->mmapSize & ~(szSyspage-1));
43390 unixLogError(SQLITE_OK, zErr, pFd->zPath);
43395 pFd->mmapSizeMax = 0;
43397 pFd->pMapRegion = (void *)pNew;
43398 pFd->mmapSize = pFd->mmapSizeActual = nNew;
43417 static int unixMapfile(unixFile *pFd, i64 nMap){
43418 assert( nMap>=0 || pFd->nFetchOut==0 );
43419 assert( nMap>0 || (pFd->mmapSize==0 && pFd->pMapRegion==0) );
43420 if( pFd->nFetchOut>0 ) return SQLITE_OK;
43424 if( osFstat(pFd->h, &statbuf) ){
43429 if( nMap>pFd->mmapSizeMax ){
43430 nMap = pFd->mmapSizeMax;
43433 assert( nMap>0 || (pFd->mmapSize==0 && pFd->pMapRegion==0) );
43434 if( nMap!=pFd->mmapSize ){
43435 unixRemapfile(pFd, nMap);
43456 unixFile *pFd = (unixFile *)fd; /* The underlying database file */
43461 if( pFd->mmapSizeMax>0 ){
43467 if( pFd->pMapRegion==0 ){
43468 int rc = unixMapfile(pFd, -1);
43471 if( pFd->mmapSize >= (iOff+nAmt+nEofBuffer) ){
43472 *pp = &((u8 *)pFd->pMapRegion)[iOff];
43473 pFd->nFetchOut++;
43492 unixFile *pFd = (unixFile *)fd; /* The underlying database file */
43498 assert( (p==0)==(pFd->nFetchOut==0) );
43501 assert( p==0 || p==&((u8 *)pFd->pMapRegion)[iOff] );
43504 pFd->nFetchOut--;
43506 unixUnmapfile(pFd);
43509 assert( pFd->nFetchOut>=0 );
50715 static int winMapfile(winFile *pFd, sqlite3_int64 nByte){
50719 assert( nMap>=0 || pFd->nFetchOut==0 );
50721 osGetCurrentProcessId(), pFd, nByte));
50723 if( pFd->nFetchOut>0 ) return SQLITE_OK;
50726 rc = winFileSize((sqlite3_file*)pFd, &nMap);
50729 osGetCurrentProcessId(), pFd));
50733 if( nMap>pFd->mmapSizeMax ){
50734 nMap = pFd->mmapSizeMax;
50738 if( nMap==0 && pFd->mmapSize>0 ){
50739 winUnmapfile(pFd);
50741 if( nMap!=pFd->mmapSize ){
50746 winUnmapfile(pFd);
50748 if( (pFd->ctrlFlags & WINFILE_RDONLY)==0 ){
50754 pFd->hMap = osCreateFileMappingFromApp(pFd->h, NULL, protect, nMap, NULL);
50756 pFd->hMap = osCreateFileMappingW(pFd->h, NULL, protect,
50760 pFd->hMap = osCreateFileMappingA(pFd->h, NULL, protect,
50764 if( pFd->hMap==NULL ){
50765 pFd->lastErrno = osGetLastError();
50766 rc = winLogError(SQLITE_IOERR_MMAP, pFd->lastErrno,
50767 "winMapfile1", pFd->zPath);
50770 osGetCurrentProcessId(), pFd, sqlite3ErrName(rc)));
50776 pNew = osMapViewOfFileFromApp(pFd->hMap, flags, 0, (SIZE_T)nMap);
50778 pNew = osMapViewOfFile(pFd->hMap, flags, 0, 0, (SIZE_T)nMap);
50781 osCloseHandle(pFd->hMap);
50782 pFd->hMap = NULL;
50783 pFd->lastErrno = osGetLastError();
50784 rc = winLogError(SQLITE_IOERR_MMAP, pFd->lastErrno,
50785 "winMapfile2", pFd->zPath);
50788 osGetCurrentProcessId(), pFd, sqlite3ErrName(rc)));
50791 pFd->pMapRegion = pNew;
50792 pFd->mmapSize = nMap;
50796 osGetCurrentProcessId(), pFd));
50815 winFile *pFd = (winFile*)fd; /* The underlying database file */
50823 if( pFd->mmapSizeMax>0 ){
50829 if( pFd->pMapRegion==0 ){
50830 int rc = winMapfile(pFd, -1);
50833 osGetCurrentProcessId(), pFd, sqlite3ErrName(rc)));
50837 if( pFd->mmapSize >= (iOff+nAmt+nEofBuffer) ){
50838 assert( pFd->pMapRegion!=0 );
50839 *pp = &((u8 *)pFd->pMapRegion)[iOff];
50840 pFd->nFetchOut++;
50862 winFile *pFd = (winFile*)fd; /* The underlying database file */
50867 assert( (p==0)==(pFd->nFetchOut==0) );
50870 assert( p==0 || p==&((u8 *)pFd->pMapRegion)[iOff] );
50873 osGetCurrentProcessId(), pFd, iOff, p));
50876 pFd->nFetchOut--;
50882 winUnmapfile(pFd);
50885 assert( pFd->nFetchOut>=0 );
53059 sqlite3_file *pFd,
53063 MemFile *pFile = (MemFile*)pFd;
53130 pFd->pMethods = &memdb_io_methods;
57553 #define isOpen(pFd) ((pFd)->pMethods!=0)
68429 sqlite3_file *pFd; /* The WAL file to which we write */
68452 rc = sqlite3OsWrite(p->pFd, pContent, iFirstAmt, iOffset);
68458 rc = sqlite3OsSync(p->pFd, WAL_SYNC_FLAGS(p->syncFlags));
68461 rc = sqlite3OsWrite(p->pFd, pContent, iAmt, iOffset);
68637 w.pFd = pWal->pWalFd;
68717 rc = sqlite3OsSync(w.pFd, WAL_SYNC_FLAGS(sync_flags));
82292 sqlite3_file *pFd; /* File descriptor for database pTo */
82298 pFd = sqlite3PagerFile(sqlite3BtreePager(pTo));
82299 if( pFd->pMethods ){
82301 rc = sqlite3OsFileControl(pFd, SQLITE_FCNTL_OVERWRITE, &nByte);
102435 sqlite3_file *pFd; /* File handle */
102616 sqlite3_file *pFd; /* File handle we are reading from */
102682 sqlite3_file *pFd; /* File handle to write to */
102733 if( pReadr->aMap ) sqlite3OsUnfetch(pReadr->pFd, 0, pReadr->aMap);
102780 rc = sqlite3OsRead(p->pFd, p->aBuffer, nRead, p->iReadOff);
102877 sqlite3_file *pFd = pFile->pFd;
102878 if( pFd->pMethods->iVersion>=3 ){
102879 rc = sqlite3OsFetch(pFd, 0, (int)pFile->iEof, (void**)pp);
102903 sqlite3OsUnfetch(pReadr->pFd, 0, pReadr->aMap);
102908 pReadr->pFd = pFile->pFd;
102925 pReadr->pFd, &pReadr->aBuffer[iBuf], nRead, pReadr->iReadOff
103321 if( pTask->file.pFd ){
103322 sqlite3OsCloseFree(pTask->file.pFd);
103324 if( pTask->file2.pFd ){
103325 sqlite3OsCloseFree(pTask->file2.pFd);
103480 if( pIncr->aFile[0].pFd ) sqlite3OsCloseFree(pIncr->aFile[0].pFd);
103481 if( pIncr->aFile[1].pFd ) sqlite3OsCloseFree(pIncr->aFile[1].pFd);
103547 static void vdbeSorterExtendFile(sqlite3 *db, sqlite3_file *pFd, i64 nByte){
103548 if( nByte<=(i64)(db->nMaxSorterMmap) && pFd->pMethods->iVersion>=3 ){
103551 sqlite3OsFileControlHint(pFd, SQLITE_FCNTL_CHUNK_SIZE, &chunksize);
103552 sqlite3OsFileControlHint(pFd, SQLITE_FCNTL_SIZE_HINT, &nByte);
103553 sqlite3OsFetch(pFd, 0, (int)nByte, &p);
103554 if( p ) sqlite3OsUnfetch(pFd, 0, p);
103715 sqlite3_file *pFd, /* File handle to write to */
103728 p->pFd = pFd;
103747 p->eFWErr = sqlite3OsWrite(p->pFd,
103772 p->eFWErr = sqlite3OsWrite(p->pFd,
103825 if( pTask->file.pFd==0 ){
103826 rc = vdbeSorterOpenTempFile(db, 0, &pTask->file.pFd);
103827 assert( rc!=SQLITE_OK || pTask->file.pFd );
103834 vdbeSorterExtendFile(db, pTask->file.pFd, pTask->file.iEof+pList->szPMA+9);
103846 vdbePmaWriterInit(pTask->file.pFd, &writer, pTask->pSorter->pgsz,
103899 if( pReadr1->pFd==0 ){
103901 }else if( pReadr2->pFd==0 ){
103929 if( pReadr1->pFd ) bCached = 0;
103934 *pbEof = (pMerger->aReadr[pMerger->aTree[1]].pFd==0);
104152 vdbePmaWriterInit(pOut->pFd, &writer, pTask->pSorter->pgsz, iStart);
104161 if( pReader->pFd==0 ) break;
104316 if( p1->pFd==0 ){
104318 }else if( p2->pFd==0 ){
104469 rc = vdbeSorterOpenTempFile(db, mxSz, &pIncr->aFile[0].pFd);
104471 rc = vdbeSorterOpenTempFile(db, mxSz, &pIncr->aFile[1].pFd);
104476 if( pTask->file2.pFd==0 ){
104478 rc = vdbeSorterOpenTempFile(db, pTask->file2.iEof, &pTask->file2.pFd);
104482 pIncr->aFile[1].pFd = pTask->file2.pFd;
104909 if( rc==SQLITE_OK && pSorter->pReader->pFd==0 ) rc = SQLITE_DONE;
219815 rbu_file *pFd = (rbuIsVacuum(p) ? p->pRbuFd : p->pTargetFd);
219839 RBU_STATE_COOKIE, (i64)pFd->iCookie,
220344 rbu_file *pFd = (rbuIsVacuum(p) ? p->pRbuFd : p->pTargetFd);
220345 if( pFd->iCookie!=pState->iCookie ){
220794 static int rbuUpdateTempSize(rbu_file *pFd, sqlite3_int64 nNew){
220795 sqlite3rbu *pRbu = pFd->pRbu;
220796 i64 nDiff = nNew - pFd->sz;
220798 pFd->sz = nNew;
220964 sqlite3_file *pFd = (sqlite3_file*)pRbu->pRbuFd;
220965 rc = pFd->pMethods->xRead(pFd, zBuf, iAmt, iOfst);
221369 rbu_file *pFd = (rbu_file *)pFile;
221374 memset(pFd, 0, sizeof(rbu_file));
221375 pFd->pReal = (sqlite3_file*)&pFd[1];
221376 pFd->pRbuVfs = pRbuVfs;
221377 pFd->openFlags = flags;
221385 pFd->zWal = sqlite3_filename_wal(zName);
221399 pFd->pRbu = pDb->pRbu;
221401 pDb->pWalFd = pFd;
221405 pFd->pRbu = pRbuVfs->pRbu;
221418 rc = pRealVfs->xOpen(pRealVfs, zOpen, pFd->pReal, oflags, pOutFlags);
221420 if( pFd->pReal->pMethods ){
221421 const sqlite3_io_methods *pMeth = pFd->pReal->pMethods;
221431 rbuMainlistAdd(pFd);
221434 sqlite3_free(pFd->zDel);