Blob
1 #include <u.h>2 #include <libc.h>3 #include <fcall.h>4 #include <thread.h>5 #include <9p.h>7 static void8 launchsrv(void *v)9 {10 srv(v);11 }13 void14 threadpostmountsrv(Srv *s, char *name, char *mtpt, int flag)15 {16 int fd[2];18 if(!s->nopipe){19 if(pipe(fd) < 0)20 sysfatal("pipe: %r");21 s->infd = s->outfd = fd[1];22 s->srvfd = fd[0];23 }24 if(name || mtpt){25 if(post9pservice(s->srvfd, name, mtpt) < 0)26 sysfatal("post9pservice %s: %r", name);27 }else if(!s->nopipe)28 sysfatal("no one to serve");29 if(s->foreground)30 srv(s);31 else32 proccreate(launchsrv, s, 32*1024);33 }