dumpfs.c (109525) | dumpfs.c (109532) |
---|---|
1/* 2 * Copyright (c) 2002 Networks Associates Technology, Inc. 3 * All rights reserved. 4 * 5 * This software was developed for the FreeBSD Project by Marshall 6 * Kirk McKusick and Network Associates Laboratories, the Security 7 * Research Division of Network Associates, Inc. under DARPA/SPAWAR 8 * contract N66001-01-C-8035 ("CBOSS"), as part of the DARPA CHATS --- 40 unchanged lines hidden (view full) --- 49 The Regents of the University of California. All rights reserved.\n"; 50#endif /* not lint */ 51 52#ifndef lint 53#if 0 54static char sccsid[] = "@(#)dumpfs.c 8.5 (Berkeley) 4/29/95"; 55#endif 56static const char rcsid[] = | 1/* 2 * Copyright (c) 2002 Networks Associates Technology, Inc. 3 * All rights reserved. 4 * 5 * This software was developed for the FreeBSD Project by Marshall 6 * Kirk McKusick and Network Associates Laboratories, the Security 7 * Research Division of Network Associates, Inc. under DARPA/SPAWAR 8 * contract N66001-01-C-8035 ("CBOSS"), as part of the DARPA CHATS --- 40 unchanged lines hidden (view full) --- 49 The Regents of the University of California. All rights reserved.\n"; 50#endif /* not lint */ 51 52#ifndef lint 53#if 0 54static char sccsid[] = "@(#)dumpfs.c 8.5 (Berkeley) 4/29/95"; 55#endif 56static const char rcsid[] = |
57 "$FreeBSD: head/sbin/dumpfs/dumpfs.c 109525 2003-01-19 10:25:11Z jmallett $"; | 57 "$FreeBSD: head/sbin/dumpfs/dumpfs.c 109532 2003-01-19 12:13:47Z jmallett $"; |
58#endif /* not lint */ 59 60#include <sys/param.h> 61#include <sys/time.h> 62#include <sys/disklabel.h> 63 64#include <ufs/ufs/dinode.h> 65#include <ufs/ffs/fs.h> --- 57 unchanged lines hidden (view full) --- 123 ufs_disk_close(&disk); 124 } 125 exit(eval); 126} 127 128int 129dumpfs(const char *name) 130{ | 58#endif /* not lint */ 59 60#include <sys/param.h> 61#include <sys/time.h> 62#include <sys/disklabel.h> 63 64#include <ufs/ufs/dinode.h> 65#include <ufs/ffs/fs.h> --- 57 unchanged lines hidden (view full) --- 123 ufs_disk_close(&disk); 124 } 125 exit(eval); 126} 127 128int 129dumpfs(const char *name) 130{ |
131 time_t time; | 131 time_t fstime; |
132 int64_t fssize; 133 int i; 134 135 switch (disk.d_ufs) { 136 case 2: 137 fssize = afs.fs_size; | 132 int64_t fssize; 133 int i; 134 135 switch (disk.d_ufs) { 136 case 2: 137 fssize = afs.fs_size; |
138 time = afs.fs_time; | 138 fstime = afs.fs_time; |
139 printf("magic\t%x (UFS2)\ttime\t%s", | 139 printf("magic\t%x (UFS2)\ttime\t%s", |
140 afs.fs_magic, ctime(&time)); | 140 afs.fs_magic, ctime(&fstime)); |
141 printf("superblock location\t%qd\tid\t[ %x %x ]\n", 142 afs.fs_sblockloc, afs.fs_id[0], afs.fs_id[1]); | 141 printf("superblock location\t%qd\tid\t[ %x %x ]\n", 142 afs.fs_sblockloc, afs.fs_id[0], afs.fs_id[1]); |
143 printf("ncg\t%d\tsize\t%qd\tblocks\t%d\n", 144 afs.fs_ncg, fssize, afs.fs_dsize); | 143 printf("ncg\t%d\tsize\t%qd\tblocks\t%jd\n", 144 afs.fs_ncg, fssize, (intmax_t)afs.fs_dsize); |
145 break; 146 case 1: 147 fssize = afs.fs_old_size; | 145 break; 146 case 1: 147 fssize = afs.fs_old_size; |
148 time = afs.fs_old_time; | 148 fstime = afs.fs_old_time; |
149 printf("magic\t%x (UFS1)\ttime\t%s", | 149 printf("magic\t%x (UFS1)\ttime\t%s", |
150 afs.fs_magic, ctime(&time)); | 150 afs.fs_magic, ctime(&fstime)); |
151 printf("id\t[ %x %x ]\n", afs.fs_id[0], afs.fs_id[1]); | 151 printf("id\t[ %x %x ]\n", afs.fs_id[0], afs.fs_id[1]); |
152 printf("ncg\t%d\tsize\t%qd\tblocks\t%d\n", 153 afs.fs_ncg, fssize, afs.fs_dsize); | 152 printf("ncg\t%d\tsize\t%qd\tblocks\t%jd\n", 153 afs.fs_ncg, fssize, (intmax_t)afs.fs_dsize); |
154 break; 155 default: | 154 break; 155 default: |
156 break; | 156 goto err; |
157 } 158 printf("bsize\t%d\tshift\t%d\tmask\t0x%08x\n", 159 afs.fs_bsize, afs.fs_bshift, afs.fs_bmask); 160 printf("fsize\t%d\tshift\t%d\tmask\t0x%08x\n", 161 afs.fs_fsize, afs.fs_fshift, afs.fs_fmask); 162 printf("frag\t%d\tshift\t%d\tfsbtodb\t%d\n", 163 afs.fs_frag, afs.fs_fragshift, afs.fs_fsbtodb); 164 printf("minfree\t%d%%\toptim\t%s\tsymlinklen %d\n", --- 6 unchanged lines hidden (view full) --- 171 afs.fs_maxcontig, afs.fs_contigsumsize); 172 printf("nbfree\t%qd\tndir\t%qd\tnifree\t%qd\tnffree\t%qd\n", 173 afs.fs_cstotal.cs_nbfree, afs.fs_cstotal.cs_ndir, 174 afs.fs_cstotal.cs_nifree, afs.fs_cstotal.cs_nffree); 175 printf("bpg\t%d\tfpg\t%d\tipg\t%d\n", 176 afs.fs_fpg / afs.fs_frag, afs.fs_fpg, afs.fs_ipg); 177 printf("nindir\t%d\tinopb\t%d\tmaxfilesize\t%qu\n", 178 afs.fs_nindir, afs.fs_inopb, afs.fs_maxfilesize); | 157 } 158 printf("bsize\t%d\tshift\t%d\tmask\t0x%08x\n", 159 afs.fs_bsize, afs.fs_bshift, afs.fs_bmask); 160 printf("fsize\t%d\tshift\t%d\tmask\t0x%08x\n", 161 afs.fs_fsize, afs.fs_fshift, afs.fs_fmask); 162 printf("frag\t%d\tshift\t%d\tfsbtodb\t%d\n", 163 afs.fs_frag, afs.fs_fragshift, afs.fs_fsbtodb); 164 printf("minfree\t%d%%\toptim\t%s\tsymlinklen %d\n", --- 6 unchanged lines hidden (view full) --- 171 afs.fs_maxcontig, afs.fs_contigsumsize); 172 printf("nbfree\t%qd\tndir\t%qd\tnifree\t%qd\tnffree\t%qd\n", 173 afs.fs_cstotal.cs_nbfree, afs.fs_cstotal.cs_ndir, 174 afs.fs_cstotal.cs_nifree, afs.fs_cstotal.cs_nffree); 175 printf("bpg\t%d\tfpg\t%d\tipg\t%d\n", 176 afs.fs_fpg / afs.fs_frag, afs.fs_fpg, afs.fs_ipg); 177 printf("nindir\t%d\tinopb\t%d\tmaxfilesize\t%qu\n", 178 afs.fs_nindir, afs.fs_inopb, afs.fs_maxfilesize); |
179 printf("sbsize\t%d\tcgsize\t%d\tcsaddr\t%d\tcssize\t%d\n", 180 afs.fs_sbsize, afs.fs_cgsize, afs.fs_csaddr, afs.fs_cssize); | 179 printf("sbsize\t%d\tcgsize\t%d\tcsaddr\t%jd\tcssize\t%d\n", 180 afs.fs_sbsize, afs.fs_cgsize, (intmax_t)afs.fs_csaddr, 181 afs.fs_cssize); |
181 break; 182 case 1: 183 printf("maxbpg\t%d\tmaxcontig %d\tcontigsumsize %d\n", 184 afs.fs_maxbpg, afs.fs_maxcontig, afs.fs_contigsumsize); 185 printf("nbfree\t%d\tndir\t%d\tnifree\t%d\tnffree\t%d\n", 186 afs.fs_old_cstotal.cs_nbfree, afs.fs_old_cstotal.cs_ndir, 187 afs.fs_old_cstotal.cs_nifree, afs.fs_old_cstotal.cs_nffree); 188 printf("cpg\t%d\tbpg\t%d\tfpg\t%d\tipg\t%d\n", --- 9 unchanged lines hidden (view full) --- 198 afs.fs_old_csaddr, afs.fs_cssize); 199 printf("rotdelay %dms\trps\t%d\ttrackskew %d\tinterleave %d\n", 200 afs.fs_old_rotdelay, afs.fs_old_rps, afs.fs_old_trackskew, 201 afs.fs_old_interleave); 202 printf("nsect\t%d\tnpsect\t%d\tspc\t%d\n", 203 afs.fs_old_nsect, afs.fs_old_npsect, afs.fs_old_spc); 204 break; 205 default: | 182 break; 183 case 1: 184 printf("maxbpg\t%d\tmaxcontig %d\tcontigsumsize %d\n", 185 afs.fs_maxbpg, afs.fs_maxcontig, afs.fs_contigsumsize); 186 printf("nbfree\t%d\tndir\t%d\tnifree\t%d\tnffree\t%d\n", 187 afs.fs_old_cstotal.cs_nbfree, afs.fs_old_cstotal.cs_ndir, 188 afs.fs_old_cstotal.cs_nifree, afs.fs_old_cstotal.cs_nffree); 189 printf("cpg\t%d\tbpg\t%d\tfpg\t%d\tipg\t%d\n", --- 9 unchanged lines hidden (view full) --- 199 afs.fs_old_csaddr, afs.fs_cssize); 200 printf("rotdelay %dms\trps\t%d\ttrackskew %d\tinterleave %d\n", 201 afs.fs_old_rotdelay, afs.fs_old_rps, afs.fs_old_trackskew, 202 afs.fs_old_interleave); 203 printf("nsect\t%d\tnpsect\t%d\tspc\t%d\n", 204 afs.fs_old_nsect, afs.fs_old_npsect, afs.fs_old_spc); 205 break; 206 default: |
206 break; | 207 goto err; |
207 } 208 printf("sblkno\t%d\tcblkno\t%d\tiblkno\t%d\tdblkno\t%d\n", 209 afs.fs_sblkno, afs.fs_cblkno, afs.fs_iblkno, afs.fs_dblkno); 210 printf("cgrotor\t%d\tfmod\t%d\tronly\t%d\tclean\t%d\n", 211 afs.fs_cgrotor, afs.fs_fmod, afs.fs_ronly, afs.fs_clean); 212 printf("flags\t"); 213 if (afs.fs_flags == 0) 214 printf("none"); --- 23 unchanged lines hidden (view full) --- 238 cs->cs_nbfree, cs->cs_ndir, cs->cs_nifree, cs->cs_nffree); 239 } 240 printf("\n"); 241 if (fssize % afs.fs_fpg) { 242 if (disk.d_ufs == 1) 243 printf("cylinders in last group %d\n", 244 howmany(afs.fs_old_size % afs.fs_fpg, 245 afs.fs_old_spc / afs.fs_old_nspf)); | 208 } 209 printf("sblkno\t%d\tcblkno\t%d\tiblkno\t%d\tdblkno\t%d\n", 210 afs.fs_sblkno, afs.fs_cblkno, afs.fs_iblkno, afs.fs_dblkno); 211 printf("cgrotor\t%d\tfmod\t%d\tronly\t%d\tclean\t%d\n", 212 afs.fs_cgrotor, afs.fs_fmod, afs.fs_ronly, afs.fs_clean); 213 printf("flags\t"); 214 if (afs.fs_flags == 0) 215 printf("none"); --- 23 unchanged lines hidden (view full) --- 239 cs->cs_nbfree, cs->cs_ndir, cs->cs_nifree, cs->cs_nffree); 240 } 241 printf("\n"); 242 if (fssize % afs.fs_fpg) { 243 if (disk.d_ufs == 1) 244 printf("cylinders in last group %d\n", 245 howmany(afs.fs_old_size % afs.fs_fpg, 246 afs.fs_old_spc / afs.fs_old_nspf)); |
246 printf("blocks in last group %d\n\n", 247 (fssize % afs.fs_fpg) / afs.fs_frag); | 247 printf("blocks in last group %ld\n\n", 248 (long)((fssize % afs.fs_fpg) / afs.fs_frag)); |
248 } 249 while ((i = cgread(&disk)) != 0) { 250 if (i == -1 || dumpcg()) 251 goto err; 252 } 253 return (0); 254 255err: ufserr(name); 256 return (1); 257} 258 259int 260dumpcg(void) 261{ | 249 } 250 while ((i = cgread(&disk)) != 0) { 251 if (i == -1 || dumpcg()) 252 goto err; 253 } 254 return (0); 255 256err: ufserr(name); 257 return (1); 258} 259 260int 261dumpcg(void) 262{ |
262 time_t time; | 263 time_t cgtime; |
263 off_t cur; 264 int i, j; 265 266 printf("\ncg %d:\n", disk.d_lcg); 267 cur = fsbtodb(&afs, cgtod(&afs, disk.d_lcg)) * disk.d_bsize; 268 switch (disk.d_ufs) { 269 case 2: | 264 off_t cur; 265 int i, j; 266 267 printf("\ncg %d:\n", disk.d_lcg); 268 cur = fsbtodb(&afs, cgtod(&afs, disk.d_lcg)) * disk.d_bsize; 269 switch (disk.d_ufs) { 270 case 2: |
270 time = acg.cg_time; | 271 cgtime = acg.cg_time; |
271 printf("magic\t%x\ttell\t%qx\ttime\t%s", | 272 printf("magic\t%x\ttell\t%qx\ttime\t%s", |
272 acg.cg_magic, cur, ctime(&time)); | 273 acg.cg_magic, cur, ctime(&cgtime)); |
273 printf("cgx\t%d\tndblk\t%d\tniblk\t%d\tinitiblk %d\n", 274 acg.cg_cgx, acg.cg_ndblk, acg.cg_niblk, acg.cg_initediblk); 275 break; 276 case 1: | 274 printf("cgx\t%d\tndblk\t%d\tniblk\t%d\tinitiblk %d\n", 275 acg.cg_cgx, acg.cg_ndblk, acg.cg_niblk, acg.cg_initediblk); 276 break; 277 case 1: |
277 time = acg.cg_old_time; | 278 cgtime = acg.cg_old_time; |
278 printf("magic\t%x\ttell\t%qx\ttime\t%s", | 279 printf("magic\t%x\ttell\t%qx\ttime\t%s", |
279 acg.cg_magic, cur, ctime(&time)); | 280 acg.cg_magic, cur, ctime(&cgtime)); |
280 printf("cgx\t%d\tncyl\t%d\tniblk\t%d\tndblk\t%d\n", 281 acg.cg_cgx, acg.cg_old_ncyl, acg.cg_old_niblk, 282 acg.cg_ndblk); 283 break; 284 default: 285 break; 286 } 287 printf("nbfree\t%d\tndir\t%d\tnifree\t%d\tnffree\t%d\n", --- 112 unchanged lines hidden --- | 281 printf("cgx\t%d\tncyl\t%d\tniblk\t%d\tndblk\t%d\n", 282 acg.cg_cgx, acg.cg_old_ncyl, acg.cg_old_niblk, 283 acg.cg_ndblk); 284 break; 285 default: 286 break; 287 } 288 printf("nbfree\t%d\tndir\t%d\tnifree\t%d\tnffree\t%d\n", --- 112 unchanged lines hidden --- |