New dumps for RS and DS server.
This commit is contained in:
parent
381c24ce17
commit
288860f6e6
@ -17,7 +17,7 @@ CFLAGS = -I$i
|
|||||||
LDFLAGS = -i
|
LDFLAGS = -i
|
||||||
LIBS = -lsys -lsysutil
|
LIBS = -lsys -lsysutil
|
||||||
|
|
||||||
OBJ = is.o dmp.o dmp_kernel.o dmp_pm.o dmp_fs.o dmp_rs.o
|
OBJ = main.o dmp.o dmp_kernel.o dmp_pm.o dmp_fs.o dmp_rs.o dmp_ds.o
|
||||||
|
|
||||||
# build local binary
|
# build local binary
|
||||||
all build: $(SERVER)
|
all build: $(SERVER)
|
||||||
|
@ -7,9 +7,12 @@
|
|||||||
* handle_fkey: handle a function key pressed notification
|
* handle_fkey: handle a function key pressed notification
|
||||||
*/
|
*/
|
||||||
|
|
||||||
#include "is.h"
|
#include "inc.h"
|
||||||
|
|
||||||
#define NHOOKS 18
|
/* Define hooks for the debugging dumps. This table maps function keys
|
||||||
|
* onto a specific dump and provides a description for it.
|
||||||
|
*/
|
||||||
|
#define NHOOKS 19
|
||||||
|
|
||||||
struct hook_entry {
|
struct hook_entry {
|
||||||
int key;
|
int key;
|
||||||
@ -34,15 +37,16 @@ struct hook_entry {
|
|||||||
{ SF5, mapping_dmp, "Print key mappings" },
|
{ SF5, mapping_dmp, "Print key mappings" },
|
||||||
{ SF6, rproc_dmp, "Reincarnation server process table" },
|
{ SF6, rproc_dmp, "Reincarnation server process table" },
|
||||||
{ SF7, holes_dmp, "Memory free list" },
|
{ SF7, holes_dmp, "Memory free list" },
|
||||||
|
{ SF8, data_store_dmp, "Data store contents" },
|
||||||
};
|
};
|
||||||
|
|
||||||
/*===========================================================================*
|
/*===========================================================================*
|
||||||
* handle_fkey *
|
* handle_fkey *
|
||||||
*===========================================================================*/
|
*===========================================================================*/
|
||||||
#define pressed(k) ((F1<=(k) && (k)<=F12 && bit_isset(m->FKEY_FKEYS, ((k)-F1+1))) \
|
#define pressed(k) ((F1<=(k)&&(k)<=F12 && bit_isset(m->FKEY_FKEYS,((k)-F1+1)))\
|
||||||
|| (SF1<=(k) && (k)<=SF12 && bit_isset(m->FKEY_SFKEYS, ((k)-SF1+1))))
|
|| (SF1<=(k) && (k)<=SF12 && bit_isset(m->FKEY_SFKEYS, ((k)-SF1+1))))
|
||||||
|
PUBLIC int do_fkey_pressed(m)
|
||||||
PUBLIC int do_fkey_pressed(message *m)
|
message *m; /* notification message */
|
||||||
{
|
{
|
||||||
int s, h;
|
int s, h;
|
||||||
|
|
||||||
@ -55,15 +59,18 @@ PUBLIC int do_fkey_pressed(message *m)
|
|||||||
report("IS", "warning, sendrec to TTY failed", s);
|
report("IS", "warning, sendrec to TTY failed", s);
|
||||||
|
|
||||||
/* Now check which keys were pressed: F1-F12, SF1-SF12. */
|
/* Now check which keys were pressed: F1-F12, SF1-SF12. */
|
||||||
for(h = 0; h < NHOOKS; h++)
|
for(h=0; h < NHOOKS; h++)
|
||||||
if(pressed(hooks[h].key))
|
if(pressed(hooks[h].key))
|
||||||
hooks[h].function();
|
hooks[h].function();
|
||||||
|
|
||||||
/* Inhibit sending a reply message. */
|
/* Don't send a reply message. */
|
||||||
return(EDONTREPLY);
|
return(EDONTREPLY);
|
||||||
}
|
}
|
||||||
|
|
||||||
PRIVATE char *keyname(int key)
|
/*===========================================================================*
|
||||||
|
* key_name *
|
||||||
|
*===========================================================================*/
|
||||||
|
PRIVATE char *key_name(int key)
|
||||||
{
|
{
|
||||||
static char name[15];
|
static char name[15];
|
||||||
|
|
||||||
@ -73,30 +80,32 @@ PRIVATE char *keyname(int key)
|
|||||||
sprintf(name, "Shift+F%d", key - SF1 + 1);
|
sprintf(name, "Shift+F%d", key - SF1 + 1);
|
||||||
else
|
else
|
||||||
sprintf(name, "?");
|
sprintf(name, "?");
|
||||||
|
|
||||||
return name;
|
return name;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/*===========================================================================*
|
||||||
|
* reboot_dmp *
|
||||||
|
*===========================================================================*/
|
||||||
PUBLIC void reboot_dmp(void)
|
PUBLIC void reboot_dmp(void)
|
||||||
{
|
{
|
||||||
if (sys_panic) sys_abort(RBT_HALT);
|
if (sys_panic) sys_abort(RBT_HALT);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
/*===========================================================================*
|
||||||
|
* mapping_dmp *
|
||||||
|
*===========================================================================*/
|
||||||
PUBLIC void mapping_dmp(void)
|
PUBLIC void mapping_dmp(void)
|
||||||
{
|
{
|
||||||
int h;
|
int h;
|
||||||
|
|
||||||
printf(
|
printf("Function key mappings for debug dumps in IS server.\n");
|
||||||
"Function key mappings for debug dumps in IS server.\n"
|
printf(" Key Description\n");
|
||||||
" Key Description\n"
|
printf("-------------------------------------");
|
||||||
"-------------------------------------------------------------------------\n");
|
printf("------------------------------------\n");
|
||||||
for(h = 0; h < NHOOKS; h++)
|
|
||||||
printf(" %10s. %s\n", keyname(hooks[h].key), hooks[h].name);
|
|
||||||
|
|
||||||
printf("\n");
|
for(h=0; h < NHOOKS; h++)
|
||||||
|
printf(" %10s. %s\n", key_name(hooks[h].key), hooks[h].name);
|
||||||
return;
|
printf("\n");
|
||||||
}
|
}
|
||||||
|
|
||||||
|
60
servers/is/dmp_ds.c
Normal file
60
servers/is/dmp_ds.c
Normal file
@ -0,0 +1,60 @@
|
|||||||
|
/* This file contains procedures to dump DS data structures.
|
||||||
|
*
|
||||||
|
* The entry points into this file are
|
||||||
|
* data_store_dmp: display DS data store contents
|
||||||
|
*
|
||||||
|
* Created:
|
||||||
|
* Oct 18, 2005: by Jorrit N. Herder
|
||||||
|
*/
|
||||||
|
|
||||||
|
#include "inc.h"
|
||||||
|
#include "../ds/store.h"
|
||||||
|
|
||||||
|
PUBLIC struct data_store store[NR_DS_KEYS];
|
||||||
|
|
||||||
|
FORWARD _PROTOTYPE( char *s_flags_str, (int flags) );
|
||||||
|
|
||||||
|
/*===========================================================================*
|
||||||
|
* data_store_dmp *
|
||||||
|
*===========================================================================*/
|
||||||
|
PUBLIC void data_store_dmp()
|
||||||
|
{
|
||||||
|
struct data_store *dsp;
|
||||||
|
int i,j, n=0;
|
||||||
|
static int prev_i=0;
|
||||||
|
|
||||||
|
|
||||||
|
printf("Data Store (DS) contents dump\n");
|
||||||
|
|
||||||
|
getsysinfo(DS_PROC_NR, SI_DATA_STORE, store);
|
||||||
|
|
||||||
|
printf("-slot- -key- -flags- -val_l1- -val_l2-\n");
|
||||||
|
|
||||||
|
for (i=prev_i; i<NR_DS_KEYS; i++) {
|
||||||
|
dsp = &store[i];
|
||||||
|
if (! dsp->ds_flags & DS_IN_USE) continue;
|
||||||
|
if (++n > 22) break;
|
||||||
|
printf("%3d %8d %s [%8d] [%8d] \n",
|
||||||
|
i, dsp->ds_key,
|
||||||
|
s_flags_str(dsp->ds_flags),
|
||||||
|
dsp->ds_val_l1,
|
||||||
|
dsp->ds_val_l2
|
||||||
|
);
|
||||||
|
}
|
||||||
|
if (i >= NR_DS_KEYS) i = 0;
|
||||||
|
else printf("--more--\r");
|
||||||
|
prev_i = i;
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
PRIVATE char *s_flags_str(int flags)
|
||||||
|
{
|
||||||
|
static char str[5];
|
||||||
|
str[0] = (flags & DS_IN_USE) ? 'U' : '-';
|
||||||
|
str[1] = (flags & DS_PUBLIC) ? 'P' : '-';
|
||||||
|
str[2] = '-';
|
||||||
|
str[3] = '\0';
|
||||||
|
|
||||||
|
return(str);
|
||||||
|
}
|
||||||
|
|
@ -8,7 +8,7 @@
|
|||||||
* Oct 01, 2004: by Jorrit N. Herder
|
* Oct 01, 2004: by Jorrit N. Herder
|
||||||
*/
|
*/
|
||||||
|
|
||||||
#include "is.h"
|
#include "inc.h"
|
||||||
#include "../fs/const.h"
|
#include "../fs/const.h"
|
||||||
#include "../fs/fproc.h"
|
#include "../fs/fproc.h"
|
||||||
#include <minix/dmap.h>
|
#include <minix/dmap.h>
|
||||||
|
@ -1,6 +1,6 @@
|
|||||||
/* Debugging dump procedures for the kernel. */
|
/* Debugging dump procedures for the kernel. */
|
||||||
|
|
||||||
#include "is.h"
|
#include "inc.h"
|
||||||
#include <timers.h>
|
#include <timers.h>
|
||||||
#include <ibm/interrupt.h>
|
#include <ibm/interrupt.h>
|
||||||
#include "../../kernel/const.h"
|
#include "../../kernel/const.h"
|
||||||
@ -289,7 +289,8 @@ PUBLIC void kenv_dmp()
|
|||||||
printf("- kmem_size: %5u\n", kinfo.kmem_size);
|
printf("- kmem_size: %5u\n", kinfo.kmem_size);
|
||||||
printf("- bootdev_base: %5u\n", kinfo.bootdev_base);
|
printf("- bootdev_base: %5u\n", kinfo.bootdev_base);
|
||||||
printf("- bootdev_size: %5u\n", kinfo.bootdev_size);
|
printf("- bootdev_size: %5u\n", kinfo.bootdev_size);
|
||||||
printf("- bootdev_mem: %5u\n", kinfo.bootdev_mem);
|
printf("- ramdev_base: %5u\n", kinfo.ramdev_base);
|
||||||
|
printf("- ramdev_size: %5u\n", kinfo.ramdev_size);
|
||||||
printf("- params_base: %5u\n", kinfo.params_base);
|
printf("- params_base: %5u\n", kinfo.params_base);
|
||||||
printf("- params_size: %5u\n", kinfo.params_size);
|
printf("- params_size: %5u\n", kinfo.params_size);
|
||||||
printf("- nr_procs: %3u\n", kinfo.nr_procs);
|
printf("- nr_procs: %3u\n", kinfo.nr_procs);
|
||||||
|
@ -7,7 +7,7 @@
|
|||||||
* May 11, 2005: by Jorrit N. Herder
|
* May 11, 2005: by Jorrit N. Herder
|
||||||
*/
|
*/
|
||||||
|
|
||||||
#include "is.h"
|
#include "inc.h"
|
||||||
#include "../pm/mproc.h"
|
#include "../pm/mproc.h"
|
||||||
#include <timers.h>
|
#include <timers.h>
|
||||||
#include <minix/config.h>
|
#include <minix/config.h>
|
||||||
|
@ -7,8 +7,8 @@
|
|||||||
* Oct 03, 2005: by Jorrit N. Herder
|
* Oct 03, 2005: by Jorrit N. Herder
|
||||||
*/
|
*/
|
||||||
|
|
||||||
#include "is.h"
|
#include "inc.h"
|
||||||
#include "../rs/rproc.h"
|
#include "../rs/manager.h"
|
||||||
|
|
||||||
PUBLIC struct rproc rproc[NR_SYS_PROCS];
|
PUBLIC struct rproc rproc[NR_SYS_PROCS];
|
||||||
|
|
||||||
@ -26,18 +26,18 @@ PUBLIC void rproc_dmp()
|
|||||||
getsysinfo(RS_PROC_NR, SI_PROC_TAB, rproc);
|
getsysinfo(RS_PROC_NR, SI_PROC_TAB, rproc);
|
||||||
|
|
||||||
printf("Reincarnation Server (RS) system process table dump\n");
|
printf("Reincarnation Server (RS) system process table dump\n");
|
||||||
printf("-proc nr-pid- -dev nr/ style- -ticks-checked-alive-- --flags-- -command (argc)-\n");
|
printf("-proc-pid-flag--dev- -T--checked--alive- -starts-backoff- -command (argc)-\n");
|
||||||
for (i=prev_i; i<NR_SYS_PROCS; i++) {
|
for (i=prev_i; i<NR_SYS_PROCS; i++) {
|
||||||
rp = &rproc[i];
|
rp = &rproc[i];
|
||||||
if (! rp->r_flags & IN_USE) continue;
|
if (! rp->r_flags & RS_IN_USE) continue;
|
||||||
if (++n > 22) break;
|
if (++n > 22) break;
|
||||||
printf("%3d %5d %3d/%2d %3u %8u %8u %s %s (%d)",
|
printf("%3d %5d %s %3d/%2d %3u %8u %8u %3dx %3d %s (%d)",
|
||||||
rp->r_proc_nr, rp->r_pid,
|
rp->r_proc_nr, rp->r_pid,
|
||||||
|
s_flags_str(rp->r_flags),
|
||||||
rp->r_dev_nr, rp->r_dev_style,
|
rp->r_dev_nr, rp->r_dev_style,
|
||||||
rp->r_period,
|
rp->r_period,
|
||||||
rp->r_check_tm,
|
rp->r_check_tm, rp->r_alive_tm,
|
||||||
rp->r_alive_tm,
|
rp->r_restarts, rp->r_backoff,
|
||||||
s_flags_str(rp->r_flags),
|
|
||||||
rp->r_cmd,
|
rp->r_cmd,
|
||||||
rp->r_argc
|
rp->r_argc
|
||||||
);
|
);
|
||||||
@ -52,8 +52,8 @@ PUBLIC void rproc_dmp()
|
|||||||
PRIVATE char *s_flags_str(int flags)
|
PRIVATE char *s_flags_str(int flags)
|
||||||
{
|
{
|
||||||
static char str[5];
|
static char str[5];
|
||||||
str[0] = (flags & IN_USE) ? 'U' : '-';
|
str[0] = (flags & RS_IN_USE) ? 'U' : '-';
|
||||||
str[1] = (flags & EXIT_PENDING) ? 'E' : '-';
|
str[1] = (flags & RS_EXITING) ? 'E' : '-';
|
||||||
str[2] = '-';
|
str[2] = '-';
|
||||||
str[3] = '\0';
|
str[3] = '\0';
|
||||||
|
|
||||||
|
@ -7,7 +7,7 @@
|
|||||||
* Apr 29, 2004 by Jorrit N. Herder
|
* Apr 29, 2004 by Jorrit N. Herder
|
||||||
*/
|
*/
|
||||||
|
|
||||||
#include "is.h"
|
#include "inc.h"
|
||||||
|
|
||||||
/* Set debugging level to 0, 1, or 2 to see no, some, all debug output. */
|
/* Set debugging level to 0, 1, or 2 to see no, some, all debug output. */
|
||||||
#define DEBUG_LEVEL 1
|
#define DEBUG_LEVEL 1
|
||||||
@ -64,6 +64,9 @@ PUBLIC int main(int argc, char **argv)
|
|||||||
case FKEY_PRESSED:
|
case FKEY_PRESSED:
|
||||||
result = do_fkey_pressed(&m_in);
|
result = do_fkey_pressed(&m_in);
|
||||||
break;
|
break;
|
||||||
|
case DEV_PING:
|
||||||
|
notify(m_in.m_source);
|
||||||
|
continue;
|
||||||
default:
|
default:
|
||||||
report("IS","warning, got illegal request from:", m_in.m_source);
|
report("IS","warning, got illegal request from:", m_in.m_source);
|
||||||
result = EINVAL;
|
result = EINVAL;
|
||||||
@ -97,7 +100,7 @@ PRIVATE void init_server(int argc, char **argv)
|
|||||||
/* Set key mappings. IS takes all of F1-F12 and Shift+F1-F6. */
|
/* Set key mappings. IS takes all of F1-F12 and Shift+F1-F6. */
|
||||||
fkeys = sfkeys = 0;
|
fkeys = sfkeys = 0;
|
||||||
for (i=1; i<=12; i++) bit_set(fkeys, i);
|
for (i=1; i<=12; i++) bit_set(fkeys, i);
|
||||||
for (i=1; i<= 7; i++) bit_set(sfkeys, i);
|
for (i=1; i<= 8; i++) bit_set(sfkeys, i);
|
||||||
if ((s=fkey_map(&fkeys, &sfkeys)) != OK)
|
if ((s=fkey_map(&fkeys, &sfkeys)) != OK)
|
||||||
report("IS", "warning, fkey_map failed:", s);
|
report("IS", "warning, fkey_map failed:", s);
|
||||||
}
|
}
|
@ -32,3 +32,6 @@ _PROTOTYPE( void fproc_dmp, (void) );
|
|||||||
|
|
||||||
/* dmp_rs.c */
|
/* dmp_rs.c */
|
||||||
_PROTOTYPE( void rproc_dmp, (void) );
|
_PROTOTYPE( void rproc_dmp, (void) );
|
||||||
|
|
||||||
|
/* dmp_ds.c */
|
||||||
|
_PROTOTYPE( void data_store_dmp, (void) );
|
||||||
|
Loading…
x
Reference in New Issue
Block a user