summaryrefslogtreecommitdiff
path: root/utils/devprobe.c
diff options
context:
space:
mode:
Diffstat (limited to 'utils/devprobe.c')
-rw-r--r--utils/devprobe.c13
1 files changed, 13 insertions, 0 deletions
diff --git a/utils/devprobe.c b/utils/devprobe.c
index d7020322..69b15b29 100644
--- a/utils/devprobe.c
+++ b/utils/devprobe.c
@@ -19,6 +19,7 @@
Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. */
#include <stdio.h>
+#include <fcntl.h>
#include <argp.h>
#include <hurd.h>
@@ -32,6 +33,7 @@ static const struct argp_option options[] = {
{"silent", 's', 0, 0, "Don't print devices found"},
{"quiet", 0, 0, OPTION_ALIAS},
{"first", 'f', 0, 0, "Stop after the first device found"},
+ {"master-device", 'M', "FILE", 0, "Get a pseudo master device port"},
{0}
};
static const char *args_doc = "DEVNAME...";
@@ -66,6 +68,17 @@ main (int argc, char **argv)
case 'f':
all = 0; break;
+ case 'M':
+ if (device_master != MACH_PORT_NULL)
+ mach_port_deallocate (mach_task_self (), device_master);
+
+ device_master = file_name_lookup (arg, O_READ | O_WRITE, 0);
+ if (device_master == MACH_PORT_NULL)
+ argp_failure (state, 3, errno, "Can't open device master port %s",
+ arg);
+
+ break;
+
case ARGP_KEY_ARG:
if (device_master == MACH_PORT_NULL)
{