|
Public Member Functions |
bool | sender_ok (const Sender *sender) const |
| Return whether the receiver is ready to accept a message from the given sender.
|
void | deny_lipc () |
| Dummy function, needed to keep code in Thread generic.
|
void | deny_lipc_snd () |
| Dummy function, needed to keep code in Thread generic.
|
Sys_ipc_frame * | rcv_regs () const |
| Return a reference to receiver's IPC registers.
|
void | set_pagein_request (Address address, Mword error_code, Thread *notify) |
| Send page-in request.
|
bool | in_long_ipc (Sender *sender) const |
| Return whether the receiver is still engaged in a long IPC with a sender.
|
Sender ** | sender_list () |
| Head of sender list.
|
void | set_timeout (Timeout *t) |
void | reset_timeout () |
int | ipc_try_lock (const Sender *sender) |
| Try to start an IPC handshake with this receiver.
|
void | ipc_init (Sender *sender) |
| Initiates a receiving IPC and updates the ipc partner.
|
void | ipc_unlock () |
| Unlock a receiver locked with ipc_try_lock().
|
Protected Member Functions |
void | maybe_enable_lipc () |
| Dummy function, needed to keep code in Thread generic.
|
void | allow_lipc () |
| Dummy function, needed to keep code in Thread generic.
|
| Receiver (Thread_lock *thread_lock, Space *space, unsigned short prio, unsigned short mcp, Unsigned64 quantum) |
| Constructor.
|
Sender * | partner () const |
| IPC partner (sender).
|
void | restore_receiver_state (Sender *partner, Sys_ipc_frame *regs) |
| Restore a saved IPC state to restart a suspended IPC.
|
void | save_receiver_state (Sender **out_partner, Sys_ipc_frame **out_regs) |
| Save IPC state to allow later restart a suspended IPC.
|
void | clear_pagein_request () |
| Reset the current page-in request.
|
Address | pagein_addr () const |
| Return current page-in address.
|
Mword | pagein_error_code () const |
| Return current page-in error code.
|
Thread * | pagein_applicant () |
| Return current requestor of a page-in.
|
void | set_rcv_regs (Sys_ipc_frame *regs) |
void | set_partner (Sender *partner) |
| Set the IPC partner (sender).
|
void | setup_receiver (Sender *sender, Sys_ipc_frame *regs) |
| Convenience function: Set up a receiving IPC and add the corresponding state.
|
unsigned | setup_receiver_state (Sender *sender, Sys_ipc_frame *regs, bool=false) |
| Set up a receiving IPC.
|
void | reload_ip_sp_from_utcb () |
| Dummy function, needed to keep code in Thread generic.
|
Protected Attributes |
Timeout * | _timeout |
Private Attributes |
Sender * | _partner |
Sys_ipc_frame * | _rcv_regs |
Address | _pagein_addr |
Mword | _pagein_error_code |
Thread * | _pagein_applicant |
Sender * | _sender_first |
This is a role class, and real receiver's must inherit from it. The protected interface is intended for the receiver, and the public interface is intended for the sender.