35 while((l = netget(&m.p, sizeof m.p)) > 0)
36 if(write(cfd, &m, l+4) != l+4)
42 muxkbd(int kfd, int cfd)
47 while((m.p.len = read(kfd, m.p.data, sizeof m.p.data)) > 0)
48 if(write(cfd, &m, m.p.len+22) != m.p.len+22)
56 muxproc(Mux *m, Muxproc *p, int fd, void (*f)(int, int), int type)
58 memset(p, 0, sizeof p);
60 switch(p->pid = rfork(RFPROC|RFFDG)){
78 postnote(PNPROC, m->p[0].pid, "this note goes to 11");
79 postnote(PNPROC, m->p[1].pid, "this note goes to 11");
82 memset(m, 0, sizeof *m);
92 sysfatal("mux in use");
95 if(pipe(m->pfd) == -1)
97 muxproc(m, m->p+0, fd[0], muxkbd, Fkbd);
98 muxproc(m, m->p+1, fd[1], muxcec, Fcec);
104 muxread(Mux *m, Pkt *p)
106 if(read(m->pfd[0], &m->m, sizeof m->m) == -1)
108 memcpy(p, &m->m.p, sizeof *p);