Version 6 (modified by ezpresso, 13 years ago) |
---|
IEEE 1394 bus programming
Back to /wiki
libraw1394
Documentation: [http://www.dennedy.org/libraw1394/introduction.html]
Function reference: [http://www.dennedy.org/libraw1394/functions.html]
FAQ
What does the "raw1394_start_lock64" function that "initiates a 64-bit compare-swap lock transaction" actually do?
It initiates a 64-bit compare-swap lock transaction as defined in IEEE 1212. :-) This is needed for atomic manipulations of registers.
This transaction contains an "argument" and a "data" value. Both values and the targeted register are 64 bits wide.
- If the argument matches the old value of the register, data gets written into the register.
- Otherwise, the register remains unchanged.
The old value of the register is returned in the transaction response.
This kind of access is in other contexts also known as compare-exchange function. It allows a register to be consistently updated by multiple concurrent requesters.