1*41fbaed0Stron /* $NetBSD: master_flow.c,v 1.1.1.1 2009/06/23 10:08:49 tron Exp $ */ 2*41fbaed0Stron 3*41fbaed0Stron /* System library. */ 4*41fbaed0Stron 5*41fbaed0Stron #include <sys_defs.h> 6*41fbaed0Stron #include <unistd.h> 7*41fbaed0Stron #include <stdlib.h> 8*41fbaed0Stron 9*41fbaed0Stron /* Utility library. */ 10*41fbaed0Stron 11*41fbaed0Stron #include <msg.h> 12*41fbaed0Stron #include <iostuff.h> 13*41fbaed0Stron 14*41fbaed0Stron /* Application-specific. */ 15*41fbaed0Stron 16*41fbaed0Stron #include <master.h> 17*41fbaed0Stron #include <master_proto.h> 18*41fbaed0Stron 19*41fbaed0Stron int master_flow_pipe[2]; 20*41fbaed0Stron 21*41fbaed0Stron /* master_flow_init - initialize the flow control channel */ 22*41fbaed0Stron master_flow_init(void)23*41fbaed0Stronvoid master_flow_init(void) 24*41fbaed0Stron { 25*41fbaed0Stron const char *myname = "master_flow_init"; 26*41fbaed0Stron 27*41fbaed0Stron if (pipe(master_flow_pipe) < 0) 28*41fbaed0Stron msg_fatal("%s: pipe: %m", myname); 29*41fbaed0Stron 30*41fbaed0Stron non_blocking(master_flow_pipe[0], NON_BLOCKING); 31*41fbaed0Stron non_blocking(master_flow_pipe[1], NON_BLOCKING); 32*41fbaed0Stron 33*41fbaed0Stron close_on_exec(master_flow_pipe[0], CLOSE_ON_EXEC); 34*41fbaed0Stron close_on_exec(master_flow_pipe[1], CLOSE_ON_EXEC); 35*41fbaed0Stron } 36