Lines Matching full:dp
54 #define DIP(dp, field) \
56 (dp)->dp1.field : (dp)->dp2.field)
57 #define DIP_SET(dp, field, val) do {\
59 (dp)->dp1.field = (val); \
61 (dp)->dp2.field = (val); \
69 static void dmpindir(union dinode *dp, ino_t ino, ufs2_daddr_t blk, int level,
72 static void ufs2_blksout(union dinode *dp, ufs2_daddr_t *blkp, int frags,
74 static int appendextdata(union dinode *dp);
75 static void writeextdata(union dinode *dp, ino_t ino, int added);
78 static long blockest(union dinode *dp);
88 blockest(union dinode *dp)
93 * dp->di_size is the size of the file in bytes.
94 * dp->di_blocks stores the number of sectors actually in the file.
106 if ((DIP(dp, di_flags) & SF_SNAPSHOT) != 0)
108 blkest = howmany(dbtob(DIP(dp, di_blocks)), TP_BSIZE);
109 sizeest = howmany(DIP(dp, di_size), TP_BSIZE);
112 if (DIP(dp, di_size) > sblock->fs_bsize * UFS_NDADDR) {
121 #define CHANGEDSINCE(dp, t) \
122 (DIP(dp, di_mtime) >= (t) || DIP(dp, di_ctime) >= (t))
126 #define WANTTODUMP(dp) \
127 (CHANGEDSINCE(dp, spcl.c_ddate) && \
128 (nonodump || (DIP(dp, di_flags) & UF_NODUMP) != UF_NODUMP))
130 #define WANTTODUMP(dp) CHANGEDSINCE(dp, spcl.c_ddate)
145 union dinode *dp;
186 (dp = getino(ino, &mode)) == NULL ||
203 if (WANTTODUMP(dp)) {
210 *tapesize += blockest(dp);
215 (DIP(dp, di_flags) & UF_NODUMP))
244 union dinode *dp;
268 dp = getino(ino, &i);
273 di.dp1 = dp->dp1;
275 di.dp2 = dp->dp2;
380 struct direct *dp;
391 dp = (struct direct *)(dblk + loc);
392 if (dp->d_reclen == 0) {
397 loc += dp->d_reclen;
398 if (dp->d_ino == 0)
400 if (dp->d_ino >= maxino) {
402 (uintmax_t)dp->d_ino, (uintmax_t)maxino);
405 if (dp->d_name[0] == '.') {
406 if (dp->d_name[1] == '\0')
408 if (dp->d_name[1] == '.' && dp->d_name[2] == '\0')
412 ip = getino(dp->d_ino, &mode);
413 if (TSTINO(dp->d_ino, dumpinomap)) {
414 CLRINO(dp->d_ino, dumpinomap);
422 SETINO(dp->d_ino, dumpdirmap);
423 CLRINO(dp->d_ino, usedinomap);
427 if (TSTINO(dp->d_ino, dumpinomap)) {
432 if (TSTINO(dp->d_ino, dumpdirmap)) {
448 dumpino(union dinode *dp, ino_t ino)
463 if ((DIP(dp, di_flags) & SF_SNAPSHOT) != 0) {
464 DIP_SET(dp, di_size, 0);
465 DIP_SET(dp, di_flags, DIP(dp, di_flags) & ~SF_SNAPSHOT);
468 spcl.c_mode = dp->dp1.di_mode;
469 spcl.c_size = dp->dp1.di_size;
471 spcl.c_atime = _time32_to_time(dp->dp1.di_atime);
472 spcl.c_atimensec = dp->dp1.di_atimensec;
473 spcl.c_mtime = _time32_to_time(dp->dp1.di_mtime);
474 spcl.c_mtimensec = dp->dp1.di_mtimensec;
477 spcl.c_rdev = dp->dp1.di_rdev;
478 spcl.c_file_flags = dp->dp1.di_flags;
479 spcl.c_uid = dp->dp1.di_uid;
480 spcl.c_gid = dp->dp1.di_gid;
482 spcl.c_mode = dp->dp2.di_mode;
483 spcl.c_size = dp->dp2.di_size;
484 spcl.c_extsize = dp->dp2.di_extsize;
485 spcl.c_atime = _time64_to_time(dp->dp2.di_atime);
486 spcl.c_atimensec = dp->dp2.di_atimensec;
487 spcl.c_mtime = _time64_to_time(dp->dp2.di_mtime);
488 spcl.c_mtimensec = dp->dp2.di_mtimensec;
489 spcl.c_birthtime = _time64_to_time(dp->dp2.di_birthtime);
490 spcl.c_birthtimensec = dp->dp2.di_birthnsec;
491 spcl.c_rdev = dp->dp2.di_rdev;
492 spcl.c_file_flags = dp->dp2.di_flags;
493 spcl.c_uid = dp->dp2.di_uid;
494 spcl.c_gid = dp->dp2.di_gid;
498 switch (DIP(dp, di_mode) & S_IFMT) {
510 if (DIP(dp, di_size) > 0 &&
511 DIP(dp, di_size) < sblock->fs_maxsymlinklen) {
514 added = appendextdata(dp);
516 memmove(buf, DIP(dp, di_shortlink),
517 (u_long)DIP(dp, di_size));
518 buf[DIP(dp, di_size)] = '\0';
520 writeextdata(dp, ino, added);
527 if (DIP(dp, di_size) > 0)
535 added = appendextdata(dp);
537 writeextdata(dp, ino, added);
542 DIP(dp, di_mode) & IFMT);
545 if (DIP(dp, di_size) > UFS_NDADDR * sblock->fs_bsize) {
549 cnt = howmany(DIP(dp, di_size), sblock->fs_fsize);
553 ufs1_blksout(&dp->dp1.di_db[0], cnt, ino);
555 ufs2_blksout(dp, &dp->dp2.di_db[0], cnt, ino, last);
556 if ((size = DIP(dp, di_size) - UFS_NDADDR * sblock->fs_bsize) <= 0)
559 dmpindir(dp, ino, DIP(dp, di_ib[ind_level]), ind_level, &size);
569 dmpindir(union dinode *dp, ino_t ino, ufs2_daddr_t blk, int ind_level,
595 ufs2_blksout(dp, idblk.ufs2, cnt, ino, last);
601 dmpindir(dp, ino, idblk.ufs1[i], ind_level, size);
603 dmpindir(dp, ino, idblk.ufs2[i], ind_level, size);
649 ufs2_blksout(union dinode *dp, ufs2_daddr_t *blkp, int frags, ino_t ino,
667 resid = howmany(fragoff(sblock, dp->dp2.di_size),
686 added = appendextdata(dp);
700 writeextdata(dp, ino, added);
716 appendextdata(union dinode *dp)
745 if (&dp->dp2.di_extb[i / tbperdb] != 0)
760 writeextdata(union dinode *dp, ino_t ino, int added)
783 ufs2_blksout(dp, &dp->dp2.di_extb[0], frags, ino, last);
791 bp = &dp->dp2.di_extb[i / tbperdb];
813 dmpindir(dp, ino, dp->dp2.di_exti, 0, &size);