64 lines
1.3 KiB
C
64 lines
1.3 KiB
C
#ifndef MANGO_MSG_H_
|
|
#define MANGO_MSG_H_
|
|
|
|
#include <mango/status.h>
|
|
#include <mango/types.h>
|
|
|
|
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 out_count,
|
|
size_t *nr_read);
|
|
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
|