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;
_______________________________________________
svn-src-head@freebsd.org mailing list
http://lists.freebsd.org/mailman/listinfo/svn-src-head
To unsubscribe, send any mail to "svn-src-head-unsubscr...@freebsd.org"

Reply via email to