class ChannelDispatcher
Defined at line 24 of file ../../zircon/kernel/object/include/object/channel_dispatcher.h
Public Methods
zx_obj_type_t get_type ()
Defined at line 33 of file ../../zircon/kernel/object/include/object/channel_dispatcher.h
void CancelMessageWaiters ()
Cancels any channel_call message waiters waiting on this endpoint.
Defined at line 59 of file ../../zircon/kernel/object/include/object/channel_dispatcher.h
MessageCounts get_message_counts ()
Defined at line 118 of file ../../zircon/kernel/object/include/object/channel_dispatcher.h
zx_status_t Create (KernelHandle<ChannelDispatcher> * handle0, KernelHandle<ChannelDispatcher> * handle1, zx_rights_t * rights)
static
Defined at line 219 of file ../../zircon/kernel/object/channel_dispatcher.cc
void ~ChannelDispatcher ()
Defined at line 254 of file ../../zircon/kernel/object/channel_dispatcher.cc
zx_status_t Read (zx_koid_t owner, uint32_t * msg_size, uint32_t * msg_handle_count, MessagePacketPtr * msg, bool may_disard)
Read from this endpoint's message queue.
|owner| is the handle table koid of the process attempting to read from the channel.
|msg_size| and |msg_handle_count| are in-out parameters. As input, they specify the maximum
size and handle count, respectively. On ZX_OK or ZX_ERR_BUFFER_TOO_SMALL, they specify the
actual size and handle count of the next message. The next message is returned in |*msg| on
ZX_OK and also on ZX_ERR_BUFFER_TOO_SMALL when |may_discard| is set.
Defined at line 343 of file ../../zircon/kernel/object/channel_dispatcher.cc
zx_status_t Write (zx_koid_t owner, MessagePacketPtr msg)
Write to the opposing endpoint's message queue. |owner| is the handle table koid of the process
attempting to write to the channel, or ZX_KOID_INVALID if kernel is doing it.
Defined at line 382 of file ../../zircon/kernel/object/channel_dispatcher.cc
zx_status_t Call (zx_koid_t owner, MessagePacketPtr msg, zx_instant_mono_t deadline, MessagePacketPtr * reply)
Perform a transacted Write + Read. |owner| is the handle table koid of the process attempting
to write to the channel, or ZX_KOID_INVALID if kernel is doing it.
Defined at line 417 of file ../../zircon/kernel/object/channel_dispatcher.cc
zx_status_t ResumeInterruptedCall (MessageWaiter * waiter, const Deadline & deadline, MessagePacketPtr * reply)
Performs the wait-then-read half of Call. This is meant for retrying
after an interruption caused by suspending.
Defined at line 519 of file ../../zircon/kernel/object/channel_dispatcher.cc
int64_t get_channel_full_count ()
Returns the number of times a channel reached the max pending message count,
|kMaxPendingMessageCount|.
Defined at line 216 of file ../../zircon/kernel/object/channel_dispatcher.cc
void on_zero_handles_locked ()
PeeredDispatcher implementation.
Defined at line 302 of file ../../zircon/kernel/object/channel_dispatcher.cc
void OnPeerZeroHandlesLocked ()
This requires holding the shared channel lock. The thread analysis
can reason about repeated calls to get_lock() on the shared object,
but cannot reason about the aliasing between left->get_lock() and
right->get_lock(), which occurs above in on_zero_handles.
Defined at line 328 of file ../../zircon/kernel/object/channel_dispatcher.cc
void set_owner (zx_koid_t new_owner)
Defined at line 310 of file ../../zircon/kernel/object/channel_dispatcher.cc