ipkdb_trap man page on NetBSD

Man page or keyword search:  
man Server   9087 pages
apropos Keyword Search (all sections)
Output format
NetBSD logo
[printable version]

IPKDB(9)		 BSD Kernel Developer's Manual		      IPKDB(9)

NAME
     ipkdb — machine-dependent interface to ipkdb

SYNOPSIS
     #include <ipkdb/ipkdb.h>

     void
     ipkdb_init(void);

     void
     ipkdb_connect(int when);

     int
     ipkdbcmds(void);

     void
     ipkdbinit(void);

     void
     ipkdb_trap(void);

     int
     ipkdb_poll(void);

     int
     ipkdbif_init(struct ipkdb_if *kip);

     int
     ipkdbfbyte(u_char *c);

     int
     ipkdbsbyte(u_char *c, int i);

DESCRIPTION
     The machine-dependent code must support this interface for operation with
     ipkdb(4).

     During system bootstrap, machine-dependent code must invoke ipkdb_init().
     If the kernel is booted with RB_KDB set in boothowto (see boothowto(9)),
     ipkdb(4) is enabled by invoking ipkdb_connect(), setting the when argu‐
     ment to 0.

     ipkdbcmds() is invoked by machine-dependent code when the trap mechanism
     determines that the debugger should be entered, i.e., on a single step or
     breakpoint interrupt from kernel code.  The trapping mechanism should
     already have stored the registers into the global area ipkdbregs.	The
     layout of this area must be the same as that expected by gdb(1).  Valid
     return values are:

	   IPKDB_CMD_RUN     user wants to continue
	   IPKDB_CMD_STEP    user wants to do single stepping
	   IPKDB_CMD_EXIT    user has detached from debugging

FUNCTIONS
     The machine-dependent code must provide the following functions for the
     machine-independent code.
     ipkdbinit()	  This routine gets called when the debugger should be
			  entered for the first time.
     ipkdb_trap()	  This routine is part of the trap handler.  Whenever
			  a trap happens (e.g., when hitting a breakpoint dur‐
			  ing debugging), ipkdb_trap() decides if the Debugger
			  needs to be called.  If there are other ways to
			  decide that, it's not necessary to provide an
			  ipkdb_trap() implementation.
     ipkdb_poll()	  This routine gets called after a panic to check for
			  a key press by the user.  If implemented it allows
			  the user to press any key on the console to do the
			  automatic reboot after a panic.  Otherwise the
			  debugging interface will wait forever for some
			  remote debugger to attach in case of a panic.
     ipkdbif_init(kip)	  In order to be able to find the debugging interface,
			  the network driver must invoke ipkdbif_init() with
			  kip specifying a struct ipkdb_if plus some addi‐
			  tional parameters that allow it to access the
			  devices registers, hopefully using bus_space(9)
			  methods.  In the ipkdb_if structure, the attach rou‐
			  tine must initialize the following fields:

				myenetaddr  fill this with the own ethernet
					    address of the device/machine
				flags	    mark at least IPKDB_MYHW here
				name	    name of the device, only used for
					    a message
				start	    routine called every time ipkdb is
					    entered
				leave	    routine called every time ipkdb is
					    left
				receive	    routine called to receive a packet
				send	    routine called to send a packet

			  Additional fields that may be set are:

				myinetaddr  fill this with the own internet
					    address, and mark IPKDB_MYIP in
					    flags
				port	    may be used as a pointer to some
					    device
     ipkdbfbyte(c)	  This routine should fetch a byte from address c.  It
			  must not enter any trap handling code, but instead
			  return -1 on inability to access the data.
     ipkdbsbyte(c, i)	  This routine should set the byte pointed to by c to
			  the value given as i.	 The routine must not enter
			  any trap handling code.  Furthermore it should reset
			  the modification bit in the relevant page table
			  entry to the value before the store.

SEE ALSO
     ipkdb(4), boothowto(9)

BSD			       September 4, 2009			   BSD
[top]
                             _         _         _ 
                            | |       | |       | |     
                            | |       | |       | |     
                         __ | | __ __ | | __ __ | | __  
                         \ \| |/ / \ \| |/ / \ \| |/ /  
                          \ \ / /   \ \ / /   \ \ / /   
                           \   /     \   /     \   /    
                            \_/       \_/       \_/ 
More information is available in HTML format for server NetBSD

List of man pages available for NetBSD

Copyright (c) for man pages and the logo by the respective OS vendor.

For those who want to learn more, the polarhome community provides shell access and support.

[legal] [privacy] [GNU] [policy] [cookies] [netiquette] [sponsors] [FAQ]
Tweet
Polarhome, production since 1999.
Member of Polarhome portal.
Based on Fawad Halim's script.
....................................................................
Vote for polarhome
Free Shell Accounts :: the biggest list on the net