xref: /original-bsd/sys/kern/uipc_pipe.c (revision a910c8b7)
1 /*	uipc_pipe.c	6.2	84/08/29	*/
2 
3 #include "param.h"
4 #include "mbuf.h"
5 #include "protosw.h"
6 #include "socket.h"
7 #include "socketvar.h"
8 #include "unpcb.h"
9 
10 #define	PIPSIZ	4096
11 
12 /*
13  * Sneakily connect a pipe from wso to rso.
14  * This will get cleaned up when socketpair is added.
15  */
16 piconnect(wso, rso)
17 	struct socket *wso, *rso;
18 {
19 
20 	/* when we reserve memory this routine may fail */
21 	sotounpcb(wso)->unp_conn = sotounpcb(rso);
22 	sotounpcb(rso)->unp_conn = sotounpcb(wso);
23 	wso->so_snd.sb_hiwat = PIPSIZ;
24 	wso->so_snd.sb_mbmax = 2*PIPSIZ;
25 	wso->so_state |= SS_ISCONNECTED|SS_CANTRCVMORE;
26 	rso->so_rcv.sb_hiwat = 0;
27 	rso->so_rcv.sb_mbmax = 0;
28 	rso->so_state |= SS_ISCONNECTED|SS_CANTSENDMORE;
29 	return (1);
30 }
31