xref: /csrg-svn/sys/kern/uipc_pipe.c (revision 17102)
1*17102Sbloom /*	uipc_pipe.c	6.2	84/08/29	*/
24904Swnj 
3*17102Sbloom #include "param.h"
4*17102Sbloom #include "mbuf.h"
5*17102Sbloom #include "protosw.h"
6*17102Sbloom #include "socket.h"
7*17102Sbloom #include "socketvar.h"
8*17102Sbloom #include "unpcb.h"
94904Swnj 
104904Swnj #define	PIPSIZ	4096
114904Swnj 
124904Swnj /*
138964Sroot  * Sneakily connect a pipe from wso to rso.
148964Sroot  * This will get cleaned up when socketpair is added.
154904Swnj  */
164927Swnj piconnect(wso, rso)
174904Swnj 	struct socket *wso, *rso;
184904Swnj {
194904Swnj 
207180Swnj 	/* when we reserve memory this routine may fail */
218964Sroot 	sotounpcb(wso)->unp_conn = sotounpcb(rso);
228964Sroot 	sotounpcb(rso)->unp_conn = sotounpcb(wso);
234981Swnj 	wso->so_snd.sb_hiwat = PIPSIZ;
244981Swnj 	wso->so_snd.sb_mbmax = 2*PIPSIZ;
254904Swnj 	wso->so_state |= SS_ISCONNECTED|SS_CANTRCVMORE;
264981Swnj 	rso->so_rcv.sb_hiwat = 0;
274981Swnj 	rso->so_rcv.sb_mbmax = 0;
284904Swnj 	rso->so_state |= SS_ISCONNECTED|SS_CANTSENDMORE;
294904Swnj 	return (1);
304904Swnj }
31