L4Re Operating System Framework
Interface and Usage Documentation
|
Class wrapping a list of rules which modify the sender label of IPC messages inbound to this thread. More...
#include <thread>
Public Member Functions | |
int | add (l4_umword_t match_mask, l4_umword_t match, l4_umword_t del_bits, l4_umword_t add_bits) noexcept |
Add a rule. | |
Class wrapping a list of rules which modify the sender label of IPC messages inbound to this thread.
Use the add() function to add modification rules, and use modify_senders() to commit. Do not use the UTCB in between as it is used by add() and modify_senders().
This mechanism shall be used to change the source object labels of every pending IPC of an IPC gate or an IRQ if the labels in such pending IPC become invalid for the receiving thread, potentially because:
It is not required to perform the modify_sender mechanism after an IPC gate or an IRQ was bound to a thread for the first time.
|
inlinenoexcept |
Add a rule.
match_mask | Bitmask of bits to match the label. |
match | Bitmask that must be equal to the label after applying match_mask. |
del_bits | Bits to be deleted from the label. |
add_bits | Bits to be added to the label. |
In pseudo code: if ((sender_label & match_mask) == match) { sender_label = (sender_label & ~del_bits) | add_bits; }
Only the first match is applied.
Definition at line 468 of file thread.
References L4_ENOMEM, and l4_msg_regs_t::mr.
Referenced by L4Re::Util::Object_registry::unregister_obj().