Try to catch mbuf cluster mclfree list corruption a little earlier with
[dragonfly.git] / sys / sys / msgport2.h
1 /*
2  * SYS/MSGPORT2.H
3  *
4  *      Implements Inlines for LWKT messages and ports.
5  * 
6  * $DragonFly: src/sys/sys/msgport2.h,v 1.5 2003/11/24 20:46:05 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_msgsize = 0;
20     msg->ms_maxsize = 0;
21 }
22
23 static __inline
24 void
25 lwkt_reinitmsg(lwkt_msg_t msg, lwkt_port_t rport)
26 {
27     msg->ms_flags = (msg->ms_flags & MSGF_ASYNC) | MSGF_DONE;
28     msg->ms_reply_port = rport;
29 }
30
31 static __inline
32 int
33 lwkt_beginmsg(lwkt_port_t port, lwkt_msg_t msg)
34 {
35     return(port->mp_putport(port, msg));
36 }
37
38 static __inline
39 int
40 lwkt_forwardmsg(lwkt_port_t port, lwkt_msg_t msg)
41 {
42     return(port->mp_putport(port, msg));
43 }
44
45 static __inline
46 int
47 lwkt_waitmsg(lwkt_msg_t msg)
48 {
49     lwkt_port_t port = msg->ms_reply_port;
50     return(((lwkt_msg_t)port->mp_waitport(port, msg))->ms_error);
51 }
52
53 static __inline
54 void
55 lwkt_abortmsg(lwkt_msg_t msg)
56 {
57     lwkt_port_t port = msg->ms_target_port;
58     port->mp_abortport(port, msg);
59 }
60
61 static __inline
62 void
63 lwkt_replymsg(lwkt_msg_t msg, int error)
64 {
65     lwkt_port_t port = msg->ms_reply_port;
66     msg->ms_error = error;
67     port->mp_replyport(port, msg);
68 }
69
70 static __inline
71 void *
72 lwkt_waitport(lwkt_port_t port, lwkt_msg_t msg)
73 {
74     return(port->mp_waitport(port, msg));
75 }
76
77 #endif
78