Hi!

I just changed a bit in the accessing scheme. Previously I would have needed to 
disable interrupts as soon as 
I read or modified a BASE or SUB-Block. I have now implemented a usage field, so this 
odd behaviour is not 
needed anymore.

This also means that I can offer an API for direct accessing BASE and SUB-Blocks via 
pointers.
Usage would be done that way:

AREA_GetPtrToBASEBlock (HWDeviceID) -> Replies a pointer to the specified BASE-Block
AREA_ProcDoneBASEBlock (HWDeviceID) -> Needs to get called after reading/modifying is 
done
AREA_GetPtrToSUBBlock (HWDeviceID, &SUBBlockSize) -> Replies a pointer to the linear 
SUB-Block and 
filles SUBBlockSize with the current size of the SUB-block
AREA_ProcDoneSUBBlock (HWDeviceID)

The latter would also mark the BASE-Block in use, because otherwise the BASE-Block 
could get killed while 
the SUB-Block would still be accessible (this problem only occurs, because of 
addressing via HWDeviceID). 
There will be also some basic enumeration routines. I'm not sure how to implement 
those. They will be meant 
for cycling through the BASE-Block area meant for customized enumeration. Perhaps this 
will be done by 
using pointer to an index that will get incremented on every getpointer-call.

Also the routines will (of course) reply a linear address under 32-bit PM and a 
selector:offset address under 
16-bit PM. Perhaps there should be a separate APIs so that Dani will get linear 
address in 16-bit PM as well?

So no copying anymore. I didn't like that idea the whole time.

cu, Kiewitz


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

     unsubscribe acpi-os2
     end

Reply via email to