Lines Matching refs:recp

130 static cnid_t getparentcnid(const CatalogRecord *recp);
134 static int buildthread(void *keyp, void *recp, int std_hfs, int directory);
176 CatalogRecord * recp,
186 promoteattr(hfsmp, recp, &cnoderec);
189 getbsdattr(hfsmp, (struct HFSPlusCatalogFile *)recp, attrp);
192 if (isadir(recp))
195 promotefork(hfsmp, (HFSCatalogFile *)&recp->hfsFile, 0, datafp);
196 promotefork(hfsmp, (HFSCatalogFile *)&recp->hfsFile, 1, rsrcfp);
199 datafp->cf_size = recp->hfsPlusFile.dataFork.logicalSize;
201 datafp->cf_blocks = recp->hfsPlusFile.dataFork.totalBlocks;
205 recp->hfsPlusFile.dataFork.clumpSize *
211 bcopy(&recp->hfsPlusFile.dataFork.extents[0],
215 rsrcfp->cf_size = recp->hfsPlusFile.resourceFork.logicalSize;
217 rsrcfp->cf_blocks = recp->hfsPlusFile.resourceFork.totalBlocks;
221 recp->hfsPlusFile.resourceFork.clumpSize *
227 bcopy(&recp->hfsPlusFile.resourceFork.extents[0],
242 CatalogRecord * recp,
255 encoding = getencoding(recp);
258 builddesc(pluskey, getcnid(recp), 0, encoding, isadir(recp), descp);
417 CatalogRecord * recp;
429 MALLOC(recp, CatalogRecord *, sizeof(CatalogRecord), M_TEMP, M_WAITOK);
430 BDINIT(btdata, recp);
437 switch (recp->recordType) {
442 keyp = (CatalogKey *)((char *)&recp->hfsThread.reserved + 6);
450 keyp = (CatalogKey *)&recp->hfsPlusThread.reserved;
471 FREE(recp, M_TEMP);
491 CatalogRecord * recp;
501 MALLOC(recp, CatalogRecord *, sizeof(CatalogRecord), M_TEMP, M_WAITOK);
502 BDINIT(btdata, recp);
510 switch (recp->recordType) {
513 keyp = (CatalogKey *)((char *)&recp->hfsThread.reserved + 6);
526 keyp = (CatalogKey *)&recp->hfsPlusThread.reserved;
561 FREE(recp, M_TEMP);
642 CatalogRecord * recp;
653 MALLOC(recp, CatalogRecord *, sizeof(CatalogRecord), M_TEMP, M_WAITOK);
654 BDINIT(btdata, recp);
666 cnid = getcnid(recp);
671 encoding = getencoding(recp);
689 && (recp->recordType == kHFSPlusFileRecord)
690 && ((to_bsd_time(recp->hfsPlusFile.createDate) == (time_t)hfsmp->hfs_itime) ||
691 (to_bsd_time(recp->hfsPlusFile.createDate) == (time_t)hfsmp->hfs_metadata_createdate))) {
695 if ((SWAP_BE32(recp->hfsPlusFile.userInfo.fdType) == kHardLinkFileType) &&
696 (SWAP_BE32(recp->hfsPlusFile.userInfo.fdCreator) == kHFSPlusCreator)) {
698 } else if ((recp->hfsPlusFile.flags & kHFSHasLinkChainMask) &&
699 (SWAP_BE32(recp->hfsPlusFile.userInfo.fdType) == kHFSAliasType) &&
700 (SWAP_BE32(recp->hfsPlusFile.userInfo.fdCreator) == kHFSAliasCreator)) {
704 ilink = recp->hfsPlusFile.hl_linkReference;
705 (void) cat_resolvelink(hfsmp, ilink, isdirlink, (struct HFSPlusCatalogFile *)recp);
713 promoteattr(hfsmp, recp, &cnoderec);
716 getbsdattr(hfsmp, (struct HFSPlusCatalogFile *)recp, attrp);
762 if (isadir(recp)) {
765 promotefork(hfsmp, (HFSCatalogFile *)&recp->hfsFile, wantrsrc, forkp);
768 forkp->cf_size = recp->hfsPlusFile.resourceFork.logicalSize;
770 forkp->cf_blocks = recp->hfsPlusFile.resourceFork.totalBlocks;
772 (to_bsd_time(recp->hfsPlusFile.accessDate) >= hfsmp->hfc_timebase)) {
774 recp->hfsPlusFile.resourceFork.clumpSize *
780 bcopy(&recp->hfsPlusFile.resourceFork.extents[0],
787 forkp->cf_size = recp->hfsPlusFile.dataFork.logicalSize;
789 forkp->cf_blocks = recp->hfsPlusFile.dataFork.totalBlocks;
791 (to_bsd_time(recp->hfsPlusFile.accessDate) >= hfsmp->hfc_timebase)) {
793 recp->hfsPlusFile.dataFork.clumpSize *
799 bcopy(&recp->hfsPlusFile.dataFork.extents[0],
839 attrp->ca_blocks = validblks + recp->hfsPlusFile.resourceFork.totalBlocks;
859 builddesc(pluskey, cnid, hint, encoding, isadir(recp), descp);
870 FREE(recp, M_TEMP);
1085 CatalogRecord * recp = NULL;
1116 MALLOC(recp, CatalogRecord *, sizeof(CatalogRecord), M_TEMP, M_WAITOK);
1117 BDINIT(btdata, recp);
1154 pathcnid = getparentcnid(recp);
1202 (recp->recordType == kHFSPlusFileRecord) &&
1203 (recp->hfsPlusFile.flags & kHFSHasLinkChainMask)) {
1217 recp->hfsPlusFile.textEncoding = encoding;
1223 !(recp->hfsFile.flags & kHFSThreadExistsMask))
1241 int fromtype = recp->recordType;
1251 if ((fromtype != recp->recordType) ||
1252 (from_cdp->cd_cnid != getcnid(recp))) {
1328 datasize = buildthread(&to_iterator->key, recp, std_hfs, false);
1330 datasize = buildthread(&to_iterator->key, recp, std_hfs, directory);
1367 if (recp)
1368 FREE(recp, M_TEMP);
3671 cat_resolvelink(struct hfsmount *hfsmp, u_int32_t linkref, int isdirlink, struct HFSPlusCatalogFile *recp)
3680 BDINIT(btdata, recp);
3708 if (recp->hl_linkCount == 0)
3709 recp->hl_linkCount = 2;
3754 CatalogRecord * recp;
3764 MALLOC(recp, CatalogRecord *, sizeof(CatalogRecord), M_TEMP, M_WAITOK);
3765 BDINIT(btdata, recp);
3773 switch (recp->recordType) {
3776 keyp = (CatalogKey *)((char *)&recp->hfsThread.reserved + 6);
3783 keyp = (CatalogKey *)&recp->hfsPlusThread.reserved;
3796 FREE(recp, M_TEMP);
4214 buildthread(void *keyp, void *recp, int std_hfs, int directory)
4220 HFSCatalogThread *rec = (HFSCatalogThread *)recp;
4233 HFSPlusCatalogThread *rec = (HFSPlusCatalogThread *)recp;
4322 getparentcnid(const CatalogRecord *recp)
4326 switch (recp->recordType) {
4329 cnid = recp->hfsThread.parentID;
4334 cnid = recp->hfsPlusThread.parentID;
4337 panic("hfs: getparentcnid: unknown recordType (crp @ %p)\n", recp);
4372 CatalogRecord *recp = NULL;
4387 MALLOC(recp, CatalogRecord *, sizeof(CatalogRecord), M_TEMP, M_WAITOK);
4388 if (recp == NULL) {
4392 BDINIT(btdata, recp);
4400 if (recp->recordType != kHFSPlusFileThreadRecord) {
4405 keyp = (CatalogKey *)&recp->hfsPlusThread.reserved;
4428 if (recp) {
4429 FREE(recp, M_TEMP);