pShmNode 26522 ext/sqlite3/libsqlite/sqlite3.c unixShmNode *pShmNode; /* Shared memory associated with this inode */ pShmNode 26665 ext/sqlite3/libsqlite/sqlite3.c assert( pInode->pShmNode==0 ); pShmNode 29532 ext/sqlite3/libsqlite/sqlite3.c unixShmNode *pShmNode; /* The underlying unixShmNode object */ pShmNode 29558 ext/sqlite3/libsqlite/sqlite3.c unixShmNode *pShmNode; /* Apply locks to this open shared-memory segment */ pShmNode 29563 ext/sqlite3/libsqlite/sqlite3.c pShmNode = pFile->pInode->pShmNode; pShmNode 29564 ext/sqlite3/libsqlite/sqlite3.c assert( sqlite3_mutex_held(pShmNode->mutex) || pShmNode->nRef==0 ); pShmNode 29572 ext/sqlite3/libsqlite/sqlite3.c if( pShmNode->h>=0 ){ pShmNode 29582 ext/sqlite3/libsqlite/sqlite3.c rc = osFcntl(pShmNode->h, lkType, &f); pShmNode 29595 ext/sqlite3/libsqlite/sqlite3.c pShmNode->exclMask &= ~mask; pShmNode 29596 ext/sqlite3/libsqlite/sqlite3.c pShmNode->sharedMask &= ~mask; pShmNode 29599 ext/sqlite3/libsqlite/sqlite3.c pShmNode->exclMask &= ~mask; pShmNode 29600 ext/sqlite3/libsqlite/sqlite3.c pShmNode->sharedMask |= mask; pShmNode 29604 ext/sqlite3/libsqlite/sqlite3.c pShmNode->exclMask |= mask; pShmNode 29605 ext/sqlite3/libsqlite/sqlite3.c pShmNode->sharedMask &= ~mask; pShmNode 29618 ext/sqlite3/libsqlite/sqlite3.c pShmNode->sharedMask, pShmNode->exclMask)); pShmNode 29649 ext/sqlite3/libsqlite/sqlite3.c unixShmNode *p = pFd->pInode->pShmNode; pShmNode 29668 ext/sqlite3/libsqlite/sqlite3.c p->pInode->pShmNode = 0; pShmNode 29710 ext/sqlite3/libsqlite/sqlite3.c struct unixShmNode *pShmNode; /* The underlying mmapped file */ pShmNode 29727 ext/sqlite3/libsqlite/sqlite3.c pShmNode = pInode->pShmNode; pShmNode 29728 ext/sqlite3/libsqlite/sqlite3.c if( pShmNode==0 ){ pShmNode 29748 ext/sqlite3/libsqlite/sqlite3.c pShmNode = sqlite3_malloc64( sizeof(*pShmNode) + nShmFilename ); pShmNode 29749 ext/sqlite3/libsqlite/sqlite3.c if( pShmNode==0 ){ pShmNode 29753 ext/sqlite3/libsqlite/sqlite3.c memset(pShmNode, 0, sizeof(*pShmNode)+nShmFilename); pShmNode 29754 ext/sqlite3/libsqlite/sqlite3.c zShmFilename = pShmNode->zFilename = (char*)&pShmNode[1]; pShmNode 29763 ext/sqlite3/libsqlite/sqlite3.c pShmNode->h = -1; pShmNode 29764 ext/sqlite3/libsqlite/sqlite3.c pDbFd->pInode->pShmNode = pShmNode; pShmNode 29765 ext/sqlite3/libsqlite/sqlite3.c pShmNode->pInode = pDbFd->pInode; pShmNode 29766 ext/sqlite3/libsqlite/sqlite3.c pShmNode->mutex = sqlite3_mutex_alloc(SQLITE_MUTEX_FAST); pShmNode 29767 ext/sqlite3/libsqlite/sqlite3.c if( pShmNode->mutex==0 ){ pShmNode 29776 ext/sqlite3/libsqlite/sqlite3.c pShmNode->isReadonly = 1; pShmNode 29778 ext/sqlite3/libsqlite/sqlite3.c pShmNode->h = robust_open(zShmFilename, openFlags, (sStat.st_mode&0777)); pShmNode 29779 ext/sqlite3/libsqlite/sqlite3.c if( pShmNode->h<0 ){ pShmNode 29788 ext/sqlite3/libsqlite/sqlite3.c osFchown(pShmNode->h, sStat.st_uid, sStat.st_gid); pShmNode 29795 ext/sqlite3/libsqlite/sqlite3.c if( robust_ftruncate(pShmNode->h, 0) ){ pShmNode 29807 ext/sqlite3/libsqlite/sqlite3.c p->pShmNode = pShmNode; pShmNode 29809 ext/sqlite3/libsqlite/sqlite3.c p->id = pShmNode->nextShmId++; pShmNode 29811 ext/sqlite3/libsqlite/sqlite3.c pShmNode->nRef++; pShmNode 29822 ext/sqlite3/libsqlite/sqlite3.c sqlite3_mutex_enter(pShmNode->mutex); pShmNode 29823 ext/sqlite3/libsqlite/sqlite3.c p->pNext = pShmNode->pFirst; pShmNode 29824 ext/sqlite3/libsqlite/sqlite3.c pShmNode->pFirst = p; pShmNode 29825 ext/sqlite3/libsqlite/sqlite3.c sqlite3_mutex_leave(pShmNode->mutex); pShmNode 29864 ext/sqlite3/libsqlite/sqlite3.c unixShmNode *pShmNode; pShmNode 29876 ext/sqlite3/libsqlite/sqlite3.c pShmNode = p->pShmNode; pShmNode 29877 ext/sqlite3/libsqlite/sqlite3.c sqlite3_mutex_enter(pShmNode->mutex); pShmNode 29878 ext/sqlite3/libsqlite/sqlite3.c assert( szRegion==pShmNode->szRegion || pShmNode->nRegion==0 ); pShmNode 29879 ext/sqlite3/libsqlite/sqlite3.c assert( pShmNode->pInode==pDbFd->pInode ); pShmNode 29880 ext/sqlite3/libsqlite/sqlite3.c assert( pShmNode->h>=0 || pDbFd->pInode->bProcessLock==1 ); pShmNode 29881 ext/sqlite3/libsqlite/sqlite3.c assert( pShmNode->h<0 || pDbFd->pInode->bProcessLock==0 ); pShmNode 29886 ext/sqlite3/libsqlite/sqlite3.c if( pShmNode->nRegion<nReqRegion ){ pShmNode 29891 ext/sqlite3/libsqlite/sqlite3.c pShmNode->szRegion = szRegion; pShmNode 29893 ext/sqlite3/libsqlite/sqlite3.c if( pShmNode->h>=0 ){ pShmNode 29898 ext/sqlite3/libsqlite/sqlite3.c if( osFstat(pShmNode->h, &sStat) ){ pShmNode 29925 ext/sqlite3/libsqlite/sqlite3.c if( seekAndWriteFd(pShmNode->h, iPg*pgsz + pgsz-1, "", 1, 0)!=1 ){ pShmNode 29926 ext/sqlite3/libsqlite/sqlite3.c const char *zFile = pShmNode->zFilename; pShmNode 29937 ext/sqlite3/libsqlite/sqlite3.c pShmNode->apRegion, nReqRegion*sizeof(char *) pShmNode 29943 ext/sqlite3/libsqlite/sqlite3.c pShmNode->apRegion = apNew; pShmNode 29944 ext/sqlite3/libsqlite/sqlite3.c while( pShmNode->nRegion<nReqRegion ){ pShmNode 29948 ext/sqlite3/libsqlite/sqlite3.c if( pShmNode->h>=0 ){ pShmNode 29950 ext/sqlite3/libsqlite/sqlite3.c pShmNode->isReadonly ? PROT_READ : PROT_READ|PROT_WRITE, pShmNode 29951 ext/sqlite3/libsqlite/sqlite3.c MAP_SHARED, pShmNode->h, szRegion*(i64)pShmNode->nRegion pShmNode 29954 ext/sqlite3/libsqlite/sqlite3.c rc = unixLogError(SQLITE_IOERR_SHMMAP, "mmap", pShmNode->zFilename); pShmNode 29967 ext/sqlite3/libsqlite/sqlite3.c pShmNode->apRegion[pShmNode->nRegion+i] = &((char*)pMem)[szRegion*i]; pShmNode 29969 ext/sqlite3/libsqlite/sqlite3.c pShmNode->nRegion += nShmPerMap; pShmNode 29974 ext/sqlite3/libsqlite/sqlite3.c if( pShmNode->nRegion>iRegion ){ pShmNode 29975 ext/sqlite3/libsqlite/sqlite3.c *pp = pShmNode->apRegion[iRegion]; pShmNode 29979 ext/sqlite3/libsqlite/sqlite3.c if( pShmNode->isReadonly && rc==SQLITE_OK ) rc = SQLITE_READONLY; pShmNode 29980 ext/sqlite3/libsqlite/sqlite3.c sqlite3_mutex_leave(pShmNode->mutex); pShmNode 30001 ext/sqlite3/libsqlite/sqlite3.c unixShmNode *pShmNode = p->pShmNode; /* The underlying file iNode */ pShmNode 30005 ext/sqlite3/libsqlite/sqlite3.c assert( pShmNode==pDbFd->pInode->pShmNode ); pShmNode 30006 ext/sqlite3/libsqlite/sqlite3.c assert( pShmNode->pInode==pDbFd->pInode ); pShmNode 30014 ext/sqlite3/libsqlite/sqlite3.c assert( pShmNode->h>=0 || pDbFd->pInode->bProcessLock==1 ); pShmNode 30015 ext/sqlite3/libsqlite/sqlite3.c assert( pShmNode->h<0 || pDbFd->pInode->bProcessLock==0 ); pShmNode 30019 ext/sqlite3/libsqlite/sqlite3.c sqlite3_mutex_enter(pShmNode->mutex); pShmNode 30024 ext/sqlite3/libsqlite/sqlite3.c for(pX=pShmNode->pFirst; pX; pX=pX->pNext){ pShmNode 30049 ext/sqlite3/libsqlite/sqlite3.c for(pX=pShmNode->pFirst; pX; pX=pX->pNext){ pShmNode 30074 ext/sqlite3/libsqlite/sqlite3.c for(pX=pShmNode->pFirst; pX; pX=pX->pNext){ pShmNode 30092 ext/sqlite3/libsqlite/sqlite3.c sqlite3_mutex_leave(pShmNode->mutex); pShmNode 30124 ext/sqlite3/libsqlite/sqlite3.c unixShmNode *pShmNode; /* The underlying shared-memory file */ pShmNode 30131 ext/sqlite3/libsqlite/sqlite3.c pShmNode = p->pShmNode; pShmNode 30133 ext/sqlite3/libsqlite/sqlite3.c assert( pShmNode==pDbFd->pInode->pShmNode ); pShmNode 30134 ext/sqlite3/libsqlite/sqlite3.c assert( pShmNode->pInode==pDbFd->pInode ); pShmNode 30138 ext/sqlite3/libsqlite/sqlite3.c sqlite3_mutex_enter(pShmNode->mutex); pShmNode 30139 ext/sqlite3/libsqlite/sqlite3.c for(pp=&pShmNode->pFirst; (*pp)!=p; pp = &(*pp)->pNext){} pShmNode 30145 ext/sqlite3/libsqlite/sqlite3.c sqlite3_mutex_leave(pShmNode->mutex); pShmNode 30150 ext/sqlite3/libsqlite/sqlite3.c assert( pShmNode->nRef>0 ); pShmNode 30151 ext/sqlite3/libsqlite/sqlite3.c pShmNode->nRef--; pShmNode 30152 ext/sqlite3/libsqlite/sqlite3.c if( pShmNode->nRef==0 ){ pShmNode 30153 ext/sqlite3/libsqlite/sqlite3.c if( deleteFlag && pShmNode->h>=0 ){ pShmNode 30154 ext/sqlite3/libsqlite/sqlite3.c osUnlink(pShmNode->zFilename); pShmNode 36671 ext/sqlite3/libsqlite/sqlite3.c winShmNode *pShmNode; /* The underlying winShmNode object */ pShmNode 36792 ext/sqlite3/libsqlite/sqlite3.c struct winShmNode *pShmNode = 0; /* The underlying mmapped file */ pShmNode 36805 ext/sqlite3/libsqlite/sqlite3.c pNew = sqlite3MallocZero( sizeof(*pShmNode) + nName + 17 ); pShmNode 36818 ext/sqlite3/libsqlite/sqlite3.c for(pShmNode = winShmNodeList; pShmNode; pShmNode=pShmNode->pNext){ pShmNode 36822 ext/sqlite3/libsqlite/sqlite3.c if( sqlite3StrICmp(pShmNode->zFilename, pNew->zFilename)==0 ) break; pShmNode 36824 ext/sqlite3/libsqlite/sqlite3.c if( pShmNode ){ pShmNode 36827 ext/sqlite3/libsqlite/sqlite3.c pShmNode = pNew; pShmNode 36829 ext/sqlite3/libsqlite/sqlite3.c ((winFile*)(&pShmNode->hFile))->h = INVALID_HANDLE_VALUE; pShmNode 36830 ext/sqlite3/libsqlite/sqlite3.c pShmNode->pNext = winShmNodeList; pShmNode 36831 ext/sqlite3/libsqlite/sqlite3.c winShmNodeList = pShmNode; pShmNode 36833 ext/sqlite3/libsqlite/sqlite3.c pShmNode->mutex = sqlite3_mutex_alloc(SQLITE_MUTEX_FAST); pShmNode 36834 ext/sqlite3/libsqlite/sqlite3.c if( pShmNode->mutex==0 ){ pShmNode 36840 ext/sqlite3/libsqlite/sqlite3.c pShmNode->zFilename, /* Name of the file (UTF-8) */ pShmNode 36841 ext/sqlite3/libsqlite/sqlite3.c (sqlite3_file*)&pShmNode->hFile, /* File handle here */ pShmNode 36851 ext/sqlite3/libsqlite/sqlite3.c if( winShmSystemLock(pShmNode, _SHM_WRLCK, WIN_SHM_DMS, 1)==SQLITE_OK ){ pShmNode 36852 ext/sqlite3/libsqlite/sqlite3.c rc = winTruncate((sqlite3_file *)&pShmNode->hFile, 0); pShmNode 36859 ext/sqlite3/libsqlite/sqlite3.c winShmSystemLock(pShmNode, _SHM_UNLCK, WIN_SHM_DMS, 1); pShmNode 36860 ext/sqlite3/libsqlite/sqlite3.c rc = winShmSystemLock(pShmNode, _SHM_RDLCK, WIN_SHM_DMS, 1); pShmNode 36866 ext/sqlite3/libsqlite/sqlite3.c p->pShmNode = pShmNode; pShmNode 36868 ext/sqlite3/libsqlite/sqlite3.c p->id = pShmNode->nextShmId++; pShmNode 36870 ext/sqlite3/libsqlite/sqlite3.c pShmNode->nRef++; pShmNode 36881 ext/sqlite3/libsqlite/sqlite3.c sqlite3_mutex_enter(pShmNode->mutex); pShmNode 36882 ext/sqlite3/libsqlite/sqlite3.c p->pNext = pShmNode->pFirst; pShmNode 36883 ext/sqlite3/libsqlite/sqlite3.c pShmNode->pFirst = p; pShmNode 36884 ext/sqlite3/libsqlite/sqlite3.c sqlite3_mutex_leave(pShmNode->mutex); pShmNode 36889 ext/sqlite3/libsqlite/sqlite3.c winShmSystemLock(pShmNode, _SHM_UNLCK, WIN_SHM_DMS, 1); pShmNode 36907 ext/sqlite3/libsqlite/sqlite3.c winShmNode *pShmNode; /* The underlying shared-memory file */ pShmNode 36913 ext/sqlite3/libsqlite/sqlite3.c pShmNode = p->pShmNode; pShmNode 36917 ext/sqlite3/libsqlite/sqlite3.c sqlite3_mutex_enter(pShmNode->mutex); pShmNode 36918 ext/sqlite3/libsqlite/sqlite3.c for(pp=&pShmNode->pFirst; (*pp)!=p; pp = &(*pp)->pNext){} pShmNode 36924 ext/sqlite3/libsqlite/sqlite3.c sqlite3_mutex_leave(pShmNode->mutex); pShmNode 36929 ext/sqlite3/libsqlite/sqlite3.c assert( pShmNode->nRef>0 ); pShmNode 36930 ext/sqlite3/libsqlite/sqlite3.c pShmNode->nRef--; pShmNode 36931 ext/sqlite3/libsqlite/sqlite3.c if( pShmNode->nRef==0 ){ pShmNode 36951 ext/sqlite3/libsqlite/sqlite3.c winShmNode *pShmNode = p->pShmNode; pShmNode 36965 ext/sqlite3/libsqlite/sqlite3.c sqlite3_mutex_enter(pShmNode->mutex); pShmNode 36970 ext/sqlite3/libsqlite/sqlite3.c for(pX=pShmNode->pFirst; pX; pX=pX->pNext){ pShmNode 36978 ext/sqlite3/libsqlite/sqlite3.c rc = winShmSystemLock(pShmNode, _SHM_UNLCK, ofst+WIN_SHM_BASE, n); pShmNode 36995 ext/sqlite3/libsqlite/sqlite3.c for(pX=pShmNode->pFirst; pX; pX=pX->pNext){ pShmNode 37006 ext/sqlite3/libsqlite/sqlite3.c rc = winShmSystemLock(pShmNode, _SHM_RDLCK, ofst+WIN_SHM_BASE, n); pShmNode 37020 ext/sqlite3/libsqlite/sqlite3.c for(pX=pShmNode->pFirst; pX; pX=pX->pNext){ pShmNode 37031 ext/sqlite3/libsqlite/sqlite3.c rc = winShmSystemLock(pShmNode, _SHM_WRLCK, ofst+WIN_SHM_BASE, n); pShmNode 37038 ext/sqlite3/libsqlite/sqlite3.c sqlite3_mutex_leave(pShmNode->mutex); pShmNode 37088 ext/sqlite3/libsqlite/sqlite3.c winShmNode *pShmNode; pShmNode 37096 ext/sqlite3/libsqlite/sqlite3.c pShmNode = pShm->pShmNode; pShmNode 37098 ext/sqlite3/libsqlite/sqlite3.c sqlite3_mutex_enter(pShmNode->mutex); pShmNode 37099 ext/sqlite3/libsqlite/sqlite3.c assert( szRegion==pShmNode->szRegion || pShmNode->nRegion==0 ); pShmNode 37101 ext/sqlite3/libsqlite/sqlite3.c if( pShmNode->nRegion<=iRegion ){ pShmNode 37106 ext/sqlite3/libsqlite/sqlite3.c pShmNode->szRegion = szRegion; pShmNode 37112 ext/sqlite3/libsqlite/sqlite3.c rc = winFileSize((sqlite3_file *)&pShmNode->hFile, &sz); pShmNode 37127 ext/sqlite3/libsqlite/sqlite3.c rc = winTruncate((sqlite3_file *)&pShmNode->hFile, nByte); pShmNode 37137 ext/sqlite3/libsqlite/sqlite3.c pShmNode->aRegion, (iRegion+1)*sizeof(apNew[0]) pShmNode 37143 ext/sqlite3/libsqlite/sqlite3.c pShmNode->aRegion = apNew; pShmNode 37145 ext/sqlite3/libsqlite/sqlite3.c while( pShmNode->nRegion<=iRegion ){ pShmNode 37150 ext/sqlite3/libsqlite/sqlite3.c hMap = osCreateFileMappingFromApp(pShmNode->hFile.h, pShmNode 37154 ext/sqlite3/libsqlite/sqlite3.c hMap = osCreateFileMappingW(pShmNode->hFile.h, pShmNode 37158 ext/sqlite3/libsqlite/sqlite3.c hMap = osCreateFileMappingA(pShmNode->hFile.h, pShmNode 37163 ext/sqlite3/libsqlite/sqlite3.c osGetCurrentProcessId(), pShmNode->nRegion, nByte, pShmNode 37166 ext/sqlite3/libsqlite/sqlite3.c int iOffset = pShmNode->nRegion*szRegion; pShmNode 37178 ext/sqlite3/libsqlite/sqlite3.c osGetCurrentProcessId(), pShmNode->nRegion, iOffset, pShmNode 37182 ext/sqlite3/libsqlite/sqlite3.c pShmNode->lastErrno = osGetLastError(); pShmNode 37183 ext/sqlite3/libsqlite/sqlite3.c rc = winLogError(SQLITE_IOERR_SHMMAP, pShmNode->lastErrno, pShmNode 37189 ext/sqlite3/libsqlite/sqlite3.c pShmNode->aRegion[pShmNode->nRegion].pMap = pMap; pShmNode 37190 ext/sqlite3/libsqlite/sqlite3.c pShmNode->aRegion[pShmNode->nRegion].hMap = hMap; pShmNode 37191 ext/sqlite3/libsqlite/sqlite3.c pShmNode->nRegion++; pShmNode 37196 ext/sqlite3/libsqlite/sqlite3.c if( pShmNode->nRegion>iRegion ){ pShmNode 37199 ext/sqlite3/libsqlite/sqlite3.c char *p = (char *)pShmNode->aRegion[iRegion].pMap; pShmNode 37204 ext/sqlite3/libsqlite/sqlite3.c sqlite3_mutex_leave(pShmNode->mutex);