Subject: Re: bus_dmamap_load: struct proc *p: finding process p
To: None <tech-kern@NetBSD.org>
From: David Young <dyoung@pobox.com>
List: tech-kern
Date: 10/04/2004 11:41:50
On Mon, Oct 04, 2004 at 04:36:49PM +0000, Sam Thigpen wrote:
> On Mon, 4 Oct 2004, David Young wrote:
> >You're reading the wrong code. In the #ifdef __NetBSD__ portion, it says:
> >
> > if ((error = bus_dmamap_load(sc->sc_dmat, sc->sc_ddmamap,
> > sc->sc_desc,
> > sc->sc_desc_len, NULL, 0)) != 0) {
> > printf("%s: unable to load control data DMA map, error =
> > %d\n",
> > sc->sc_dev.dv_xname, error);
> > goto fail3;
> > }
>
> So for NetBSD the buffer is typically in kernel space by default? Are
> there cases where it isn't?
>
In this case, bus_dmamap_load operates on the Tx/Rx descriptor rings.
The rings are shared between the kernel and the adapter; they are not
shared with userland.
Dave
--
David Young OJC Technologies
dyoung@ojctech.com Urbana, IL * (217) 278-3933