.\"
.\" $FreeBSD: src/share/man/man9/make_dev.9,v 1.2.2.3 2001/12/17 11:30:18 ru Exp $
.\"
-.Dd August 24, 2012
+.Dd August 26, 2012
.Dt MAKE_DEV 9
.Os
.Sh NAME
devfs_scan_t mydev_scan_callback;
void
-mydev_scan_callback(cdev_t dev, void *arg)
+mydev_scan_callback(char *name, cdev_t dev, bool is_alias, void *arg)
{
};
.Ed
+.Pp
+The
+.Fa name
+argument is the alias' name (if
+.Fa is_alias
+is
+.Dv true )
+or he
+.Vt cdev Ap s
+.Fa si_name
+field.
.Sh HISTORY
The
.Fn make_dev
static struct udev_event_kernel *udev_event_remove(void);
static void udev_event_free(struct udev_event_kernel *);
static char *udev_event_externalize(struct udev_event_kernel *);
-static void udev_getdevs_scan_callback(cdev_t, void *);
+static void udev_getdevs_scan_callback(char *, cdev_t, bool, void *);
static int udev_getdevs_ioctl(struct plistref *, u_long, prop_dictionary_t);
static void udev_dev_filter_detach(struct knote *);
static int udev_dev_filter_read(struct knote *, long);
}
static void
-udev_getdevs_scan_callback(cdev_t cdev, void *arg)
+udev_getdevs_scan_callback(char *name, cdev_t cdev, bool is_alias, void *arg)
{
struct udev_prop_ctx *ctx = arg;
return EINVAL;
}
- /* XXX: need devfs_scan_alias_callback() */
devfs_scan_callback(udev_getdevs_scan_callback, &ctx);
if (ctx.error != 0) {
static void
-vfs_mountroot_ask_callback(cdev_t dev, void *arg __unused)
+vfs_mountroot_ask_callback(char *name, cdev_t dev, bool is_alias,
+ void *arg __unused)
{
- if (dev_is_good(dev) && (dev_dflags(dev) & D_DISK))
- kprintf(" \"%s\" ", dev->si_name);
+ if (!is_alias && dev_is_good(dev) && (dev_dflags(dev) & D_DISK))
+ kprintf(" \"%s\" ", name);
}
TAILQ_HEAD(devfs_alias_head, devfs_alias);
TAILQ_HEAD(devfs_dev_ops_head, devfs_dev_ops);
-typedef void (devfs_scan_t)(cdev_t, void *);
+typedef void (devfs_scan_t)(char *, cdev_t, bool, void *);
typedef void* (devfs_iterate_callback_t)(struct devfs_node *, void *);
#define DEVFS_NODE(x) ((struct devfs_node *)((x)->v_data))
devfs_scan_callback_worker(devfs_scan_t *callback, void *arg)
{
cdev_t dev, dev1;
+ struct devfs_alias *alias, *alias1;
TAILQ_FOREACH_MUTABLE(dev, &devfs_dev_list, link, dev1) {
- callback(dev, arg);
+ callback(dev->si_name, dev, false, arg);
+ }
+ TAILQ_FOREACH_MUTABLE(alias, &devfs_alias_list, link, alias1) {
+ callback(alias->name, alias->dev_target, true, arg);
}
return 0;