Lines Matching refs:pFile
2251 static int winceCreateLock(const char *zFilename, winFile *pFile){ in winceCreateLock() argument
2265 memset(&pFile->local, 0, sizeof(pFile->local)); in winceCreateLock()
2275 pFile->hMutex = osCreateMutexW(NULL, FALSE, zName); in winceCreateLock()
2276 if (!pFile->hMutex){ in winceCreateLock()
2277 pFile->lastErrno = osGetLastError(); in winceCreateLock()
2279 return winLogError(SQLITE_IOERR, pFile->lastErrno, in winceCreateLock()
2284 winceMutexAcquire(pFile->hMutex); in winceCreateLock()
2291 pFile->hShared = osCreateFileMappingW(INVALID_HANDLE_VALUE, NULL, in winceCreateLock()
2305 if( pFile->hShared ){ in winceCreateLock()
2306 pFile->shared = (winceLock*)osMapViewOfFile(pFile->hShared, in winceCreateLock()
2309 if( !pFile->shared ){ in winceCreateLock()
2310 pFile->lastErrno = osGetLastError(); in winceCreateLock()
2311 winLogError(SQLITE_IOERR, pFile->lastErrno, in winceCreateLock()
2314 osCloseHandle(pFile->hShared); in winceCreateLock()
2315 pFile->hShared = NULL; in winceCreateLock()
2320 if( pFile->hShared==NULL ){ in winceCreateLock()
2322 pFile->lastErrno = lastErrno; in winceCreateLock()
2323 winLogError(SQLITE_IOERR, pFile->lastErrno, in winceCreateLock()
2327 winceMutexRelease(pFile->hMutex); in winceCreateLock()
2328 osCloseHandle(pFile->hMutex); in winceCreateLock()
2329 pFile->hMutex = NULL; in winceCreateLock()
2335 memset(pFile->shared, 0, sizeof(winceLock)); in winceCreateLock()
2338 winceMutexRelease(pFile->hMutex); in winceCreateLock()
2345 static void winceDestroyLock(winFile *pFile){ in winceDestroyLock() argument
2346 if (pFile->hMutex){ in winceDestroyLock()
2348 winceMutexAcquire(pFile->hMutex); in winceDestroyLock()
2352 if (pFile->local.nReaders){ in winceDestroyLock()
2353 pFile->shared->nReaders --; in winceDestroyLock()
2355 if (pFile->local.bReserved){ in winceDestroyLock()
2356 pFile->shared->bReserved = FALSE; in winceDestroyLock()
2358 if (pFile->local.bPending){ in winceDestroyLock()
2359 pFile->shared->bPending = FALSE; in winceDestroyLock()
2361 if (pFile->local.bExclusive){ in winceDestroyLock()
2362 pFile->shared->bExclusive = FALSE; in winceDestroyLock()
2366 osUnmapViewOfFile(pFile->shared); in winceDestroyLock()
2367 osCloseHandle(pFile->hShared); in winceDestroyLock()
2370 winceMutexRelease(pFile->hMutex); in winceDestroyLock()
2371 osCloseHandle(pFile->hMutex); in winceDestroyLock()
2372 pFile->hMutex = NULL; in winceDestroyLock()
2386 winFile *pFile = HANDLE_TO_WINFILE(phFile); in winceLockFile() local
2392 if (!pFile->hMutex) return TRUE; in winceLockFile()
2393 winceMutexAcquire(pFile->hMutex); in winceLockFile()
2398 if (pFile->shared->nReaders == 0 && pFile->shared->bExclusive == 0){ in winceLockFile()
2399 pFile->shared->bExclusive = TRUE; in winceLockFile()
2400 pFile->local.bExclusive = TRUE; in winceLockFile()
2408 if (pFile->shared->bExclusive == 0){ in winceLockFile()
2409 pFile->local.nReaders ++; in winceLockFile()
2410 if (pFile->local.nReaders == 1){ in winceLockFile()
2411 pFile->shared->nReaders ++; in winceLockFile()
2421 if (pFile->shared->bPending == 0) { in winceLockFile()
2422 pFile->shared->bPending = TRUE; in winceLockFile()
2423 pFile->local.bPending = TRUE; in winceLockFile()
2431 if (pFile->shared->bReserved == 0) { in winceLockFile()
2432 pFile->shared->bReserved = TRUE; in winceLockFile()
2433 pFile->local.bReserved = TRUE; in winceLockFile()
2438 winceMutexRelease(pFile->hMutex); in winceLockFile()
2452 winFile *pFile = HANDLE_TO_WINFILE(phFile); in winceUnlockFile() local
2458 if (!pFile->hMutex) return TRUE; in winceUnlockFile()
2459 winceMutexAcquire(pFile->hMutex); in winceUnlockFile()
2464 if (pFile->local.bExclusive){ in winceUnlockFile()
2466 pFile->local.bExclusive = FALSE; in winceUnlockFile()
2467 pFile->shared->bExclusive = FALSE; in winceUnlockFile()
2472 else if (pFile->local.nReaders){ in winceUnlockFile()
2475 pFile->local.nReaders --; in winceUnlockFile()
2476 if (pFile->local.nReaders == 0) in winceUnlockFile()
2478 pFile->shared->nReaders --; in winceUnlockFile()
2487 if (pFile->local.bPending){ in winceUnlockFile()
2488 pFile->local.bPending = FALSE; in winceUnlockFile()
2489 pFile->shared->bPending = FALSE; in winceUnlockFile()
2496 if (pFile->local.bReserved) { in winceUnlockFile()
2497 pFile->local.bReserved = FALSE; in winceUnlockFile()
2498 pFile->shared->bReserved = FALSE; in winceUnlockFile()
2503 winceMutexRelease(pFile->hMutex); in winceUnlockFile()
2591 static int winSeekFile(winFile *pFile, sqlite3_int64 iOffset){ in winSeekFile() argument
2598 OSTRACE(("SEEK file=%p, offset=%lld\n", pFile->h, iOffset)); in winSeekFile()
2610 dwRet = osSetFilePointer(pFile->h, lowerBits, &upperBits, FILE_BEGIN); in winSeekFile()
2614 pFile->lastErrno = lastErrno; in winSeekFile()
2615 winLogError(SQLITE_IOERR_SEEK, pFile->lastErrno, in winSeekFile()
2616 "winSeekFile", pFile->zPath); in winSeekFile()
2617 OSTRACE(("SEEK file=%p, rc=SQLITE_IOERR_SEEK\n", pFile->h)); in winSeekFile()
2621 OSTRACE(("SEEK file=%p, rc=SQLITE_OK\n", pFile->h)); in winSeekFile()
2632 bRet = osSetFilePointerEx(pFile->h, x, 0, FILE_BEGIN); in winSeekFile()
2635 pFile->lastErrno = osGetLastError(); in winSeekFile()
2636 winLogError(SQLITE_IOERR_SEEK, pFile->lastErrno, in winSeekFile()
2637 "winSeekFile", pFile->zPath); in winSeekFile()
2638 OSTRACE(("SEEK file=%p, rc=SQLITE_IOERR_SEEK\n", pFile->h)); in winSeekFile()
2642 OSTRACE(("SEEK file=%p, rc=SQLITE_OK\n", pFile->h)); in winSeekFile()
2666 winFile *pFile = (winFile*)id; in winClose() local
2670 assert( pFile->pShm==0 ); in winClose()
2672 assert( pFile->h!=NULL && pFile->h!=INVALID_HANDLE_VALUE ); in winClose()
2674 osGetCurrentProcessId(), pFile, pFile->h)); in winClose()
2677 winUnmapfile(pFile); in winClose()
2681 rc = osCloseHandle(pFile->h); in winClose()
2687 winVfsAppData *pAppData = (winVfsAppData*)pFile->pVfs->pAppData; in winClose()
2689 winceDestroyLock(pFile); in winClose()
2692 if( pFile->zDeleteOnClose ){ in winClose()
2695 osDeleteFileW(pFile->zDeleteOnClose)==0 in winClose()
2696 && osGetFileAttributesW(pFile->zDeleteOnClose)!=0xffffffff in winClose()
2701 sqlite3_free(pFile->zDeleteOnClose); in winClose()
2705 pFile->h = NULL; in winClose()
2709 osGetCurrentProcessId(), pFile, pFile->h, rc ? "ok" : "failed")); in winClose()
2712 "winClose", pFile->zPath); in winClose()
2729 winFile *pFile = (winFile*)id; /* file handle */ local
2738 "offset=%lld, lock=%d\n", osGetCurrentProcessId(), pFile,
2739 pFile->h, pBuf, amt, offset, pFile->locktype));
2744 if( offset<pFile->mmapSize ){
2745 if( offset+amt <= pFile->mmapSize ){
2746 memcpy(pBuf, &((u8 *)(pFile->pMapRegion))[offset], amt);
2748 osGetCurrentProcessId(), pFile, pFile->h));
2751 int nCopy = (int)(pFile->mmapSize - offset);
2752 memcpy(pBuf, &((u8 *)(pFile->pMapRegion))[offset], nCopy);
2761 if( winSeekFile(pFile, offset) ){
2763 osGetCurrentProcessId(), pFile, pFile->h));
2766 while( !osReadFile(pFile->h, pBuf, amt, &nRead, 0) ){
2771 while( !osReadFile(pFile->h, pBuf, amt, &nRead, &overlapped) &&
2776 pFile->lastErrno = lastErrno;
2778 osGetCurrentProcessId(), pFile, pFile->h));
2779 return winLogError(SQLITE_IOERR_READ, pFile->lastErrno,
2780 "winRead", pFile->zPath);
2787 osGetCurrentProcessId(), pFile, pFile->h));
2792 osGetCurrentProcessId(), pFile, pFile->h));
2807 winFile *pFile = (winFile*)id; /* File handle */ local
2811 assert( pFile );
2816 "offset=%lld, lock=%d\n", osGetCurrentProcessId(), pFile,
2817 pFile->h, pBuf, amt, offset, pFile->locktype));
2822 if( offset<pFile->mmapSize ){
2823 if( offset+amt <= pFile->mmapSize ){
2824 memcpy(&((u8 *)(pFile->pMapRegion))[offset], pBuf, amt);
2826 osGetCurrentProcessId(), pFile, pFile->h));
2829 int nCopy = (int)(pFile->mmapSize - offset);
2830 memcpy(&((u8 *)(pFile->pMapRegion))[offset], pBuf, nCopy);
2839 rc = winSeekFile(pFile, offset);
2860 if( !osWriteFile(pFile->h, aRem, nRem, &nWrite, 0) ){
2862 if( !osWriteFile(pFile->h, aRem, nRem, &nWrite, &overlapped) ){
2881 pFile->lastErrno = lastErrno;
2887 if( ( pFile->lastErrno==ERROR_HANDLE_DISK_FULL )
2888 || ( pFile->lastErrno==ERROR_DISK_FULL )){
2890 osGetCurrentProcessId(), pFile, pFile->h));
2891 return winLogError(SQLITE_FULL, pFile->lastErrno,
2892 "winWrite1", pFile->zPath);
2895 osGetCurrentProcessId(), pFile, pFile->h));
2896 return winLogError(SQLITE_IOERR_WRITE, pFile->lastErrno,
2897 "winWrite2", pFile->zPath);
2902 osGetCurrentProcessId(), pFile, pFile->h));
2910 winFile *pFile = (winFile*)id; /* File handle object */ local
2915 if( pFile->nFetchOut>0 ){
2937 assert( pFile );
2940 osGetCurrentProcessId(), pFile, pFile->h, nByte, pFile->locktype));
2947 if( pFile->szChunk>0 ){
2948 nByte = ((nByte + pFile->szChunk - 1)/pFile->szChunk) * pFile->szChunk;
2952 if( pFile->pMapRegion ){
2953 oldMmapSize = pFile->mmapSize;
2957 winUnmapfile(pFile);
2961 if( winSeekFile(pFile, nByte) ){
2962 rc = winLogError(SQLITE_IOERR_TRUNCATE, pFile->lastErrno,
2963 "winTruncate1", pFile->zPath);
2964 }else if( 0==osSetEndOfFile(pFile->h) &&
2966 pFile->lastErrno = lastErrno;
2967 rc = winLogError(SQLITE_IOERR_TRUNCATE, pFile->lastErrno,
2968 "winTruncate2", pFile->zPath);
2974 winMapfile(pFile, -1);
2976 winMapfile(pFile, oldMmapSize);
2982 osGetCurrentProcessId(), pFile, pFile->h, sqlite3ErrName(rc)));
3011 winFile *pFile = (winFile*)id; local
3016 assert( pFile );
3028 osGetCurrentProcessId(), pFile, pFile->h, flags,
3029 pFile->locktype));
3045 osGetCurrentProcessId(), pFile, pFile->h));
3049 if( pFile->pMapRegion ){
3050 if( osFlushViewOfFile(pFile->pMapRegion, 0) ){
3053 pFile, pFile->pMapRegion));
3055 pFile->lastErrno = osGetLastError();
3058 pFile, pFile->pMapRegion));
3059 return winLogError(SQLITE_IOERR_MMAP, pFile->lastErrno,
3060 "winSync1", pFile->zPath);
3064 rc = osFlushFileBuffers(pFile->h);
3068 osGetCurrentProcessId(), pFile, pFile->h));
3071 pFile->lastErrno = osGetLastError();
3073 osGetCurrentProcessId(), pFile, pFile->h));
3074 return winLogError(SQLITE_IOERR_FSYNC, pFile->lastErrno,
3075 "winSync2", pFile->zPath);
3084 winFile *pFile = (winFile*)id; local
3090 OSTRACE(("SIZE file=%p, pSize=%p\n", pFile->h, pSize));
3095 if( osGetFileInformationByHandleEx(pFile->h, FileStandardInfo,
3099 pFile->lastErrno = osGetLastError();
3100 rc = winLogError(SQLITE_IOERR_FSTAT, pFile->lastErrno,
3101 "winFileSize", pFile->zPath);
3110 lowerBits = osGetFileSize(pFile->h, &upperBits);
3114 pFile->lastErrno = lastErrno;
3115 rc = winLogError(SQLITE_IOERR_FSTAT, pFile->lastErrno,
3116 "winFileSize", pFile->zPath);
3121 pFile->h, pSize, *pSize, sqlite3ErrName(rc)));
3161 static int winGetReadLock(winFile *pFile){ argument
3163 OSTRACE(("READ-LOCK file=%p, lock=%d\n", pFile->h, pFile->locktype));
3170 res = winceLockFile(&pFile->h, SHARED_FIRST, 0, 1, 0);
3172 res = winLockFile(&pFile->h, SQLITE_LOCKFILEEX_FLAGS, SHARED_FIRST, 0,
3180 pFile->sharedLockByte = (short)((lk & 0x7fffffff)%(SHARED_SIZE - 1));
3181 res = winLockFile(&pFile->h, SQLITE_LOCKFILE_FLAGS,
3182 SHARED_FIRST+pFile->sharedLockByte, 0, 1, 0);
3186 pFile->lastErrno = osGetLastError();
3189 OSTRACE(("READ-LOCK file=%p, result=%d\n", pFile->h, res));
3196 static int winUnlockReadLock(winFile *pFile){ argument
3199 OSTRACE(("READ-UNLOCK file=%p, lock=%d\n", pFile->h, pFile->locktype));
3201 res = winUnlockFile(&pFile->h, SHARED_FIRST, 0, SHARED_SIZE, 0);
3205 res = winUnlockFile(&pFile->h, SHARED_FIRST+pFile->sharedLockByte, 0, 1, 0);
3209 pFile->lastErrno = lastErrno;
3210 winLogError(SQLITE_IOERR_UNLOCK, pFile->lastErrno,
3211 "winUnlockReadLock", pFile->zPath);
3213 OSTRACE(("READ-UNLOCK file=%p, result=%d\n", pFile->h, res));
3248 winFile *pFile = (winFile*)id; local
3253 pFile->h, pFile->locktype, pFile->sharedLockByte, locktype));
3259 if( pFile->locktype>=locktype ){
3260 OSTRACE(("LOCK-HELD file=%p, rc=SQLITE_OK\n", pFile->h));
3266 if( (pFile->ctrlFlags & WINFILE_RDONLY)!=0 && locktype>=RESERVED_LOCK ){
3272 assert( pFile->locktype!=NO_LOCK || locktype==SHARED_LOCK );
3274 assert( locktype!=RESERVED_LOCK || pFile->locktype==SHARED_LOCK );
3280 newLocktype = pFile->locktype;
3281 if( pFile->locktype==NO_LOCK
3282 || (locktype==EXCLUSIVE_LOCK && pFile->locktype<=RESERVED_LOCK)
3285 while( cnt-->0 && (res = winLockFile(&pFile->h, SQLITE_LOCKFILE_FLAGS,
3295 pFile->h, cnt, res));
3297 pFile->lastErrno = lastErrno;
3300 pFile->h, cnt, sqlite3ErrName(rc)));
3314 assert( pFile->locktype==NO_LOCK );
3315 res = winGetReadLock(pFile);
3326 assert( pFile->locktype==SHARED_LOCK );
3327 res = winLockFile(&pFile->h, SQLITE_LOCKFILE_FLAGS, RESERVED_BYTE, 0, 1, 0);
3345 assert( pFile->locktype>=SHARED_LOCK );
3346 res = winUnlockReadLock(pFile);
3347 res = winLockFile(&pFile->h, SQLITE_LOCKFILE_FLAGS, SHARED_FIRST, 0,
3353 winGetReadLock(pFile);
3361 winUnlockFile(&pFile->h, PENDING_BYTE, 0, 1, 0);
3370 pFile->lastErrno = lastErrno;
3373 pFile->h, locktype, newLocktype));
3375 pFile->locktype = (u8)newLocktype;
3377 pFile->h, pFile->locktype, sqlite3ErrName(rc)));
3388 winFile *pFile = (winFile*)id; local
3391 OSTRACE(("TEST-WR-LOCK file=%p, pResOut=%p\n", pFile->h, pResOut));
3394 if( pFile->locktype>=RESERVED_LOCK ){
3396 OSTRACE(("TEST-WR-LOCK file=%p, result=%d (local)\n", pFile->h, res));
3398 res = winLockFile(&pFile->h, SQLITE_LOCKFILEEX_FLAGS,RESERVED_BYTE,0,1,0);
3400 winUnlockFile(&pFile->h, RESERVED_BYTE, 0, 1, 0);
3403 OSTRACE(("TEST-WR-LOCK file=%p, result=%d (remote)\n", pFile->h, res));
3407 pFile->h, pResOut, *pResOut));
3424 winFile *pFile = (winFile*)id; local
3426 assert( pFile!=0 );
3429 pFile->h, pFile->locktype, pFile->sharedLockByte, locktype));
3430 type = pFile->locktype;
3432 winUnlockFile(&pFile->h, SHARED_FIRST, 0, SHARED_SIZE, 0);
3433 if( locktype==SHARED_LOCK && !winGetReadLock(pFile) ){
3437 "winUnlock", pFile->zPath);
3441 winUnlockFile(&pFile->h, RESERVED_BYTE, 0, 1, 0);
3444 winUnlockReadLock(pFile);
3447 winUnlockFile(&pFile->h, PENDING_BYTE, 0, 1, 0);
3449 pFile->locktype = (u8)locktype;
3451 pFile->h, pFile->locktype, sqlite3ErrName(rc)));
3499 static void winModeBit(winFile *pFile, unsigned char mask, int *pArg){ argument
3501 *pArg = (pFile->ctrlFlags & mask)!=0;
3503 pFile->ctrlFlags &= ~mask;
3505 pFile->ctrlFlags |= mask;
3519 winFile *pFile = (winFile*)id; local
3520 OSTRACE(("FCNTL file=%p, op=%d, pArg=%p\n", pFile->h, op, pArg));
3523 *(int*)pArg = pFile->locktype;
3524 OSTRACE(("FCNTL file=%p, rc=SQLITE_OK\n", pFile->h));
3528 *(int*)pArg = (int)pFile->lastErrno;
3529 OSTRACE(("FCNTL file=%p, rc=SQLITE_OK\n", pFile->h));
3533 pFile->szChunk = *(int *)pArg;
3534 OSTRACE(("FCNTL file=%p, rc=SQLITE_OK\n", pFile->h));
3538 if( pFile->szChunk>0 ){
3549 OSTRACE(("FCNTL file=%p, rc=%s\n", pFile->h, sqlite3ErrName(rc)));
3552 OSTRACE(("FCNTL file=%p, rc=SQLITE_OK\n", pFile->h));
3556 winModeBit(pFile, WINFILE_PERSIST_WAL, (int*)pArg);
3557 OSTRACE(("FCNTL file=%p, rc=SQLITE_OK\n", pFile->h));
3561 winModeBit(pFile, WINFILE_PSOW, (int*)pArg);
3562 OSTRACE(("FCNTL file=%p, rc=SQLITE_OK\n", pFile->h));
3566 *(char**)pArg = sqlite3_mprintf("%s", pFile->pVfs->zName);
3567 OSTRACE(("FCNTL file=%p, rc=SQLITE_OK\n", pFile->h));
3582 OSTRACE(("FCNTL file=%p, rc=SQLITE_OK\n", pFile->h));
3587 *phFile = pFile->h;
3588 OSTRACE(("FCNTL file=%p, rc=SQLITE_OK\n", pFile->h));
3594 HANDLE hOldFile = pFile->h;
3595 pFile->h = *phFile;
3598 hOldFile, pFile->h));
3604 int rc = winGetTempname(pFile->pVfs, &zTFile);
3608 OSTRACE(("FCNTL file=%p, rc=%s\n", pFile->h, sqlite3ErrName(rc)));
3626 *(i64*)pArg = pFile->mmapSizeMax;
3627 if( newLimit>=0 && newLimit!=pFile->mmapSizeMax && pFile->nFetchOut==0 ){
3628 pFile->mmapSizeMax = newLimit;
3629 if( pFile->mmapSize>0 ){
3630 winUnmapfile(pFile);
3631 rc = winMapfile(pFile, -1);
3634 OSTRACE(("FCNTL file=%p, rc=%s\n", pFile->h, sqlite3ErrName(rc)));
3639 OSTRACE(("FCNTL file=%p, rc=SQLITE_NOTFOUND\n", pFile->h));
3794 winShmNode *pFile, /* Apply locks to this open shared-memory segment */ argument
3802 assert( pFile->nRef==0 || sqlite3_mutex_held(pFile->mutex) );
3805 pFile->hFile.h, lockType, ofst, nByte));
3809 rc = winUnlockFile(&pFile->hFile.h, ofst, 0, nByte, 0);
3814 rc = winLockFile(&pFile->hFile.h, dwFlags, ofst, 0, nByte, 0);
3820 pFile->lastErrno = osGetLastError();
3825 pFile->hFile.h, (lockType == WINSHM_UNLCK) ? "winUnlockFile" :
3826 "winLockFile", pFile->lastErrno, sqlite3ErrName(rc)));
4366 static int winUnmapfile(winFile *pFile){ argument
4367 assert( pFile!=0 );
4370 osGetCurrentProcessId(), pFile, pFile->hMap, pFile->pMapRegion,
4371 pFile->mmapSize, pFile->mmapSizeMax));
4372 if( pFile->pMapRegion ){
4373 if( !osUnmapViewOfFile(pFile->pMapRegion) ){
4374 pFile->lastErrno = osGetLastError();
4376 "rc=SQLITE_IOERR_MMAP\n", osGetCurrentProcessId(), pFile,
4377 pFile->pMapRegion));
4378 return winLogError(SQLITE_IOERR_MMAP, pFile->lastErrno,
4379 "winUnmapfile1", pFile->zPath);
4381 pFile->pMapRegion = 0;
4382 pFile->mmapSize = 0;
4384 if( pFile->hMap!=NULL ){
4385 if( !osCloseHandle(pFile->hMap) ){
4386 pFile->lastErrno = osGetLastError();
4388 osGetCurrentProcessId(), pFile, pFile->hMap));
4389 return winLogError(SQLITE_IOERR_MMAP, pFile->lastErrno,
4390 "winUnmapfile2", pFile->zPath);
4392 pFile->hMap = NULL;
4395 osGetCurrentProcessId(), pFile));
5030 winFile *pFile = (winFile*)id; local
5088 assert( pFile!=0 );
5089 memset(pFile, 0, sizeof(winFile));
5090 pFile->h = INVALID_HANDLE_VALUE;
5258 pFile->lastErrno = lastErrno;
5259 winLogError(SQLITE_CANTOPEN, pFile->lastErrno, "winOpen", zUtf8Name);
5282 && (rc = winceCreateLock(zName, pFile))!=SQLITE_OK
5292 pFile->zDeleteOnClose = zConverted;
5301 pFile->pVfs = pVfs;
5302 pFile->h = h;
5304 pFile->ctrlFlags |= WINFILE_RDONLY;
5309 pFile->ctrlFlags |= WINFILE_PSOW;
5311 pFile->lastErrno = NO_ERROR;
5312 pFile->zPath = zName;
5314 pFile->hMap = NULL;
5315 pFile->pMapRegion = 0;
5316 pFile->mmapSize = 0;
5317 pFile->mmapSizeMax = sqlite3GlobalConfig.szMmap;