pub fn send_ipc(target: TaskHandle, length: u8) -> StatusExpand description
Send events to another job identified by its handle
§description
This syscall emit a short message through the SVC Exchange memory that target another job identified by its handle.
The IPC message content must be stored ‘as is’ in the SVC exchange memory before calling this syscall. The message length must be shorter than the SVC Exchange area.
send_ipc() is a blocking syscall. The current job is preempted and will
be eligible again only if:
- the target job reads the IPC content using
wait_for_event - the target job terminates
This syscall synchronously returns Status::Invalid If the target job handle
is not found.
This syscall synchronously returns Status::Invalid if the specified message len
is bigger than
This syscall returns Status::Intr if the target terminates while the IPC
message is not yet read.
This syscall returns Status::Ok once the target as read the IPC message.
Note: This syscall do not clear the SVC Exchange area.
There is no timeout notion in IPC emission, meaning that a given job can stay in a blocking state forever while the target neither read the emitted IPC nor terminates.
§examples
uapi::send_ipc(TargetTaskh, IpcLen)?continue_here;