bug-hurd
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

[PATCH] machdev: Pass argv through to _hurd_init


From: Damien Zammit
Subject: [PATCH] machdev: Pass argv through to _hurd_init
Date: Sun, 4 Apr 2021 13:37:50 +1000

---
 libmachdev/machdev.h       |  2 +-
 libmachdev/trivfs_server.c | 11 +++++++----
 pci-arbiter/main.c         |  2 +-
 rumpdisk/main.c            |  2 +-
 4 files changed, 10 insertions(+), 7 deletions(-)

diff --git a/libmachdev/machdev.h b/libmachdev/machdev.h
index 8f613b35..5d0eed02 100644
--- a/libmachdev/machdev.h
+++ b/libmachdev/machdev.h
@@ -33,7 +33,7 @@ void machdev_device_init(void);
 void machdev_device_shutdown(mach_port_t dosync_handle);
 void * machdev_server(void *);
 error_t machdev_create_device_port (size_t size, void *result);
-int machdev_trivfs_init(mach_port_t bootstrap_resume_task, const char *name, 
const char *path, mach_port_t *bootstrap);
+int machdev_trivfs_init(int argc, char **argv, mach_port_t 
bootstrap_resume_task, const char *name, const char *path, mach_port_t 
*bootstrap);
 void machdev_trivfs_server(mach_port_t bootstrap);
 boolean_t machdev_is_master_device (mach_port_t port);
 
diff --git a/libmachdev/trivfs_server.c b/libmachdev/trivfs_server.c
index 60711348..1c5d53ad 100644
--- a/libmachdev/trivfs_server.c
+++ b/libmachdev/trivfs_server.c
@@ -76,12 +76,14 @@ static char *devnode;
 
 /* Startup and shutdown notifications management */
 struct port_class *machdev_shutdown_notify_class;
-
 static void arrange_shutdown_notification (void);
 
 /* Our parent's task, if applicable */
 static task_t parent_task;
 
+/* Our argument vector */
+static char **machdev_argv;
+
 static void
 install_as_translator (mach_port_t bootport)
 {
@@ -315,7 +317,7 @@ trivfs_S_fsys_init (struct trivfs_control *fsys,
   portarray[INIT_PORT_AUTH] = authhandle;
   portarray[INIT_PORT_CRDIR] = root;
   portarray[INIT_PORT_CWDIR] = root;
-  _hurd_init (0, NULL, portarray, INIT_PORT_MAX, NULL, 0);
+  _hurd_init (0, machdev_argv, portarray, INIT_PORT_MAX, NULL, 0);
 
   /* Mark us as important.  */
   proc = getproc ();
@@ -434,8 +436,8 @@ resume_bootstrap_server(mach_port_t server_task, const char 
*server_name)
 }
 
 int
-machdev_trivfs_init(mach_port_t bootstrap_resume_task, const char *name, const 
char *path,
-                    mach_port_t *bootstrap)
+machdev_trivfs_init(int argc, char **argv, mach_port_t bootstrap_resume_task,
+                    const char *name, const char *path, mach_port_t *bootstrap)
 {
   mach_port_t mybootstrap = MACH_PORT_NULL;
   port_bucket = ports_create_bucket ();
@@ -445,6 +447,7 @@ machdev_trivfs_init(mach_port_t bootstrap_resume_task, 
const char *name, const c
                          trivfs_protid_class, 0, &control);
 
   *bootstrap = MACH_PORT_NULL;
+  machdev_argv = argv;
 
   task_get_bootstrap_port (mach_task_self (), &mybootstrap);
   if (mybootstrap)
diff --git a/pci-arbiter/main.c b/pci-arbiter/main.c
index 1815994a..050f1aac 100644
--- a/pci-arbiter/main.c
+++ b/pci-arbiter/main.c
@@ -214,7 +214,7 @@ main (int argc, char **argv)
   if (disk_server_task != MACH_PORT_NULL)
     {
       machdev_register (&pci_arbiter_emulation_ops);
-      machdev_trivfs_init (disk_server_task, "pci", "/servers/bus/pci", 
&bootstrap);
+      machdev_trivfs_init (argc, argv, disk_server_task, "pci", 
"/servers/bus/pci", &bootstrap);
       machdev_device_init ();
       err = pthread_create (&t, NULL, machdev_server, NULL);
       if (err)
diff --git a/rumpdisk/main.c b/rumpdisk/main.c
index 87bc5573..7f503b51 100644
--- a/rumpdisk/main.c
+++ b/rumpdisk/main.c
@@ -112,7 +112,7 @@ main (int argc, char **argv)
     }
 
   rump_register_block ();
-  machdev_trivfs_init (bootstrap_resume_task, "rumpdisk", "/dev/rumpdisk", 
&bootstrap);
+  machdev_trivfs_init (argc, argv, bootstrap_resume_task, "rumpdisk", 
"/dev/rumpdisk", &bootstrap);
   machdev_device_init ();
   err = pthread_create (&t, NULL, machdev_server, NULL);
   if (err)
-- 
2.30.1




reply via email to

[Prev in Thread] Current Thread [Next in Thread]