diff options
-rw-r--r-- | libmachdev/machdev.h | 2 | ||||
-rw-r--r-- | libmachdev/trivfs_server.c | 7 | ||||
-rw-r--r-- | rumpdisk/main.c | 2 |
3 files changed, 6 insertions, 5 deletions
diff --git a/libmachdev/machdev.h b/libmachdev/machdev.h index 5f07d35f..41afe36d 100644 --- a/libmachdev/machdev.h +++ b/libmachdev/machdev.h @@ -33,7 +33,7 @@ void machdev_device_init(void); void machdev_device_shutdown(void); 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, mach_port_t *bootstrap); +int machdev_trivfs_init(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 5d01e61d..0501f8d2 100644 --- a/libmachdev/trivfs_server.c +++ b/libmachdev/trivfs_server.c @@ -281,7 +281,7 @@ trivfs_S_fsys_init (struct trivfs_control *fsys, /* Install the bootstrap port on /dev/something so users * can still access the bootstrapped device */ - if (bootstrapped) + if (bootstrapped && devnode) { right = ports_get_send_right (&control->pi); install_as_translator (right); @@ -384,7 +384,7 @@ 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, mach_port_t *bootstrap) +machdev_trivfs_init(mach_port_t bootstrap_resume_task, const char *name, const char *path, mach_port_t *bootstrap) { port_bucket = ports_create_bucket (); trivfs_cntl_class = ports_create_class (trivfs_clean_cntl, 0); @@ -394,7 +394,8 @@ machdev_trivfs_init(mach_port_t bootstrap_resume_task, const char *name, mach_po if (bootstrap_resume_task != MACH_PORT_NULL) { - devnode = strdup(name); + if (path) + devnode = strdup(path); resume_bootstrap_server(bootstrap_resume_task, name); *bootstrap = MACH_PORT_NULL; /* We need to install as a translator later */ diff --git a/rumpdisk/main.c b/rumpdisk/main.c index 3ee24341..150dc996 100644 --- a/rumpdisk/main.c +++ b/rumpdisk/main.c @@ -118,7 +118,7 @@ main (int argc, char **argv) rump_register_block (); machdev_device_init (); - machdev_trivfs_init (bootstrap_resume_task, "/dev/rumpdisk", &bootstrap); + machdev_trivfs_init (bootstrap_resume_task, "rumpdisk", "/dev/rumpdisk", &bootstrap); err = pthread_create (&t, NULL, machdev_server, NULL); if (err) return err; |