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.
This commit is contained in:
parent
bd496ef499
commit
94f0eafcd2
Notes:
svn2git
2020-12-20 02:59:44 +00:00
svn path=/head/; revision=278299
@ -50,7 +50,7 @@ struct devinfo_dev {
|
|||||||
char *dd_location; /* Where bus thinks dev at */
|
char *dd_location; /* Where bus thinks dev at */
|
||||||
uint32_t dd_devflags; /* API flags */
|
uint32_t dd_devflags; /* API flags */
|
||||||
uint16_t dd_flags; /* internal dev 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 {
|
struct devinfo_rman {
|
||||||
|
@ -128,15 +128,6 @@ struct device {
|
|||||||
device_state_t state; /**< current device state */
|
device_state_t state; /**< current device state */
|
||||||
uint32_t devflags; /**< api level flags for device_get_flags() */
|
uint32_t devflags; /**< api level flags for device_get_flags() */
|
||||||
u_int flags; /**< internal device 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() */
|
u_int order; /**< order from device_add_child_ordered() */
|
||||||
void *ivars; /**< instance variables */
|
void *ivars; /**< instance variables */
|
||||||
void *softc; /**< current driver's variables */
|
void *softc; /**< current driver's variables */
|
||||||
|
@ -70,11 +70,22 @@ struct u_device {
|
|||||||
char dv_pnpinfo[128]; /**< @brief Plug and play info */
|
char dv_pnpinfo[128]; /**< @brief Plug and play info */
|
||||||
char dv_location[128]; /**< @brief Where is the device? */
|
char dv_location[128]; /**< @brief Where is the device? */
|
||||||
uint32_t dv_devflags; /**< @brief API Flags for 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 */
|
device_state_t dv_state; /**< @brief State of attachment */
|
||||||
/* XXX more driver info? */
|
/* 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
|
#ifdef _KERNEL
|
||||||
|
|
||||||
#include <sys/queue.h>
|
#include <sys/queue.h>
|
||||||
|
@ -146,6 +146,10 @@ print_device(struct devinfo_dev *dev, void *arg)
|
|||||||
printf(" pnpinfo %s", dev->dd_pnpinfo);
|
printf(" pnpinfo %s", dev->dd_pnpinfo);
|
||||||
if (vflag && *dev->dd_location)
|
if (vflag && *dev->dd_location)
|
||||||
printf(" at %s", 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");
|
printf("\n");
|
||||||
if (rflag) {
|
if (rflag) {
|
||||||
ia.indent = indent + 4;
|
ia.indent = indent + 4;
|
||||||
|
Loading…
Reference in New Issue
Block a user