Lines Matching defs:attrp

97                   struct cat_desc *descp, struct cat_attr *attrp, struct cat_fork *forkp, cnid_t *desc_cnid);
100 struct cat_desc *outdescp, struct cat_attr *attrp, struct cat_fork *forkp);
116 static void buildrecord(struct cat_attr *attrp, cnid_t cnid, int std_hfs, u_int32_t encoding, CatalogRecord *crp, u_int32_t *recordSize);
123 static void getbsdattr(struct hfsmount *hfsmp, const struct HFSPlusCatalogFile *crp, struct cat_attr * attrp);
141 static int cat_update_internal(struct hfsmount *hfsmp, int update_hardlink, struct cat_desc *descp, struct cat_attr *attrp,
373 struct cat_attr *attrp,
380 getbsdattr(hfsmp, (struct HFSPlusCatalogFile *)recp, attrp);
387 getbsdattr(hfsmp, &cnoderec, attrp);
406 (attrp->ca_atime >= hfsmp->hfc_timebase)) {
422 (attrp->ca_atime >= hfsmp->hfc_timebase)) {
523 struct cat_desc *outdescp, struct cat_attr *attrp,
540 result = cat_lookupbykey(hfsmp, keyp, flags, descp->cd_hint, wantrsrc, outdescp, attrp, forkp, desc_cnid);
549 result = cat_lookupmangled(hfsmp, descp, wantrsrc, outdescp, attrp, forkp);
559 // result = cat_lookupbykey(hfsmp, keyp, descp->cd_hint, attrp, forkp);
714 struct cat_desc *outdescp, struct cat_attr *attrp, struct cat_fork *forkp)
777 0, wantrsrc, outdescp, attrp, forkp, NULL);
805 struct cat_desc *outdescp, struct cat_attr *attrp, struct cat_fork *forkp)
829 result = cat_idlookup(hfsmp, fileID, 0, 0, outdescp, attrp, forkp);
870 struct cat_desc *descp, struct cat_attr *attrp, struct cat_fork *forkp, cnid_t *desc_cnid)
937 && (attrp || forkp)
958 if (attrp != NULL) {
960 getbsdattr(hfsmp, (struct HFSPlusCatalogFile *)recp, attrp);
963 attrp->ca_linkref = ilink;
980 if (!(attrp->ca_recflags & kHFSHasLinkChainMask)) {
982 attrp->ca_recflags |= kHFSHasLinkChainMask;
992 if (attrp->ca_recflags & kHFSHasLinkChainMask) {
994 attrp->ca_recflags &= ~kHFSHasLinkChainMask;
997 if (S_ISREG(attrp->ca_mode) && (attrp->ca_linkcount > 1)) {
998 printf ("hfs: set linkcount=1 on vol=%s cnid=%u old=%u\n", hfsmp->vcbVN, cnid, attrp->ca_linkcount);
999 attrp->ca_linkcount = 1;
1009 getbsdattr(hfsmp, &cnoderec, attrp);
1066 if (attrp != NULL) {
1067 attrp->ca_mode &= S_IFMT | S_IRUSR | S_IRGRP | S_IROTH;
1094 if (attrp != NULL) {
1095 attrp->ca_blocks = validblks + recp->hfsPlusFile.resourceFork.totalBlocks;
1150 cat_create(struct hfsmount *hfsmp, cnid_t new_fileid, struct cat_desc *descp, struct cat_attr *attrp,
1162 modeformat = attrp->ca_mode & S_IFMT;
1188 S_ISDIR(attrp->ca_mode));
1208 buildrecord(attrp, new_fileid, std_hfs, encoding, &bto->data, &datalen);
1221 if (!std_hfs || S_ISDIR(attrp->ca_mode)) {
1251 encoding, S_ISDIR(attrp->ca_mode), out_descp);
1259 attrp->ca_fileid = new_fileid;
1611 cat_delete(struct hfsmount *hfsmp, struct cat_desc *descp, struct cat_attr *attrp)
1643 result = getkey(hfsmp, attrp->ca_fileid, (CatalogKey *)&iterator->key);
1644 cnid = attrp->ca_fileid;
1661 result = cat_lookupmangled(hfsmp, descp, 0, &temp_desc, attrp, NULL);
1701 * using the data from attrp and forkp.
1706 cat_update_internal(struct hfsmount *hfsmp, int update_hardlink, struct cat_desc *descp, struct cat_attr *attrp,
1717 state.s_attr = attrp;
1734 ((descp->cd_cnid != attrp->ca_fileid) ||
1736 (attrp->ca_recflags & kHFSHasLinkChainMask))) {
1737 result = getkey(hfsmp, attrp->ca_fileid, (CatalogKey *)&iterator->key);
1763 * using the data from attrp and forkp.
1766 cat_update(struct hfsmount *hfsmp, struct cat_desc *descp, struct cat_attr *attrp,
1769 return cat_update_internal(hfsmp, false, descp, attrp, dataforkp, rsrcforkp);
1780 struct cat_attr *attrp;
1786 attrp = state->s_attr;
1801 dir->valence = attrp->ca_entries;
1802 dir->createDate = UTCToLocal(to_hfs_time(attrp->ca_itime));
1803 dir->modifyDate = UTCToLocal(to_hfs_time(attrp->ca_mtime));
1804 dir->backupDate = UTCToLocal(to_hfs_time(attrp->ca_btime));
1805 bcopy(&attrp->ca_finderinfo[0], &dir->userInfo, 16);
1806 bcopy(&attrp->ca_finderinfo[16], &dir->finderInfo, 16);
1816 (file->fileID != attrp->ca_fileid))
1818 file->createDate = UTCToLocal(to_hfs_time(attrp->ca_itime));
1819 file->modifyDate = UTCToLocal(to_hfs_time(attrp->ca_mtime));
1820 file->backupDate = UTCToLocal(to_hfs_time(attrp->ca_btime));
1821 bcopy(&attrp->ca_finderinfo[0], &file->userInfo, 16);
1822 bcopy(&attrp->ca_finderinfo[16], &file->finderInfo, 16);
1847 if (attrp->ca_flags & (SF_IMMUTABLE | UF_IMMUTABLE))
1860 if (dir->folderID != attrp->ca_fileid) {
1861 printf("hfs: catrec_update: id %d != %d, vol=%s\n", dir->folderID, attrp->ca_fileid, hfsmp->vcbVN);
1864 dir->flags = attrp->ca_recflags;
1865 dir->valence = attrp->ca_entries;
1866 dir->createDate = to_hfs_time(attrp->ca_itime);
1867 dir->contentModDate = to_hfs_time(attrp->ca_mtime);
1868 dir->backupDate = to_hfs_time(attrp->ca_btime);
1869 dir->accessDate = to_hfs_time(attrp->ca_atime);
1870 attrp->ca_atimeondisk = attrp->ca_atime;
1871 dir->attributeModDate = to_hfs_time(attrp->ca_ctime);
1876 dir->folderCount = attrp->ca_dircount;
1877 bcopy(&attrp->ca_finderinfo[0], &dir->userInfo, 32);
1900 (attrp->ca_flags != 0) ||
1901 (attrp->ca_uid != hfsmp->hfs_uid) ||
1902 (attrp->ca_gid != hfsmp->hfs_gid) ||
1903 ((attrp->ca_mode & ALLPERMS) !=
1907 dir->bsdInfo.ownerID = attrp->ca_uid;
1908 dir->bsdInfo.groupID = attrp->ca_gid;
1910 dir->bsdInfo.ownerFlags = attrp->ca_flags & 0x000000FF;
1911 dir->bsdInfo.adminFlags = attrp->ca_flags >> 16;
1912 dir->bsdInfo.fileMode = attrp->ca_mode;
1914 if (attrp->ca_linkcount > 1 || dir->hl_linkCount > 1) {
1915 dir->hl_linkCount = attrp->ca_linkcount;
1926 if (file->fileID != attrp->ca_fileid)
1928 file->flags = attrp->ca_recflags;
1929 file->createDate = to_hfs_time(attrp->ca_itime);
1930 file->contentModDate = to_hfs_time(attrp->ca_mtime);
1931 file->backupDate = to_hfs_time(attrp->ca_btime);
1932 file->accessDate = to_hfs_time(attrp->ca_atime);
1933 attrp->ca_atimeondisk = attrp->ca_atime;
1934 file->attributeModDate = to_hfs_time(attrp->ca_ctime);
1940 file->hl_firstLinkID = attrp->ca_firstlink;
1944 bcopy(&attrp->ca_finderinfo[0], &file->userInfo, 32);
1976 (attrp->ca_flags != 0) ||
1977 (attrp->ca_uid != hfsmp->hfs_uid) ||
1978 (attrp->ca_gid != hfsmp->hfs_gid) ||
1979 ((attrp->ca_mode & ALLPERMS) !=
1983 file->bsdInfo.ownerID = attrp->ca_uid;
1984 file->bsdInfo.groupID = attrp->ca_gid;
1986 file->bsdInfo.ownerFlags = attrp->ca_flags & 0x000000FF;
1987 file->bsdInfo.adminFlags = attrp->ca_flags >> 16;
1988 file->bsdInfo.fileMode = attrp->ca_mode;
2018 if (attrp->ca_flags & (SF_IMMUTABLE | UF_IMMUTABLE))
2024 if (S_ISBLK(attrp->ca_mode) || S_ISCHR(attrp->ca_mode)) {
2025 file->bsdInfo.special.rawDevice = attrp->ca_rdev;
2034 if ((descp->cd_cnid != attrp->ca_fileid) || (attrp->ca_linkcount > 1 ) ||
2036 file->hl_linkCount = attrp->ca_linkcount;
2443 cat_createlink(struct hfsmount *hfsmp, struct cat_desc *descp, struct cat_attr *attrp,
2547 buildrecord(attrp, nextCNID, 0, encoding, &bto->data, &datalen);
2551 bto->data.hfsPlusFile.hl_linkReference = attrp->ca_linkref;
2555 if ((result = cat_makealias(hfsmp, attrp->ca_linkref, &bto->data.hfsPlusFile))) {
4152 * cat_desc here). Both key and attrp must point to real structures.
4158 cat_getkeyplusattr(struct hfsmount *hfsmp, cnid_t cnid, CatalogKey * key, struct cat_attr *attrp)
4165 result = cat_lookupbykey(hfsmp, key, 0, 0, 0, NULL, attrp, NULL, NULL);
4174 (attrp->ca_recflags & kHFSHasLinkChainMask)) {
4199 buildrecord(struct cat_attr *attrp, cnid_t cnid, int std_hfs, u_int32_t encoding,
4202 int type = attrp->ca_mode & S_IFMT;
4203 u_int32_t createtime = to_hfs_time(attrp->ca_itime);
4210 crp->hfsPlusFolder.flags = attrp->ca_recflags;
4220 bcopy(attrp->ca_finderinfo, &crp->hfsPlusFolder.userInfo, 32);
4226 crp->hfsPlusFile.flags = attrp->ca_recflags;
4236 bcopy(attrp->ca_finderinfo, &crp->hfsPlusFile.userInfo, 32);
4240 bsdp->special.rawDevice = attrp->ca_rdev;
4247 bsdp->ownerID = attrp->ca_uid;
4248 bsdp->groupID = attrp->ca_gid;
4249 bsdp->fileMode = attrp->ca_mode;
4250 bsdp->adminFlags = attrp->ca_flags >> 16;
4251 bsdp->ownerFlags = attrp->ca_flags & 0x000000FF;
4262 bcopy(attrp->ca_finderinfo, &crp->hfsFolder.userInfo, 32);
4270 bcopy(attrp->ca_finderinfo, &crp->hfsFile.userInfo, 16);
4271 bcopy(&attrp->ca_finderinfo[16], &crp->hfsFile.finderInfo, 16);
4339 getbsdattr(struct hfsmount *hfsmp, const struct HFSPlusCatalogFile *crp, struct cat_attr * attrp)
4344 attrp->ca_recflags = crp->flags;
4345 attrp->ca_atime = to_bsd_time(crp->accessDate);
4346 attrp->ca_atimeondisk = attrp->ca_atime;
4347 attrp->ca_mtime = to_bsd_time(crp->contentModDate);
4348 attrp->ca_ctime = to_bsd_time(crp->attributeModDate);
4349 attrp->ca_itime = to_bsd_time(crp->createDate);
4350 attrp->ca_btime = to_bsd_time(crp->backupDate);
4353 attrp->ca_flags = 0;
4354 attrp->ca_uid = hfsmp->hfs_uid;
4355 attrp->ca_gid = hfsmp->hfs_gid;
4357 attrp->ca_mode = S_IFDIR | (hfsmp->hfs_dir_mask & ACCESSPERMS);
4359 attrp->ca_mode = S_IFREG | (hfsmp->hfs_file_mask & ACCESSPERMS);
4361 attrp->ca_linkcount = 1;
4362 attrp->ca_rdev = 0;
4364 attrp->ca_linkcount = 1; /* may be overridden below */
4365 attrp->ca_rdev = 0;
4366 attrp->ca_uid = bsd->ownerID;
4367 attrp->ca_gid = bsd->groupID;
4368 attrp->ca_flags = bsd->ownerFlags | (bsd->adminFlags << 16);
4369 attrp->ca_mode = (mode_t)bsd->fileMode;
4370 switch (attrp->ca_mode & S_IFMT) {
4373 attrp->ca_rdev = bsd->special.rawDevice;
4380 attrp->ca_linkcount = bsd->special.linkCount;
4398 * attrp->ca_uid = hfsmp->hfs_uid;
4399 * attrp->ca_gid = hfsmp->hfs_gid;
4405 if (!S_ISDIR(attrp->ca_mode)) {
4406 attrp->ca_mode &= ~S_IFMT;
4407 attrp->ca_mode |= S_IFDIR;
4409 attrp->ca_entries = ((const HFSPlusCatalogFolder *)crp)->valence;
4410 attrp->ca_dircount = ((hfsmp->hfs_flags & HFS_FOLDERCOUNT) && (attrp->ca_recflags & kHFSHasFolderCountMask)) ?
4415 attrp->ca_flags |= UF_HIDDEN;
4421 if ((attrp->ca_flags & (SF_IMMUTABLE | UF_IMMUTABLE)) == 0)
4422 attrp->ca_flags |= UF_IMMUTABLE;
4425 attrp->ca_flags &= ~(SF_IMMUTABLE | UF_IMMUTABLE);
4429 attrp->ca_flags |= UF_HIDDEN;
4431 attrp->ca_blocks = crp->dataFork.totalBlocks + crp->resourceFork.totalBlocks;
4435 attrp->ca_recflags |= kHFSThreadExistsMask;
4438 attrp->ca_firstlink = (attrp->ca_recflags & kHFSHasLinkChainMask) ? crp->hl_firstLinkID : 0;
4441 attrp->ca_fileid = crp->fileID;
4443 bcopy(&crp->userInfo, attrp->ca_finderinfo, 32);
4743 struct cat_attr *attrp, struct cat_fork *forkp)
4787 error = cat_lookupbykey(hfsmp, keyp, HFS_LOOKUP_HARDLINK, 0, true, outdescp, attrp, forkp, NULL);
4790 error = cat_lookupbykey(hfsmp, keyp, HFS_LOOKUP_HARDLINK, 0, false, outdescp, attrp, forkp, NULL);
4815 * described by descp using the data from attrp and forkp.
4819 struct cat_desc *descp, struct cat_attr *attrp, struct cat_fork *forkp)
4822 return cat_update_internal(hfsmp, true, descp, attrp, NULL, forkp);
4824 return cat_update_internal(hfsmp, true, descp, attrp, forkp, NULL);