28.08.2015 Views

The Design and Implementation of the Anykernel and Rump Kernels

1F3KDce

1F3KDce

SHOW MORE
SHOW LESS
  • No tags were found...

You also want an ePaper? Increase the reach of your titles

YUMPU automatically turns print PDFs into web optimized ePapers that Google loves.

A–28<br />

RUMPCLIENT(3) NetBSD Library Functions Manual RUMPCLIENT(3)<br />

int<br />

rumpclient_daemon(int nochdir, int noclose);<br />

void<br />

rumpclient_setconnretry(time_t retrytime);<br />

int<br />

rumpclient_syscall(int num, const void *sysarg, size_t argsize,<br />

register_t *retval);<br />

DESCRIPTION<br />

rumpclient is <strong>the</strong> clientside implementation <strong>of</strong> <strong>the</strong> rump_sp(7) facility.<br />

It can be used to connect to a rump kernel server <strong>and</strong> make system call<br />

style requests.<br />

Every connection to a rump kernel server creates a new process context in<br />

<strong>the</strong> rump kernel. By default a process is inherited from init, but<br />

through existing connections <strong>and</strong> <strong>the</strong> forking facility <strong>of</strong>fered by<br />

rumpclient it is possible to form process trees.<br />

rumpclient_init()<br />

Initialize rumpclient. <strong>The</strong> server address is determined from <strong>the</strong><br />

environment variable RUMP_SERVER according to syntax described in<br />

rump_sp(7). <strong>The</strong> new process is registered to <strong>the</strong> rump kernel with<br />

<strong>the</strong> comm<strong>and</strong> name from getprogname(3).<br />

rumpclient_fork()<br />

Fork a rump client process. This also causes a host process fork<br />

via fork(2). <strong>The</strong> child will have a copy <strong>of</strong> <strong>the</strong> parent’s rump kernel<br />

file descriptors.<br />

NetBSD 5.99.48 February 16, 2011 NetBSD 5.99.48

Hooray! Your file is uploaded and ready to be published.

Saved successfully!

Ooh no, something went wrong!