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