svn commit: r278299 - in head: lib/libdevinfo sys/kern sys/sys usr.sbin/devinfo
John Baldwin
jhb at FreeBSD.org
Thu Feb 5 22:42:46 UTC 2015
Author: jhb
Date: Thu Feb 5 22:42:44 2015
New Revision: 278299
URL: https://svnweb.freebsd.org/changeset/base/278299
Log:
Expose the constants for internal new-bus device flags to userland. The
flag value is already exposed via dv_flags, just not the meaning of the
flags themselves. Use these constants to annotate devices that are
disabled or suspended in devinfo output.
Modified:
head/lib/libdevinfo/devinfo.h
head/sys/kern/subr_bus.c
head/sys/sys/bus.h
head/usr.sbin/devinfo/devinfo.c
Modified: head/lib/libdevinfo/devinfo.h
==============================================================================
--- head/lib/libdevinfo/devinfo.h Thu Feb 5 22:34:29 2015 (r278298)
+++ head/lib/libdevinfo/devinfo.h Thu Feb 5 22:42:44 2015 (r278299)
@@ -50,7 +50,7 @@ struct devinfo_dev {
char *dd_location; /* Where bus thinks dev at */
uint32_t dd_devflags; /* API flags */
uint16_t dd_flags; /* internal dev flags */
- devinfo_state_t dd_state; /* attacement state of dev */
+ devinfo_state_t dd_state; /* attachment state of dev */
};
struct devinfo_rman {
Modified: head/sys/kern/subr_bus.c
==============================================================================
--- head/sys/kern/subr_bus.c Thu Feb 5 22:34:29 2015 (r278298)
+++ head/sys/kern/subr_bus.c Thu Feb 5 22:42:44 2015 (r278299)
@@ -128,15 +128,6 @@ struct device {
device_state_t state; /**< current device state */
uint32_t devflags; /**< api level flags for device_get_flags() */
u_int flags; /**< internal device flags */
-#define DF_ENABLED 0x01 /* device should be probed/attached */
-#define DF_FIXEDCLASS 0x02 /* devclass specified at create time */
-#define DF_WILDCARD 0x04 /* unit was originally wildcard */
-#define DF_DESCMALLOCED 0x08 /* description was malloced */
-#define DF_QUIET 0x10 /* don't print verbose attach message */
-#define DF_DONENOMATCH 0x20 /* don't execute DEVICE_NOMATCH again */
-#define DF_EXTERNALSOFTC 0x40 /* softc not allocated by us */
-#define DF_REBID 0x80 /* Can rebid after attach */
-#define DF_SUSPENDED 0x100 /* Device is suspended. */
u_int order; /**< order from device_add_child_ordered() */
void *ivars; /**< instance variables */
void *softc; /**< current driver's variables */
Modified: head/sys/sys/bus.h
==============================================================================
--- head/sys/sys/bus.h Thu Feb 5 22:34:29 2015 (r278298)
+++ head/sys/sys/bus.h Thu Feb 5 22:42:44 2015 (r278299)
@@ -70,11 +70,22 @@ struct u_device {
char dv_pnpinfo[128]; /**< @brief Plug and play info */
char dv_location[128]; /**< @brief Where is the device? */
uint32_t dv_devflags; /**< @brief API Flags for device */
- uint16_t dv_flags; /**< @brief flags for dev date */
+ uint16_t dv_flags; /**< @brief flags for dev state */
device_state_t dv_state; /**< @brief State of attachment */
/* XXX more driver info? */
};
+/* Flags exported via dv_flags. */
+#define DF_ENABLED 0x01 /* device should be probed/attached */
+#define DF_FIXEDCLASS 0x02 /* devclass specified at create time */
+#define DF_WILDCARD 0x04 /* unit was originally wildcard */
+#define DF_DESCMALLOCED 0x08 /* description was malloced */
+#define DF_QUIET 0x10 /* don't print verbose attach message */
+#define DF_DONENOMATCH 0x20 /* don't execute DEVICE_NOMATCH again */
+#define DF_EXTERNALSOFTC 0x40 /* softc not allocated by us */
+#define DF_REBID 0x80 /* Can rebid after attach */
+#define DF_SUSPENDED 0x100 /* Device is suspended. */
+
#ifdef _KERNEL
#include <sys/queue.h>
Modified: head/usr.sbin/devinfo/devinfo.c
==============================================================================
--- head/usr.sbin/devinfo/devinfo.c Thu Feb 5 22:34:29 2015 (r278298)
+++ head/usr.sbin/devinfo/devinfo.c Thu Feb 5 22:42:44 2015 (r278299)
@@ -146,6 +146,10 @@ print_device(struct devinfo_dev *dev, vo
printf(" pnpinfo %s", dev->dd_pnpinfo);
if (vflag && *dev->dd_location)
printf(" at %s", dev->dd_location);
+ if (!(dev->dd_flags & DF_ENABLED))
+ printf(" (disabled)");
+ else if (dev->dd_flags & DF_SUSPENDED)
+ printf(" (suspended)");
printf("\n");
if (rflag) {
ia.indent = indent + 4;
More information about the svn-src-all
mailing list