xref: /original-bsd/sys/kern/uipc_pipe.c (revision 62734ea8)
1 /*	uipc_pipe.c	4.18	82/10/31	*/
2 
3 #include "../h/param.h"
4 #include "../h/mbuf.h"
5 #include "../h/protosw.h"
6 #include "../h/socket.h"
7 #include "../h/socketvar.h"
8 #include "../h/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