Blame


1 2277c5d7 2004-03-21 devnull #include <u.h>
2 2277c5d7 2004-03-21 devnull #include <libc.h>
3 2277c5d7 2004-03-21 devnull #include <fcall.h>
4 2277c5d7 2004-03-21 devnull #include <thread.h>
5 2277c5d7 2004-03-21 devnull #include <9p.h>
6 2277c5d7 2004-03-21 devnull
7 2aa7d303 2005-02-11 devnull static void
8 2aa7d303 2005-02-11 devnull launchsrv(void *v)
9 2aa7d303 2005-02-11 devnull {
10 2aa7d303 2005-02-11 devnull srv(v);
11 2aa7d303 2005-02-11 devnull }
12 2aa7d303 2005-02-11 devnull
13 2277c5d7 2004-03-21 devnull void
14 2277c5d7 2004-03-21 devnull threadpostmountsrv(Srv *s, char *name, char *mtpt, int flag)
15 2277c5d7 2004-03-21 devnull {
16 2aa7d303 2005-02-11 devnull int fd[2];
17 2277c5d7 2004-03-21 devnull
18 2aa7d303 2005-02-11 devnull if(!s->nopipe){
19 2aa7d303 2005-02-11 devnull if(pipe(fd) < 0)
20 2aa7d303 2005-02-11 devnull sysfatal("pipe: %r");
21 2aa7d303 2005-02-11 devnull s->infd = s->outfd = fd[1];
22 2aa7d303 2005-02-11 devnull s->srvfd = fd[0];
23 2aa7d303 2005-02-11 devnull }
24 118dfa98 2008-05-06 rsc if(name || mtpt){
25 118dfa98 2008-05-06 rsc if(post9pservice(s->srvfd, name, mtpt) < 0)
26 118dfa98 2008-05-06 rsc sysfatal("post9pservice %s: %r", name);
27 118dfa98 2008-05-06 rsc }else if(!s->nopipe)
28 118dfa98 2008-05-06 rsc sysfatal("no one to serve");
29 56dc04c5 2008-07-04 rsc if(s->foreground)
30 56dc04c5 2008-07-04 rsc srv(s);
31 56dc04c5 2008-07-04 rsc else
32 56dc04c5 2008-07-04 rsc proccreate(launchsrv, s, 32*1024);
33 2aa7d303 2005-02-11 devnull }