Lines Matching refs:id

459   OsFile *id,  in sqliteOsOpenReadWrite()  argument
464 id->dirfd = -1; in sqliteOsOpenReadWrite()
465 id->fd = open(zFilename, O_RDWR|O_CREAT|O_LARGEFILE|O_BINARY, 0644); in sqliteOsOpenReadWrite()
466 if( id->fd<0 ){ in sqliteOsOpenReadWrite()
472 id->fd = open(zFilename, O_RDONLY|O_LARGEFILE|O_BINARY); in sqliteOsOpenReadWrite()
473 if( id->fd<0 ){ in sqliteOsOpenReadWrite()
481 rc = findLockInfo(id->fd, &id->pLock, &id->pOpen); in sqliteOsOpenReadWrite()
484 close(id->fd); in sqliteOsOpenReadWrite()
487 id->locked = 0; in sqliteOsOpenReadWrite()
488 TRACE3("OPEN %-3d %s\n", id->fd, zFilename); in sqliteOsOpenReadWrite()
517 id->h = h; in sqliteOsOpenReadWrite()
518 id->locked = 0; in sqliteOsOpenReadWrite()
535 fsRdWrShPerm, &(id->refNum)) != noErr ){ in sqliteOsOpenReadWrite()
537 fsRdWrPerm, &(id->refNum)) != noErr ){ in sqliteOsOpenReadWrite()
539 fsRdPerm, &(id->refNum)) != noErr ) in sqliteOsOpenReadWrite()
553 if( HOpenDF(fsSpec.vRefNum, fsSpec.parID, fsSpec.name, fsRdWrShPerm, &(id->refNum)) != noErr ){ in sqliteOsOpenReadWrite()
554 if( HOpenDF(fsSpec.vRefNum, fsSpec.parID, fsSpec.name, fsRdWrPerm, &(id->refNum)) != noErr ){ in sqliteOsOpenReadWrite()
555 if( HOpenDF(fsSpec.vRefNum, fsSpec.parID, fsSpec.name, fsRdPerm, &(id->refNum)) != noErr ) in sqliteOsOpenReadWrite()
564 if( HOpenRF(fsSpec.vRefNum, fsSpec.parID, fsSpec.name, fsRdWrShPerm, &(id->refNumRF)) != noErr){ in sqliteOsOpenReadWrite()
565 id->refNumRF = -1; in sqliteOsOpenReadWrite()
567 id->locked = 0; in sqliteOsOpenReadWrite()
568 id->delOnClose = 0; in sqliteOsOpenReadWrite()
589 int sqliteOsOpenExclusive(const char *zFilename, OsFile *id, int delFlag){ in sqliteOsOpenExclusive() argument
595 id->dirfd = -1; in sqliteOsOpenExclusive()
596 id->fd = open(zFilename, in sqliteOsOpenExclusive()
598 if( id->fd<0 ){ in sqliteOsOpenExclusive()
602 rc = findLockInfo(id->fd, &id->pLock, &id->pOpen); in sqliteOsOpenExclusive()
605 close(id->fd); in sqliteOsOpenExclusive()
609 id->locked = 0; in sqliteOsOpenExclusive()
613 TRACE3("OPEN-EX %-3d %s\n", id->fd, zFilename); in sqliteOsOpenExclusive()
637 id->h = h; in sqliteOsOpenExclusive()
638 id->locked = 0; in sqliteOsOpenExclusive()
654 fsRdWrPerm, &(id->refNum)) != noErr ) in sqliteOsOpenExclusive()
660 if( HOpenDF(fsSpec.vRefNum, fsSpec.parID, fsSpec.name, fsRdWrPerm, &(id->refNum)) != noErr ) in sqliteOsOpenExclusive()
663 id->refNumRF = -1; in sqliteOsOpenExclusive()
664 id->locked = 0; in sqliteOsOpenExclusive()
665 id->delOnClose = delFlag; in sqliteOsOpenExclusive()
667 id->pathToDel = sqliteOsFullPathname(zFilename); in sqliteOsOpenExclusive()
680 int sqliteOsOpenReadOnly(const char *zFilename, OsFile *id){ in sqliteOsOpenReadOnly() argument
683 id->dirfd = -1; in sqliteOsOpenReadOnly()
684 id->fd = open(zFilename, O_RDONLY|O_LARGEFILE|O_BINARY); in sqliteOsOpenReadOnly()
685 if( id->fd<0 ){ in sqliteOsOpenReadOnly()
689 rc = findLockInfo(id->fd, &id->pLock, &id->pOpen); in sqliteOsOpenReadOnly()
692 close(id->fd); in sqliteOsOpenReadOnly()
695 id->locked = 0; in sqliteOsOpenReadOnly()
696 TRACE3("OPEN-RO %-3d %s\n", id->fd, zFilename); in sqliteOsOpenReadOnly()
712 id->h = h; in sqliteOsOpenReadOnly()
713 id->locked = 0; in sqliteOsOpenReadOnly()
728 fsRdPerm, &(id->refNum)) != noErr ) in sqliteOsOpenReadOnly()
732 if( HOpenDF(fsSpec.vRefNum, fsSpec.parID, fsSpec.name, fsRdPerm, &(id->refNum)) != noErr ) in sqliteOsOpenReadOnly()
735 if( HOpenRF(fsSpec.vRefNum, fsSpec.parID, fsSpec.name, fsRdWrShPerm, &(id->refNumRF)) != noErr){ in sqliteOsOpenReadOnly()
736 id->refNumRF = -1; in sqliteOsOpenReadOnly()
738 id->locked = 0; in sqliteOsOpenReadOnly()
739 id->delOnClose = 0; in sqliteOsOpenReadOnly()
763 OsFile *id in sqliteOsOpenDirectory() argument
766 if( id->fd<0 ){ in sqliteOsOpenDirectory()
771 assert( id->dirfd<0 ); in sqliteOsOpenDirectory()
772 id->dirfd = open(zDirname, O_RDONLY|O_BINARY, 0644); in sqliteOsOpenDirectory()
773 if( id->dirfd<0 ){ in sqliteOsOpenDirectory()
776 TRACE3("OPENDIR %-3d %s\n", id->dirfd, zDirname); in sqliteOsOpenDirectory()
909 int sqliteOsClose(OsFile *id){ in sqliteOsClose() argument
911 sqliteOsUnlock(id); in sqliteOsClose()
912 if( id->dirfd>=0 ) close(id->dirfd); in sqliteOsClose()
913 id->dirfd = -1; in sqliteOsClose()
915 if( id->pOpen->nLock ){ in sqliteOsClose()
922 struct openCnt *pOpen = id->pOpen; in sqliteOsClose()
929 pOpen->aPending[pOpen->nPending-1] = id->fd; in sqliteOsClose()
933 close(id->fd); in sqliteOsClose()
935 releaseLockInfo(id->pLock); in sqliteOsClose()
936 releaseOpenCnt(id->pOpen); in sqliteOsClose()
938 TRACE2("CLOSE %-3d\n", id->fd); in sqliteOsClose()
943 CloseHandle(id->h); in sqliteOsClose()
948 if( id->refNumRF!=-1 ) in sqliteOsClose()
949 FSClose(id->refNumRF); in sqliteOsClose()
951 FSCloseFork(id->refNum); in sqliteOsClose()
953 FSClose(id->refNum); in sqliteOsClose()
955 if( id->delOnClose ){ in sqliteOsClose()
956 unlink(id->pathToDel); in sqliteOsClose()
957 sqliteFree(id->pathToDel); in sqliteOsClose()
969 int sqliteOsRead(OsFile *id, void *pBuf, int amt){ in sqliteOsRead() argument
974 got = read(id->fd, pBuf, amt); in sqliteOsRead()
976 TRACE4("READ %-3d %7d %d\n", id->fd, last_page, elapse); in sqliteOsRead()
989 if( !ReadFile(id->h, pBuf, amt, &got, 0) ){ in sqliteOsRead()
1003 FSReadFork(id->refNum, fsAtMark, 0, (ByteCount)amt, pBuf, (ByteCount*)&got); in sqliteOsRead()
1006 FSRead(id->refNum, &got, pBuf); in sqliteOsRead()
1020 int sqliteOsWrite(OsFile *id, const void *pBuf, int amt){ in sqliteOsWrite() argument
1025 while( amt>0 && (wrote = write(id->fd, pBuf, amt))>0 ){ in sqliteOsWrite()
1030 TRACE4("WRITE %-3d %7d %d\n", id->fd, last_page, elapse); in sqliteOsWrite()
1042 while( amt>0 && (rc = WriteFile(id->h, pBuf, amt, &wrote, 0))!=0 && wrote>0 ){ in sqliteOsWrite()
1058 oserr = FSWriteFork(id->refNum, fsAtMark, 0, in sqliteOsWrite()
1062 oserr = FSWrite(id->refNum, &wrote, pBuf); in sqliteOsWrite()
1079 int sqliteOsSeek(OsFile *id, off_t offset){ argument
1082 lseek(id->fd, offset, SEEK_SET);
1090 rc = SetFilePointer(id->h, lowerBits, &upperBits, FILE_BEGIN);
1098 if( sqliteOsFileSize(id, &curSize) != SQLITE_OK ){
1102 if( sqliteOsTruncate(id, offset+1) != SQLITE_OK ){
1107 if( FSSetForkPosition(id->refNum, fsFromStart, offset) != noErr ){
1109 if( SetFPos(id->refNum, fsFromStart, offset) != noErr ){
1130 int sqliteOsSync(OsFile *id){ argument
1133 TRACE2("SYNC %-3d\n", id->fd);
1134 if( fsync(id->fd) ){
1137 if( id->dirfd>=0 ){
1138 TRACE2("DIRSYNC %-3d\n", id->dirfd);
1139 fsync(id->dirfd);
1140 close(id->dirfd); /* Only need to sync once, so close the directory */
1141 id->dirfd = -1; /* when we are done. */
1147 if( FlushFileBuffers(id->h) ){
1155 if( FSFlushFork(id->refNum) != noErr ){
1159 params.ioParam.ioRefNum = id->refNum;
1172 int sqliteOsTruncate(OsFile *id, off_t nByte){ argument
1175 return ftruncate(id->fd, nByte)==0 ? SQLITE_OK : SQLITE_IOERR;
1180 SetFilePointer(id->h, nByte, &upperBits, FILE_BEGIN);
1181 SetEndOfFile(id->h);
1187 if( FSSetForkSize(id->refNum, fsFromStart, nByte) != noErr){
1189 if( SetEOF(id->refNum, nByte) != noErr ){
1201 int sqliteOsFileSize(OsFile *id, off_t *pSize){ argument
1205 if( fstat(id->fd, &buf)!=0 ){
1214 lowerBits = GetFileSize(id->h, &upperBits);
1220 if( FSGetForkSize(id->refNum, pSize) != noErr){
1222 if( GetEOF(id->refNum, pSize) != noErr ){
1316 int sqliteOsReadLock(OsFile *id){ argument
1320 if( id->pLock->cnt>0 ){
1321 if( !id->locked ){
1322 id->pLock->cnt++;
1323 id->locked = 1;
1324 id->pOpen->nLock++;
1327 }else if( id->locked || id->pLock->cnt==0 ){
1333 s = fcntl(id->fd, F_SETLK, &lock);
1338 if( !id->locked ){
1339 id->pOpen->nLock++;
1340 id->locked = 1;
1342 id->pLock->cnt = 1;
1352 if( id->locked>0 ){
1360 while( cnt-->0 && (res = LockFile(id->h, FIRST_LOCKBYTE, 0, 1, 0))==0 ){
1364 UnlockFile(id->h, FIRST_LOCKBYTE+1, 0, N_LOCKBYTE, 0);
1370 res = LockFileEx(id->h, LOCKFILE_FAIL_IMMEDIATELY,
1373 res = LockFile(id->h, FIRST_LOCKBYTE+lk, 0, 1, 0);
1375 UnlockFile(id->h, FIRST_LOCKBYTE, 0, 1, 0);
1378 id->locked = lk;
1388 if( id->locked>0 || id->refNumRF == -1 ){
1398 params.ioParam.ioRefNum = id->refNumRF;
1418 id->locked = lk;
1434 int sqliteOsWriteLock(OsFile *id){ argument
1438 if( id->pLock->cnt==0 || (id->pLock->cnt==1 && id->locked==1) ){
1444 s = fcntl(id->fd, F_SETLK, &lock);
1449 if( !id->locked ){
1450 id->pOpen->nLock++;
1451 id->locked = 1;
1453 id->pLock->cnt = -1;
1463 if( id->locked<0 ){
1468 while( cnt-->0 && (res = LockFile(id->h, FIRST_LOCKBYTE, 0, 1, 0))==0 ){
1472 if( id->locked>0 ){
1474 UnlockFile(id->h, FIRST_LOCKBYTE+1, 0, N_LOCKBYTE, 0);
1476 res = UnlockFile(id->h, FIRST_LOCKBYTE + id->locked, 0, 1, 0);
1480 res = LockFile(id->h, FIRST_LOCKBYTE+1, 0, N_LOCKBYTE, 0);
1484 UnlockFile(id->h, FIRST_LOCKBYTE, 0, 1, 0);
1487 id->locked = -1;
1497 if( id->locked<0 || id->refNumRF == -1 ){
1504 params.ioParam.ioRefNum = id->refNumRF;
1513 params.ioParam.ioPosOffset = FIRST_LOCKBYTE + id->locked;
1515 if( id->locked==0
1528 id->locked = -1;
1544 int sqliteOsUnlock(OsFile *id){ argument
1547 if( !id->locked ) return SQLITE_OK;
1549 assert( id->pLock->cnt!=0 );
1550 if( id->pLock->cnt>1 ){
1551 id->pLock->cnt--;
1559 s = fcntl(id->fd, F_SETLK, &lock);
1564 id->pLock->cnt = 0;
1572 struct openCnt *pOpen = id->pOpen;
1586 id->locked = 0;
1591 if( id->locked==0 ){
1593 }else if( isNT() || id->locked<0 ){
1594 UnlockFile(id->h, FIRST_LOCKBYTE+1, 0, N_LOCKBYTE, 0);
1596 id->locked = 0;
1598 UnlockFile(id->h, FIRST_LOCKBYTE+id->locked, 0, 1, 0);
1600 id->locked = 0;
1608 params.ioParam.ioRefNum = id->refNumRF;
1610 if( id->locked==0 || id->refNumRF == -1 ){
1612 }else if( id->locked<0 ){
1617 id->locked = 0;
1619 params.ioParam.ioPosOffset = FIRST_LOCKBYTE+id->locked;
1623 id->locked = 0;