@ -40,8 +40,15 @@ public:
AddressArbiter ( AddressArbiter & & ) = default ;
AddressArbiter ( AddressArbiter & & ) = default ;
AddressArbiter & operator = ( AddressArbiter & & ) = delete ;
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 .
/ / / Signals an address being waited on .
ResultCode SignalToAddress ( VAddr address , s32 num_to_wake ) ;
ResultCode SignalToAddressOnly ( VAddr address , s32 num_to_wake ) ;
/ / / Signals an address being waited on and increments its value if equal to the value argument .
/ / / 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 ) ;
ResultCode IncrementAndSignalToAddressIfEqual ( VAddr address , s32 value , s32 num_to_wake ) ;
@ -51,10 +58,6 @@ public:
ResultCode ModifyByWaitingCountAndSignalToAddressIfEqual ( VAddr address , s32 value ,
ResultCode ModifyByWaitingCountAndSignalToAddressIfEqual ( VAddr address , s32 value ,
s32 num_to_wake ) ;
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 ,
/ / / Waits on an address if the value passed is less than the argument value ,
/ / / optionally decrementing .
/ / / optionally decrementing .
ResultCode WaitForAddressIfLessThan ( VAddr address , s32 value , s64 timeout ,
ResultCode WaitForAddressIfLessThan ( VAddr address , s32 value , s64 timeout ,