Subject: implementing azalia_mappage()
To: None <tech-kern@netbsd.org>
From: Blair Sadewitz <blair.sadewitz@gmail.com>
List: tech-kern
Date: 02/18/2007 22:21:46
I'd like to implement this as a programming exercise (I am teaching
myself C so please bear with me) and so I can use certain audio
applications that only work properly with this functionality.

However, I'm confused as to what exactly needs to be mapped.  My guess
is that the "stream" in use needs to be mapped; is this correct?  From
what I gather from reading the code, the stream is sent to the codec,
so if this is mapped everything should work.  However, I can't open
PDFs right now so I it's a bit hard to read the intel HDA spec.  I've
never written this sort of code before so some clarification would be
helpful anyway.

So I think I need to first check to see if the address given matches
either "pstream" or "rstream" (I dont know what these actually are
though, heh).  However, I am then unclear about what needs to be done
because I dont know how the "bdlist" fits into this.  I have a vague
intuition that I need to use LIST_FOREACH to iterate through a list of
addresses, but I don't know which list or how--if it even makes sense
in this context--this address relates to that which is  returned by
the AZALIA_DMA_DMADDR macro.

What I've written may not make much sense, so I apologize, but whether
I do it or someone else does, I'd like to see this have mmap support
if possible, as I know other operating systems do it.

Regards,

--Blair


--
Support WFMU-FM: free-form radio for the masses!
<http://www.wfmu.org/>

"The frivolity and boredom which unsettle the established order, the
vague foreboding of something unknown, these are the heralds of
approaching change.  The gradual crumbling that left unaltered the the
face of the whole is cut short by a sunburst which, in one flash,
illuminates the features of the new world."  --G.W.F. Hegel,
_Phenomenology of Spirit_ 5:11