kernel: implement sending, receiving, and replying to message via port/channel
This commit is contained in:
@@ -15,6 +15,7 @@ struct channel {
|
||||
};
|
||||
|
||||
extern kern_status_t channel_type_init(void);
|
||||
extern struct channel *channel_cast(struct object *obj);
|
||||
|
||||
extern struct channel *channel_create(void);
|
||||
|
||||
|
||||
@@ -23,8 +23,8 @@ struct kmsg {
|
||||
kern_status_t msg_result;
|
||||
struct port *msg_sender_port;
|
||||
struct thread *msg_sender_thread;
|
||||
const struct msg *msg_req;
|
||||
struct msg *msg_resp;
|
||||
struct msg msg_req;
|
||||
struct msg msg_resp;
|
||||
};
|
||||
|
||||
#endif
|
||||
|
||||
@@ -29,10 +29,12 @@ extern struct port *port_cast(struct object *obj);
|
||||
extern struct port *port_create(void);
|
||||
|
||||
extern kern_status_t port_connect(struct port *port, struct channel *remote);
|
||||
extern kern_status_t port_disconnect(struct port *port);
|
||||
extern kern_status_t port_send_msg(
|
||||
struct port *port,
|
||||
const struct msg *req,
|
||||
struct msg *resp);
|
||||
struct msg *resp,
|
||||
unsigned long *lock_flags);
|
||||
|
||||
DEFINE_OBJECT_LOCK_FUNCTION(port, p_base)
|
||||
|
||||
|
||||
Reference in New Issue
Block a user