Skip site navigation (1)Skip section navigation (2)
Date:      Tue, 19 Nov 2002 20:46:31 +1100 (EST)
From:      Bruce Evans <bde@zeta.org.au>
To:        Nate Lawson <nate@root.org>
Cc:        Jake Burkholder <jake@FreeBSD.org>, <cvs-all@FreeBSD.org>, <cvs-committers@FreeBSD.org>
Subject:   Re: cvs commit: src/sys/dev/sab sab.c
Message-ID:  <20021119203208.U30290-100000@gamplex.bde.org>
In-Reply-To: <Pine.BSF.4.21.0211182256530.59456-100000@root.org>

next in thread | previous in thread | raw e-mail | index | archive | help
On Mon, 18 Nov 2002, Nate Lawson wrote:

> >  Modified files:
> >    sys/dev/sab          sab.c
> >  Log:
> >  - Add support for ALT_BREAK_TO_DEBUGGER; this is the only reliable way
> > to trigger a breakpoint with this chip.
>
> When I put together the GDB_AUTO_ENTER patch, I made a decision to
> abstract out the state machine.  You pass it a char and it returns 1 if it
> has reached a match or zero otherwise.  If multiple state machines were
> needed (say sio + sab) then the caller would pass in static storage for
> the state (say from the softc).  Since you've duplicated the
> ALT_BREAK_TO_DEBUGGER state machine now, it should probably get moved into
> its own function as well.
>
> One question I had was where such state machines should go.  Since they're
> dependent on DDB, I put mine in db_trap.c.  Ideas?  I think this is a
> useful move since there are UDP-based gdb stubs as well.

The duplication is ugly, but so is looking at the data as it passes by
siointr() is supposed to do only pseudo-dma (*bufptr++ = read_ioreg()
for input, etc.) and everything else in it is a wart at best.  But
we really do want to look at the data at pseudo-dma time for at least
the *BREAK_TO_DEBUGGER cases, since the higher-level interrupt or whatever
that finishes the input may be blocked forever (due to bugs).

There may also be locking problems with a generic routine.  Fast interrupt
handlers need different locking for (the closeure of) everything that
accesses the state.

Bruce


To Unsubscribe: send mail to majordomo@FreeBSD.org
with "unsubscribe cvs-all" in the body of the message




Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?20021119203208.U30290-100000>