#ifndef MANGO_MSG_H_ #define MANGO_MSG_H_ #include #include extern kern_status_t channel_create(unsigned int id, 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, const struct iovec *req_data, size_t req_data_count, struct iovec *resp_data, size_t resp_data_count); extern kern_status_t msg_recv( kern_handle_t channel, msgid_t *out_id, struct iovec *out_data, size_t out_data_count); extern kern_status_t msg_reply( kern_handle_t channel, msgid_t id, const struct iovec *reply_data, size_t reply_data_count); extern kern_status_t msg_read( kern_handle_t channel, msgid_t id, size_t offset, struct iovec *out, size_t out_count, size_t *nr_read); extern kern_status_t msg_write( kern_handle_t channel, msgid_t id, size_t offset, const struct iovec *in, size_t nr_in, size_t *nr_written); #endif