1 /* 2 * SYS/MSGPORT2.H 3 * 4 * Implements Inlines for LWKT messages and ports. 5 * 6 * $DragonFly: src/sys/sys/msgport2.h,v 1.3 2003/08/12 02:36:15 dillon Exp $ 7 */ 8 9 #ifndef _SYS_MSGPORT2_H_ 10 #define _SYS_MSGPORT2_H_ 11 12 static __inline 13 void 14 lwkt_initmsg(lwkt_msg_t msg, lwkt_port_t rport, int cmd) 15 { 16 msg->ms_cmd = cmd; 17 msg->ms_flags = MSGF_DONE; 18 msg->ms_reply_port = rport; 19 msg->ms_cleanupmsg = NULL; 20 } 21 22 static __inline 23 void 24 lwkt_reinitmsg(lwkt_msg_t msg, lwkt_port_t rport) 25 { 26 msg->ms_flags = (msg->ms_flags & MSGF_ASYNC) | MSGF_DONE; 27 msg->ms_reply_port = rport; 28 msg->ms_cleanupmsg = NULL; 29 } 30 31 #ifdef _KERNEL 32 33 static __inline 34 int 35 lwkt_beginmsg(lwkt_port_t port, lwkt_msg_t msg) 36 { 37 return(port->mp_beginmsg(port, msg)); 38 } 39 40 static __inline 41 int 42 lwkt_forwardmsg(lwkt_port_t port, lwkt_msg_t msg) 43 { 44 return(port->mp_beginmsg(port, msg)); 45 } 46 47 static __inline 48 void 49 lwkt_abortmsg(lwkt_port_t port, lwkt_msg_t msg) 50 { 51 port->mp_abortmsg(port, msg); 52 } 53 54 static __inline 55 void 56 lwkt_replymsg(lwkt_msg_t msg, int error) 57 { 58 lwkt_port_t port = msg->ms_reply_port; 59 msg->ms_error = error; 60 port->mp_returnmsg(port, msg); 61 } 62 63 #endif 64 65 #endif 66