2016-11-25 17:18:40 +01:00
|
|
|
#include <u.h>
|
2017-04-19 23:33:14 +02:00
|
|
|
#include <lib9.h>
|
2016-12-01 00:09:42 +01:00
|
|
|
#include <9P2000.h>
|
2016-11-25 17:18:40 +01:00
|
|
|
#include <thread.h>
|
|
|
|
#include <9p.h>
|
|
|
|
|
|
|
|
static void
|
|
|
|
rforker(void (*fn)(void*), void *arg, int flag)
|
|
|
|
{
|
|
|
|
switch(rfork(RFPROC|RFMEM|RFNOWAIT|flag)){
|
|
|
|
case -1:
|
|
|
|
sysfatal("rfork: %r");
|
|
|
|
default:
|
|
|
|
return;
|
|
|
|
case 0:
|
|
|
|
fn(arg);
|
|
|
|
_exits(0);
|
|
|
|
}
|
|
|
|
}
|
|
|
|
|
|
|
|
void
|
|
|
|
listensrv(Srv *s, char *addr)
|
|
|
|
{
|
|
|
|
_forker = rforker;
|
|
|
|
_listensrv(s, addr);
|
|
|
|
}
|
|
|
|
|
|
|
|
void
|
|
|
|
postmountsrv(Srv *s, char *name, char *mtpt, int flag)
|
|
|
|
{
|
|
|
|
_forker = rforker;
|
|
|
|
_postmountsrv(s, name, mtpt, flag);
|
|
|
|
}
|
|
|
|
|
|
|
|
void
|
|
|
|
postsharesrv(Srv *s, char *name, char *mtpt, char *desc)
|
|
|
|
{
|
|
|
|
_forker = rforker;
|
|
|
|
_postsharesrv(s, name, mtpt, desc);
|
|
|
|
}
|