[comp.unix.i386] DMA with driver for AT bus

segedy@cspi.com (Cathy Segedy) (02/27/90)

Hello.
	Sorry about the strange combo of newsgroups I'm posting to, but I
wasn't sure where to ask this.
	I am trying to write a device driver for a device on an AT-bus on
a 386 machine running Unix sysV 3.2.  The device has some memory, and I
would like to use one of the dma controllers which come standard with the
machine to get at that memory.  My question is several-fold.  The first
problem should be fairly simple.  When you are in your driver WRITE routine
(or READ routine), how do you get access to the address being written to
on the device?  (Most other unix drivers have more parameters to the
write.  The 386 drivers only have the device number as a paramater.).  My
next questions are specifically about the DMA controller.  It looks to
me like a dmareq structure only holds one address.  Is that the host
address, or the device address?  And, is the d_proc() pointer in the dmareq
structure supposed to point to a routine which I write to tell the DMA to
do the transfer?  If so, how do I tell the DMA controller to do the
transfer?  Also, if so, I assume that this means I can pass the missing
address as a parameter to the d_proc() routine?
	I hope what I am asking is clear, especially since I feel rather
confused.  Oh, I read AT&T's driver manual(s), and am still confused, so
please don't send me to those.
	I'd rather people sent mail to me, rather than post, since this is
rather specific.  Also please don't do a 'reply', as the return path for news
doesn't work.

					thanks in advance, cathy segedy

	decvax!cspi!segedy	| note: don't use .com after cspi.  It will
	apollo!cspi!segedy	| just get lost.
	uunet!tci!cspi!segedy

-- 
decvax!cspi!segedy		|	C++ hackers have more class
apollo!cspi!segedy		|
uunet!tci!cspi!segedy		|