| 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 | } |