Hi!

I want to discuss the design of FindDevice/FindClass APIs.

I have to options. First use a zero-based index to get multiple matches e.g.
FindDevice (0x1000, -1, FIND_STRAIGHT, 0) would get the 1st device
FindDevice (0x1000, -1, FIND_STRAIGHT, 1) would get the 2nd device and so on.

Or via LastMatch HWDeviceID which would give a slight performance increase, because i 
could directly 
match the HWDeviceID first (this would also work via internal cache) and then search 
from that position w/o 
going through all Base-Block-Area-Segments e.g.
HWDeviceID = FindDevice(0x1000, -1, FIND_STRAIGHT, 0) would get the 1st device
NextHWDeviceID = FindDevice(0x1000, -1, FIND_STRAIGHT, HWDeviceID) would get the 2nd.

What do you think?

I also think that the Base-Block access APIs (for searches described by Dani) should 
copy out the 
Base-Blocks to a caller supplied buffer. This needs to get done imho, because the 
device could get detached 
and the Base-Block could get overwritten with a different one, so a pointer wouldn't 
work. The base-block is 
only 64bytes, so this should be fine. The other option would be to offer 2 separate 
APIs. One that would only 
allow access to fixed HWDevices and giving back a pointer. The other one for hotplug 
devices that would 
copy over. Also one could remove hotplug device support for this, because the 
attachment messages already 
contain a pointer to the base-block (which is okay, because the pointer is true at 
least till hotplug notification 
is done, even if the hotplug device gets unplugged during that notification).

Getting the full detection area from Ring-3 (application!) will get somewhat tricky. 
The current method is 
opening gconfig$ and reading till EOF. Now, that the detection area is not linear 
anymore, I will have to 
transfer single base-blocks only and remember the last Base-Block position (aka 
Base-Block Index) that got 
read out, so if a device detach occurs during read-out, the data won't get mangled up. 
The read-out 
detection area will be linear again that way and built up like the original one.

cu, Kiewitz


-----------
To unsubscribe yourself from this list, send the following message
to [EMAIL PROTECTED]

     unsubscribe acpi-os2
     end

Reply via email to