Lines Matching defs:clusterNum

81 static int32_t orphanSizeLookup(int32_t clusterNum);
84 freeNameInfo(int32_t clusterNum)
87 if (clusterNum < FIRST_CLUSTER || clusterNum > LastCluster)
89 if (InUse[clusterNum - FIRST_CLUSTER]->path != NULL) {
90 if (InUse[clusterNum - FIRST_CLUSTER]->path->references > 1) {
91 InUse[clusterNum - FIRST_CLUSTER]->path->references--;
93 free(InUse[clusterNum - FIRST_CLUSTER]->path->fullName);
94 free(InUse[clusterNum - FIRST_CLUSTER]->path);
96 InUse[clusterNum - FIRST_CLUSTER]->path = NULL;
101 printOrphanPath(int32_t clusterNum)
104 if (clusterNum < FIRST_CLUSTER || clusterNum > LastCluster)
106 if (InUse[clusterNum - FIRST_CLUSTER]->path != NULL) {
110 InUse[clusterNum - FIRST_CLUSTER]->path->fullName);
111 freeNameInfo(clusterNum);
116 "unit %d.\n"), clusterNum);
121 printOrphanSize(int32_t clusterNum)
123 int32_t size = orphanSizeLookup(clusterNum);
130 "unit %d]\n"), clusterNum);
136 printOrphanInfo(int32_t clusterNum)
138 printOrphanPath(clusterNum);
139 printOrphanSize(clusterNum);
143 askAboutFreeing(int32_t clusterNum)
150 printOrphanInfo(clusterNum);
163 askAboutRelink(int32_t clusterNum)
168 printOrphanInfo(clusterNum);
181 isHidden(int32_t clusterNum)
184 if (clusterNum < FIRST_CLUSTER || clusterNum > LastCluster)
187 if (InUse[clusterNum - FIRST_CLUSTER] == NULL)
190 return (InUse[clusterNum - FIRST_CLUSTER]->flags & CLINFO_HIDDEN);
194 isInUse(int32_t clusterNum)
197 if (clusterNum < FIRST_CLUSTER || clusterNum > LastCluster)
200 return ((InUse[clusterNum - FIRST_CLUSTER] != NULL) &&
201 (InUse[clusterNum - FIRST_CLUSTER]->dirent != NULL));
212 findClusterCacheEntry(int32_t clusterNum)
217 if (loop->clusterNum == clusterNum)
225 findClusterDataInTheCache(int32_t clusterNum)
230 if (loop->clusterNum == clusterNum)
238 addToCache(int32_t clusterNum, uchar_t *buf, int32_t *datasize)
247 new->clusterNum = clusterNum;
260 gettext("Allocation unit %d cached.\n"), clusterNum);
265 } else if (new->clusterNum < ClusterCache->clusterNum) {
272 while (loop && new->clusterNum > loop->clusterNum) {
288 seekCluster(int fd, int32_t clusterNum)
294 ((off64_t)clusterNum - FIRST_CLUSTER) * BytesPerCluster;
299 clusterNum);
316 getCluster(int fd, int32_t clusterNum, uchar_t **data, int32_t *datasize)
325 if (clusterNum < FIRST_CLUSTER || clusterNum > LastCluster)
335 if (!seekCluster(fd, clusterNum))
346 gettext("Short read of allocation unit #%d\n"), clusterNum);
349 (void) fprintf(stderr, "Allocation unit %d:", clusterNum);
367 clustInfo->clusterNum);
369 if (seekCluster(fd, clustInfo->clusterNum) == NULL)
380 clustInfo->clusterNum);
431 cloneClusterInfo(int32_t clusterNum)
433 ClusterInfo *cl = InUse[clusterNum - FIRST_CLUSTER];
442 InUse[clusterNum - FIRST_CLUSTER] = newCl;
444 return (InUse[clusterNum - FIRST_CLUSTER]);
448 updateFlags(int32_t clusterNum, int newflags)
450 ClusterInfo *cl = InUse[clusterNum - FIRST_CLUSTER];
453 cl = cloneClusterInfo(clusterNum);
491 allocInUse(int32_t clusterNum, ClusterInfo **template)
495 if (InUse[clusterNum - FIRST_CLUSTER] != NULL)
506 InUse[clusterNum - FIRST_CLUSTER] = newCl;
513 markFree(int32_t clusterNum)
516 if (clusterNum < FIRST_CLUSTER || clusterNum > LastCluster)
519 if (InUse[clusterNum - FIRST_CLUSTER]) {
520 if (InUse[clusterNum - FIRST_CLUSTER]->saved)
521 free(InUse[clusterNum - FIRST_CLUSTER]->saved);
522 freeClusterInfo(InUse[clusterNum - FIRST_CLUSTER]);
523 InUse[clusterNum - FIRST_CLUSTER] = NULL;
528 markOrphan(int fd, int32_t clusterNum, struct pcdir *dp)
531 if (clusterNum < FIRST_CLUSTER || clusterNum > LastCluster)
534 (void) markInUse(fd, clusterNum, dp, NULL, 0, VISIBLE, NULL);
535 if (InUse[clusterNum - FIRST_CLUSTER] != NULL)
536 updateFlags(clusterNum,
537 InUse[clusterNum - FIRST_CLUSTER]->flags | CLINFO_ORPHAN);
541 markBad(int32_t clusterNum, uchar_t *recovered, int32_t recoveredLen)
544 if (clusterNum < FIRST_CLUSTER || clusterNum > LastCluster)
547 (void) allocInUse(clusterNum, NULL);
550 (void) cloneClusterInfo(clusterNum);
551 InUse[clusterNum - FIRST_CLUSTER]->saved = recovered;
553 updateFlags(clusterNum,
554 InUse[clusterNum - FIRST_CLUSTER]->flags | CLINFO_BAD);
559 gettext("Allocation unit %d marked bad.\n"), clusterNum);
723 isMarkedBad(int32_t clusterNum)
726 if (clusterNum < FIRST_CLUSTER || clusterNum > LastCluster)
729 if (InUse[clusterNum - FIRST_CLUSTER] == NULL)
732 return (InUse[clusterNum - FIRST_CLUSTER]->flags & CLINFO_BAD);
736 isMarkedOrphan(int32_t clusterNum)
739 if (clusterNum < FIRST_CLUSTER || clusterNum > LastCluster)
742 if (InUse[clusterNum - FIRST_CLUSTER] == NULL)
745 return (InUse[clusterNum - FIRST_CLUSTER]->flags & CLINFO_ORPHAN);
1099 orphanDirEntLookup(int32_t clusterNum)
1101 if (clusterNum < FIRST_CLUSTER || clusterNum > LastCluster)
1104 if (isInUse(clusterNum)) {
1105 return (InUse[clusterNum - FIRST_CLUSTER]->dirent);
1112 orphanSizeLookup(int32_t clusterNum)
1115 if (clusterNum < FIRST_CLUSTER || clusterNum > LastCluster)
1118 if (isInUse(clusterNum)) {
1119 return (extractSize(InUse[clusterNum - FIRST_CLUSTER]->dirent));
1229 checkForFATLoop(int32_t clusterNum)
1231 int32_t prev = clusterNum;
1234 if (clusterNum < FIRST_CLUSTER || clusterNum > LastCluster)
1237 follow = nextInChain(clusterNum);
1238 while (follow != clusterNum && follow >= FIRST_CLUSTER &&
1243 if (follow == clusterNum) {
1255 sharedChainError(int fd, int32_t clusterNum, struct pcdir *badEntry)
1270 "unit %d.\n"), clusterNum);
1275 (void) truncAtCluster(fd, badEntry, clusterNum);
1276 checkForFATLoop(clusterNum);
1358 return (loop->clusterNum);
1381 squirrelPath(struct nameinfo *pathInfo, int32_t clusterNum)
1384 if (clusterNum < FIRST_CLUSTER || clusterNum > LastCluster)
1386 if (InUse[clusterNum - FIRST_CLUSTER] == NULL)
1388 InUse[clusterNum - FIRST_CLUSTER]->path = pathInfo;
1392 markInUse(int fd, int32_t clusterNum, struct pcdir *referencer, struct
1400 if (clusterNum < FIRST_CLUSTER || clusterNum > LastCluster)
1403 alreadyMarked = allocInUse(clusterNum, template);
1405 (isInUse(clusterNum))) {
1406 sharedChainError(fd, clusterNum, referencer);
1409 cl = InUse[clusterNum - FIRST_CLUSTER];
1419 cl = cloneClusterInfo(clusterNum);
1437 markClusterModified(int32_t clusterNum)
1441 if (clusterNum == FAKE_ROOTDIR_CLUST) {
1447 if (clusterNum < FIRST_CLUSTER || clusterNum > LastCluster)
1450 if (c = findClusterCacheEntry(clusterNum)) {
1455 "Missing cache entry [%d]\n"), clusterNum);
1462 * caller wants to read cluster clusterNum. We should return
1470 readCluster(int fd, int32_t clusterNum, uchar_t **data, int32_t *datasize,
1477 if ((*data = findClusterDataInTheCache(clusterNum)) != NULL) {
1482 rv = getCluster(fd, clusterNum, &newBuf, datasize);
1501 *data = addToCache(clusterNum, newBuf, datasize);