/* This file contains procedures to dump to FS' data structures. * * The entry points into this file are * do_fkey_pressed: a function key was pressed * dtab_dump: display device<->driver table * fproc_dump: display FS process table * * Created: * Oct 01, 2004: by Jorrit N. Herder */ #include "fs.h" #include #include #include #include "dmap.h" #include "fproc.h" FORWARD _PROTOTYPE( void dtab_dmp, (void)); FORWARD _PROTOTYPE( void fproc_dmp, (void)); /*===========================================================================* * do_fkey_pressed * *===========================================================================*/ PUBLIC int do_fkey_pressed(void) { printf("Debug dump of FS data structure: "); switch (m_in.FKEY_CODE) { case SF5: fproc_dmp(); break; case SF6: dtab_dmp(); break; default: printf("FS: unhandled notification for Shift+F%d key.\n", m_in.FKEY_NUM); } } /*===========================================================================* * fproc_dmp * *===========================================================================*/ PRIVATE void fproc_dmp() { struct fproc *fp; int i, n=0; static int prev_i; printf("PROCESS TABLE (beta)\n"); printf("-nr- -pid- -tty- -umask- --uid-- --gid-- -ldr- -sus-rev-proc- -cloexec-\n"); for (i=prev_i; ifp_pid <= 0) continue; if (++n > 22) break; printf("%3d %4d %2d/%d 0x%05x %2d (%d) %2d (%d) %3d %3d %3d %4d 0x%05x\n", i, fp->fp_pid, ((fp->fp_tty>>MAJOR)&BYTE), ((fp->fp_tty>>MINOR)&BYTE), fp->fp_umask, fp->fp_realuid, fp->fp_effuid, fp->fp_realgid, fp->fp_effgid, fp->fp_sesldr, fp->fp_suspended, fp->fp_revived, fp->fp_task, fp->fp_cloexec ); } if (i >= NR_PROCS) i = 0; else printf("--more--\r"); prev_i = i; } /*===========================================================================* * dtab_dmp * *===========================================================================*/ PRIVATE void dtab_dmp() { int i; char *file[] = { "not used ", "/dev/mem ", "/dev/fd0 ", "/dev/c0 ", "/dev/tty0 ", "/dev/tty ", "/dev/lp ", "/dev/ip ", "/dev/c1 ", "not used ", "/dev/c2 ", "not used ", "/dev/c3 ", "/dev/audio", "/dev/mixer", }; printf("DEVICE MAP\n"); printf("Dev File Open/Cls I/O Proc\n"); printf("--- ---------- -------- ------ ----\n"); for (i=0; i