pub unsafe extern "C" fn syncArbitrateAddress(
    addr: *mut s32,
    type_: ArbitrationType,
    value: s32
) -> Result
Expand description

Function used to implement user-mode synchronization primitives.

§Arguments

  • addr - Pointer to a signed 32-bit value whose address will be used to identify waiting threads.
  • type - Type of action to be performed by the arbiter
  • value - Number of threads to signal if using ARBITRATION_SIGNAL, or the value used for comparison.

This will perform an arbitration based on #type. The comparisons are done between #value and the value at the address #addr.

s32 val=0; // Does nothing since val >= 0 syncArbitrateAddress(&val,ARBITRATION_WAIT_IF_LESS_THAN,0);

Note: Usage of this function entails an implicit Data Memory Barrier (dmb).