#ifndef MANGO_MSG_H_ #define MANGO_MSG_H_ #include #include extern kern_status_t channel_create( unsigned int id, channel_flags_t flags, kern_handle_t *out); extern kern_status_t port_create(kern_handle_t *out); extern kern_status_t port_connect( kern_handle_t port, tid_t task_id, unsigned int channel_id); extern kern_status_t port_disconnect(kern_handle_t port); extern kern_status_t msg_send( kern_handle_t port, msg_flags_t flags, const struct msg *req, struct msg *resp); extern kern_status_t msg_recv( kern_handle_t channel, msg_flags_t flags, msgid_t *out_id, struct msg *out_msg); extern kern_status_t msg_reply( kern_handle_t channel, msg_flags_t flags, msgid_t id, const struct msg *reply); extern kern_status_t msg_read( kern_handle_t channel, msgid_t id, size_t offset, struct iovec *out, size_t nr_out); extern kern_status_t msg_read_handles( kern_handle_t channel, msgid_t id, size_t offset, struct handle_list *out, size_t nr_out); extern kern_status_t msg_write( kern_handle_t channel, msgid_t id, size_t offset, const struct iovec *in, size_t nr_in); extern kern_status_t msg_write_handles( kern_handle_t channel, msgid_t id, size_t offset, const struct handle_list *in, size_t nr_in); #endif