1 /* This file contains procedures to dump to FS' data structures. 2 * 3 * The entry points into this file are 4 * dtab_dump: display device <-> driver mappings 5 * fproc_dump: display FS process table 6 * 7 * Created: 8 * Oct 01, 2004: by Jorrit N. Herder 9 */ 10 11 #include "inc.h" 12 #include "mfs/const.h" 13 #include "vfs/const.h" 14 #include "vfs/fproc.h" 15 #include "vfs/dmap.h" 16 #include <minix/dmap.h> 17 18 struct fproc fproc[NR_PROCS]; 19 struct dmap dmap[NR_DEVICES]; 20 21 /*===========================================================================* 22 * fproc_dmp * 23 *===========================================================================*/ 24 void fproc_dmp() 25 { 26 struct fproc *fp; 27 int i, j, nfds, n=0; 28 static int prev_i; 29 30 if (getsysinfo(VFS_PROC_NR, SI_PROC_TAB, fproc, sizeof(fproc)) != OK) { 31 printf("Error obtaining table from VFS. Perhaps recompile IS?\n"); 32 return; 33 } 34 35 printf("File System (FS) process table dump\n"); 36 printf("-nr- -pid- -tty- -umask- --uid-- --gid-- -ldr-fds-sus-rev-proc-\n"); 37 for (i=prev_i; i<NR_PROCS; i++) { 38 fp = &fproc[i]; 39 if (fp->fp_pid <= 0) continue; 40 if (++n > 22) break; 41 for (j = nfds = 0; j < OPEN_MAX; j++) 42 if (fp->fp_filp[j] != NULL) nfds++; 43 printf("%3d %4d %2d/%d 0x%05x %2d (%2d) %2d (%2d) %3d %3d %3d %3d ", 44 i, fp->fp_pid, 45 major(fp->fp_tty), minor(fp->fp_tty), 46 fp->fp_umask, 47 fp->fp_realuid, fp->fp_effuid, fp->fp_realgid, fp->fp_effgid, 48 !!(fp->fp_flags & FP_SESLDR), nfds, 49 fp->fp_blocked_on, !!(fp->fp_flags & FP_REVIVED) 50 ); 51 if (fp->fp_blocked_on == FP_BLOCKED_ON_OTHER) 52 printf("%4d\n", fp->fp_task); 53 else 54 printf(" nil\n"); 55 } 56 if (i >= NR_PROCS) i = 0; 57 else printf("--more--\r"); 58 prev_i = i; 59 } 60 61 /*===========================================================================* 62 * dtab_dmp * 63 *===========================================================================*/ 64 void dtab_dmp() 65 { 66 int i; 67 68 if (getsysinfo(VFS_PROC_NR, SI_DMAP_TAB, dmap, sizeof(dmap)) != OK) { 69 printf("Error obtaining table from VFS. Perhaps recompile IS?\n"); 70 return; 71 } 72 73 printf("File System (FS) device <-> driver mappings\n"); 74 printf(" Label Major Driver ept\n"); 75 printf("------------- ----- ----------\n"); 76 for (i=0; i<NR_DEVICES; i++) { 77 if (dmap[i].dmap_driver == NONE) continue; 78 printf("%13s %5d %10d\n", dmap[i].dmap_label, i, dmap[i].dmap_driver); 79 } 80 } 81