Hello,

I'm trying to understand the EHCI hcd code in Linux.

I don't understand the structure of Queue Head links. If there are
Queue heads: QH1, QH2, QH3, ... in the asynchronous list, is it such
that:

AsyncListAddress == AddressOf(QH1)
QH1->horiz == QH2
QH2->horiz == QH3
QH3->horiz == QH1

Also is it such that QHs are ordered sequentially in memory? I mean,
if you move sizeof(QH) forward from QH1's address, would you reach
QH2's address?

If the queue heads are in the asynchronous list, where are the QTDs?
Are they pointed at in some arbitrary memory address allocated by
kmalloc? The buffers pointed by QTDs can sometimes be cached by the
host controller for data transfers, and the asynchronous list can also
be cached which contains only Queue Heads. But what happens to QTDs
then?

If I can understand the memory structure it will help a lot in
understanding the code.

Many thanks,
Bahadir


-------------------------------------------------------
SF.Net email is sponsored by: Tell us your software development plans!
Take this survey and enter to win a one-year sub to SourceForge.net
Plus IDC's 2005 look-ahead and a copy of this survey
Click here to start!  http://www.idcswdc.com/cgi-bin/survey?id5hix
_______________________________________________
[email protected]
To unsubscribe, use the last form field at:
https://lists.sourceforge.net/lists/listinfo/linux-usb-users

Reply via email to