/* pipe (3) file and file descriptor handling functions */ int makepipe(char *pipename); int mkrdfd(char *name); int mkwrfd(char *name); int newout(Hub *h, char *name); int newin(Hub *h, char *name); /* server procs that handle i/o on the pipe (3) fds */ void hubsrv(Hub *h); void rdproc(Hub *h, int id, int infd); void wrproc(Hub *h, int id, int outfd); void ctlsrv(int ctlfd); /* utility functions to handle Hub variables and state */ void zerohub(Hub *h); Hub* starthub(int hnum, char *name, char *firstin); void parsecmd(char *cmdbuf); /* note that much important user-facing functionality is implemented in the ioshell client */ /* the logic handling creation and movement between multiple rc trihubs is located there */