@ -40,8 +40,15 @@ public:
AddressArbiter ( AddressArbiter & & ) = default ;
AddressArbiter & operator = ( AddressArbiter & & ) = delete ;
/// Signals an address being waited on with a particular signaling type.
ResultCode SignalToAddress ( VAddr address , SignalType type , s32 value , s32 num_to_wake ) ;
/// Waits on an address with a particular arbitration type.
ResultCode WaitForAddress ( VAddr address , ArbitrationType type , s32 value , s64 timeout_ns ) ;
private :
/// Signals an address being waited on.
ResultCode SignalToAddress ( VAddr address , s32 num_to_wake ) ;
ResultCode SignalToAddress Only ( VAddr address , s32 num_to_wake ) ;
/// Signals an address being waited on and increments its value if equal to the value argument.
ResultCode IncrementAndSignalToAddressIfEqual ( VAddr address , s32 value , s32 num_to_wake ) ;
@ -51,10 +58,6 @@ public:
ResultCode ModifyByWaitingCountAndSignalToAddressIfEqual ( VAddr address , s32 value ,
s32 num_to_wake ) ;
/// Waits on an address with a particular arbitration type.
ResultCode WaitForAddress ( VAddr address , ArbitrationType type , s32 value , s64 timeout_ns ) ;
private :
/// Waits on an address if the value passed is less than the argument value,
/// optionally decrementing.
ResultCode WaitForAddressIfLessThan ( VAddr address , s32 value , s64 timeout ,