The Test and Set Bit with Interlock routine tests and sets a selected bit under memory interlock. LIB$BBSSI makes the VAX BBSSI instruction available as a callable routine. Format LIB$BBSSI position ,bit-zero-address
1 – Returns
OpenVMS usage:longword_unsigned type: longword (unsigned) access: write only mechanism: by value The state of the bit before it was set by LIB$BBSSI: 1 if it was previously set, and 0 if it was previously clear.
2 – Arguments
position OpenVMS usage:longword_signed type: longword integer (signed) access: read only mechanism: by reference Bit position, relative to bit-zero-address, of the bit that LIB$BBSSI tests and sets. The position argument is the address of a signed longword integer containing the bit position. A position of zero denotes the low-order bit of the byte base. The bit position is equal to the offset of the bit chosen from the base position. This offset may span the entire range of a signed longword integer; negative offsets access bits in lower addressed bytes. bit-zero-address OpenVMS usage:unspecified type: address access: read only mechanism: by value Address of the byte containing bit 0 of the field that LIB$BBSSI references. The bit-zero-address argument is the location of the base position. The bit that LIB$BBSSI tests and sets is position bits offset from the low bit of bit-zero-address.