12 #ifndef INCLUDE_DISTORTOS_INTERNAL_SYNCHRONIZATION_SIGNALSRECEIVERCONTROLBLOCK_HPP_ 13 #define INCLUDE_DISTORTOS_INTERNAL_SYNCHRONIZATION_SIGNALSRECEIVERCONTROLBLOCK_HPP_ 17 #if DISTORTOS_SIGNALS_ENABLE == 1 29 class SignalInformation;
30 class SignalInformationQueueWrapper;
36 class SignalInformationQueue;
37 class SignalsCatcherControlBlock;
38 class ThreadControlBlock;
125 std::pair<int, SignalAction>
getSignalAction(uint8_t signalNumber)
const;
272 #endif // DISTORTOS_SIGNALS_ENABLE == 1 274 #endif // INCLUDE_DISTORTOS_INTERNAL_SYNCHRONIZATION_SIGNALSRECEIVERCONTROLBLOCK_HPP_
std::pair< int, SignalAction > setSignalAction(uint8_t signalNumber, const SignalAction &signalAction)
Sets association for given signal number.
Definition: SignalsReceiverControlBlock.cpp:164
ThreadControlBlock class is a simple description of a Thread.
Definition: ThreadControlBlock.hpp:39
SignalsCatcherControlBlock class is a structure required by threads for "catching" and "handling" of ...
Definition: SignalsCatcherControlBlock.hpp:33
SignalsReceiverControlBlock(SignalInformationQueueWrapper *signalInformationQueueWrapper, SignalsCatcher *signalsCatcher)
SignalsReceiverControlBlock's constructor.
Definition: SignalsReceiverControlBlock.cpp:36
void setWaitingSignalSet(const SignalSet *const signalSet)
Definition: SignalsReceiverControlBlock.hpp:196
SignalInformationQueue * signalInformationQueue_
pointer to SignalInformationQueue for this receiver, nullptr if this receiver cannot queue signals
Definition: SignalsReceiverControlBlock.hpp:265
int deliveryOfSignalsStartedHook() const
Hook function executed when delivery of signals is started.
Definition: SignalsReceiverControlBlock.cpp:68
SignalsReceiverControlBlock class is a structure required by threads for "receiving" of signals.
Definition: SignalsReceiverControlBlock.hpp:41
void afterGenerateQueueUnlocked(uint8_t signalNumber, ThreadControlBlock &threadControlBlock) const
Actions executed out of critical section after signal is generated with generateSignal() or queued wi...
Definition: SignalsReceiverControlBlock.cpp:220
std::pair< int, SignalInformation > acceptPendingSignal(uint8_t signalNumber)
Accepts (clears) one of signals that are pending.
Definition: SignalsReceiverControlBlock.cpp:50
int setSignalMask(SignalSet signalMask, bool deliver)
Sets signal mask for associated thread.
Definition: SignalsReceiverControlBlock.cpp:184
SignalsCatcherControlBlock * signalsCatcherControlBlock_
pointer to SignalsCatcherControlBlock for this receiver, nullptr if this receiver cannot catch/handle...
Definition: SignalsReceiverControlBlock.hpp:262
SignalSet class is used as a set of signals.
Definition: SignalSet.hpp:28
Top-level namespace of distortos project.
Definition: buttons.hpp:33
SignalSet getSignalMask() const
Gets signal mask for associated thread.
Definition: SignalsReceiverControlBlock.cpp:121
void afterGenerateQueueLocked(uint8_t signalNumber, ThreadControlBlock &threadControlBlock) const
Actions executed from within critical section after signal is generated with generateSignal() or queu...
Definition: SignalsReceiverControlBlock.cpp:197
SignalSet pendingSignalSet_
set of pending signals
Definition: SignalsReceiverControlBlock.hpp:256
std::pair< int, bool > isSignalIgnored(uint8_t signalNumber) const
Checks whether signal is ignored.
Definition: SignalsReceiverControlBlock.cpp:250
const SignalSet * waitingSignalSet_
pointer to set of "waited for" signals, nullptr if associated thread is not waiting for any signals
Definition: SignalsReceiverControlBlock.hpp:259
SignalAction class contains information needed to handle signal that was caught.
Definition: SignalAction.hpp:30
SignalSet getPendingSignalSet() const
Definition: SignalsReceiverControlBlock.cpp:103
std::pair< int, SignalAction > getSignalAction(uint8_t signalNumber) const
Gets SignalAction associated with given signal number.
Definition: SignalsReceiverControlBlock.cpp:113
int queueSignal(uint8_t signalNumber, sigval value, ThreadControlBlock &threadControlBlock) const
Queues signal for associated thread.
Definition: SignalsReceiverControlBlock.cpp:129
int generateSignal(uint8_t signalNumber, ThreadControlBlock &threadControlBlock)
Generates signal for associated thread.
Definition: SignalsReceiverControlBlock.cpp:77
SignalsCatcher class is a container for internal::SignalsCatcherControlBlock.
Definition: SignalsCatcher.hpp:32
int beforeGenerateQueue(uint8_t signalNumber, ThreadControlBlock &threadControlBlock) const
Actions executed before signal is generated with generateSignal() or queued with queueSignal().
Definition: SignalsReceiverControlBlock.cpp:235