aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--libmachdev/machdev.h2
-rw-r--r--libmachdev/trivfs_server.c7
-rw-r--r--rumpdisk/main.c2
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;