xref: /csrg-svn/sys/kern/uipc_pipe.c (revision 8964)
1*8964Sroot /*	uipc_pipe.c	4.18	82/10/31	*/
24904Swnj 
34904Swnj #include "../h/param.h"
44904Swnj #include "../h/mbuf.h"
54904Swnj #include "../h/protosw.h"
64904Swnj #include "../h/socket.h"
74904Swnj #include "../h/socketvar.h"
8*8964Sroot #include "../h/unpcb.h"
94904Swnj 
104904Swnj #define	PIPSIZ	4096
114904Swnj 
124904Swnj /*
13*8964Sroot  * Sneakily connect a pipe from wso to rso.
14*8964Sroot  * 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 */
21*8964Sroot 	sotounpcb(wso)->unp_conn = sotounpcb(rso);
22*8964Sroot 	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