summaryrefslogtreecommitdiff
path: root/pci-arbiter/options.c
diff options
context:
space:
mode:
authorDamien Zammit <damien@zamaudio.com>2021-03-09 00:04:56 +1100
committerSamuel Thibault <samuel.thibault@ens-lyon.org>2021-03-08 22:17:03 +0100
commitb261eb886e4ee068515484727955e416517a03b4 (patch)
treeedf55004020d488a008e1cd8ab70a94724e89094 /pci-arbiter/options.c
parenta5fc9f2e767f034830ee5b179123b093180bf259 (diff)
pci-arbiter: Introduce machdev into this server
* pci-arbiter/Makefile Add machdev lib and simplify * pci-arbiter/main.c (pci_device_{open,close,shutdown}): New methods (netfs_server_func): Thread the demuxer loop (pcifs_startup): Custom startup method (main): Use machdev for server and detach worker threads * pci-arbiter/options.{c,h} Add disk-server-task and priv ports * pci-arbiter/startup-ops.c Delete file Message-Id: <20210308130457.693821-4-damien@zamaudio.com>
Diffstat (limited to 'pci-arbiter/options.c')
-rw-r--r--pci-arbiter/options.c19
1 files changed, 19 insertions, 0 deletions
diff --git a/pci-arbiter/options.c b/pci-arbiter/options.c
index 5767ad27..141c69e3 100644
--- a/pci-arbiter/options.c
+++ b/pci-arbiter/options.c
@@ -241,6 +241,15 @@ parse_opt (int opt, char *arg, struct argp_state *state)
case 'n':
h->ncache_len = atoi (arg);
break;
+ case 'T':
+ h->disk_server_task = atoi (arg);
+ break;
+ case 'H':
+ h->host_priv_port = atoi (arg);
+ break;
+ case 'P':
+ h->dev_master_port = atoi (arg);
+ break;
case ARGP_KEY_INIT:
/* Initialize our parsing state. */
h = malloc (sizeof (struct parse_hook));
@@ -250,6 +259,9 @@ parse_opt (int opt, char *arg, struct argp_state *state)
h->permsets = 0;
h->num_permsets = 0;
h->ncache_len = NODE_CACHE_MAX;
+ h->disk_server_task = MACH_PORT_NULL;
+ h->host_priv_port = MACH_PORT_NULL;
+ h->dev_master_port = MACH_PORT_NULL;
err = parse_hook_add_set (h);
if (err)
FAIL (err, 1, err, "option parsing");
@@ -286,6 +298,11 @@ parse_opt (int opt, char *arg, struct argp_state *state)
/* Set cache len */
fs->params.node_cache_max = h->ncache_len;
+ /* Set bootstrap ports */
+ fs->params.disk_server_task = h->disk_server_task;
+ _hurd_host_priv = h->host_priv_port;
+ _hurd_device_master = h->dev_master_port;
+
if (fs->root)
{
/*
@@ -364,6 +381,8 @@ netfs_append_args (char **argz, size_t * argz_len)
if (fs->params.node_cache_max != NODE_CACHE_MAX)
ADD_OPT ("--ncache=%u", fs->params.node_cache_max);
+ if (fs->params.disk_server_task != MACH_PORT_NULL)
+ ADD_OPT ("--disk-server-task=%lu", fs->params.disk_server_task);
#undef ADD_OPT
return err;
}