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);
 | 
					 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					  for(h=0; h < NHOOKS; h++)
 | 
				
			||||||
 | 
					      printf(" %10s.  %s\n", key_name(hooks[h].key), hooks[h].name);
 | 
				
			||||||
  printf("\n");
 | 
					  printf("\n");
 | 
				
			||||||
 | 
					 | 
				
			||||||
	return;
 | 
					 | 
				
			||||||
}
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
				
			|||||||
							
								
								
									
										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