4 * Implements Inlines for LWKT messages and ports.
6 * $DragonFly: src/sys/sys/msgport2.h,v 1.15 2007/05/24 20:51:19 dillon Exp $
9 #ifndef _SYS_MSGPORT2_H_
10 #define _SYS_MSGPORT2_H_
14 #error "This file should not be included by userland programs."
18 #ifndef _SYS_THREAD2_H_
19 #include <sys/thread2.h>
23 * Initialize a LWKT message structure. Note that if the message supports
24 * an abort MSGF_ABORTABLE must be passed in flags.
26 * Note that other areas of the LWKT msg may already be initialized, so we
27 * do not zero the message here.
29 * Messages are marked as DONE until sent.
33 lwkt_initmsg(lwkt_msg_t msg
, lwkt_port_t rport
, int flags
)
35 msg
->ms_flags
= MSGF_DONE
| flags
;
36 msg
->ms_reply_port
= rport
;
41 lwkt_initmsg_abortable(lwkt_msg_t msg
, lwkt_port_t rport
, int flags
,
42 void (*abortfn
)(lwkt_msg_t
))
44 lwkt_initmsg(msg
, rport
, flags
| MSGF_ABORTABLE
);
45 msg
->ms_abortfn
= abortfn
;
50 lwkt_beginmsg(lwkt_port_t port
, lwkt_msg_t msg
)
52 return(port
->mp_putport(port
, msg
));
57 lwkt_replymsg(lwkt_msg_t msg
, int error
)
61 msg
->ms_error
= error
;
62 port
= msg
->ms_reply_port
;
63 port
->mp_replyport(port
, msg
);
68 lwkt_getport(lwkt_port_t port
)
70 return(port
->mp_getport(port
));
75 lwkt_waitport(lwkt_port_t port
, int flags
)
77 return(port
->mp_waitport(port
, flags
));
82 lwkt_waitmsg(lwkt_msg_t msg
, int flags
)
84 return(msg
->ms_reply_port
->mp_waitmsg(msg
, flags
));
90 lwkt_checkmsg(lwkt_msg_t msg
)
92 return(msg
->ms_flags
& MSGF_DONE
);
96 #endif /* _SYS_MSGPORT2_H_ */