Collapse devinfo_state_t with device_state_t in order to avoid a
structure replication and improve manteneability. Reviewed by: jhb, imp Tested by: Riccardo Torrini <riccardo at torrini dot org>
This commit is contained in:
parent
793c70425a
commit
1262810177
Notes:
svn2git
2020-12-20 02:59:44 +00:00
svn path=/head/; revision=199291
@ -32,20 +32,12 @@
|
|||||||
|
|
||||||
#include <sys/cdefs.h>
|
#include <sys/cdefs.h>
|
||||||
#include <sys/_types.h>
|
#include <sys/_types.h>
|
||||||
|
#include <sys/bus.h>
|
||||||
|
|
||||||
typedef __uintptr_t devinfo_handle_t;
|
typedef __uintptr_t devinfo_handle_t;
|
||||||
#define DEVINFO_ROOT_DEVICE ((devinfo_handle_t)0)
|
#define DEVINFO_ROOT_DEVICE ((devinfo_handle_t)0)
|
||||||
|
|
||||||
/*
|
typedef enum device_state devinfo_state_t;
|
||||||
* State of the device.
|
|
||||||
*/
|
|
||||||
/* XXX not sure if I want a copy here, or expose sys/bus.h */
|
|
||||||
typedef enum devinfo_state {
|
|
||||||
DIS_NOTPRESENT = 10, /* not probed or probe failed */
|
|
||||||
DIS_ALIVE = 20, /* probe succeeded */
|
|
||||||
DIS_ATTACHED = 30, /* attach method called */
|
|
||||||
DIS_BUSY = 40 /* device is open */
|
|
||||||
} devinfo_state_t;
|
|
||||||
|
|
||||||
struct devinfo_dev {
|
struct devinfo_dev {
|
||||||
devinfo_handle_t dd_handle; /* device handle */
|
devinfo_handle_t dd_handle; /* device handle */
|
||||||
|
@ -247,13 +247,13 @@ static const char *
|
|||||||
devstate(devinfo_state_t state)
|
devstate(devinfo_state_t state)
|
||||||
{
|
{
|
||||||
switch (state) {
|
switch (state) {
|
||||||
case DIS_NOTPRESENT:
|
case DS_NOTPRESENT:
|
||||||
return "not-present";
|
return "not-present";
|
||||||
case DIS_ALIVE:
|
case DS_ALIVE:
|
||||||
return "alive";
|
return "alive";
|
||||||
case DIS_ATTACHED:
|
case DS_ATTACHED:
|
||||||
return "attached";
|
return "attached";
|
||||||
case DIS_BUSY:
|
case DS_BUSY:
|
||||||
return "busy";
|
return "busy";
|
||||||
default:
|
default:
|
||||||
return "unknown-state";
|
return "unknown-state";
|
||||||
@ -266,8 +266,8 @@ acpi0_check(struct devinfo_dev *dd, void *arg)
|
|||||||
printf("%s: %s %s\n", __func__, dd->dd_name, devstate(dd->dd_state));
|
printf("%s: %s %s\n", __func__, dd->dd_name, devstate(dd->dd_state));
|
||||||
/* NB: device must be present AND attached */
|
/* NB: device must be present AND attached */
|
||||||
if (strcmp(dd->dd_name, "acpi0") == 0)
|
if (strcmp(dd->dd_name, "acpi0") == 0)
|
||||||
return (dd->dd_state == DIS_ATTACHED ||
|
return (dd->dd_state == DS_ATTACHED ||
|
||||||
dd->dd_state == DIS_BUSY);
|
dd->dd_state == DS_BUSY);
|
||||||
return devinfo_foreach_device_child(dd, acpi0_check, arg);
|
return devinfo_foreach_device_child(dd, acpi0_check, arg);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -352,11 +352,11 @@ device_get_status(struct devinfo_dev *dev)
|
|||||||
assert(dev != NULL);
|
assert(dev != NULL);
|
||||||
|
|
||||||
switch (dev->dd_state) {
|
switch (dev->dd_state) {
|
||||||
case DIS_ALIVE: /* probe succeeded */
|
case DS_ALIVE: /* probe succeeded */
|
||||||
case DIS_NOTPRESENT: /* not probed or probe failed */
|
case DS_NOTPRESENT: /* not probed or probe failed */
|
||||||
return (DS_DOWN);
|
return (DS_DOWN);
|
||||||
case DIS_ATTACHED: /* attach method called */
|
case DS_ATTACHED: /* attach method called */
|
||||||
case DIS_BUSY: /* device is open */
|
case DS_BUSY: /* device is open */
|
||||||
return (DS_RUNNING);
|
return (DS_RUNNING);
|
||||||
default:
|
default:
|
||||||
return (DS_UNKNOWN);
|
return (DS_UNKNOWN);
|
||||||
|
@ -137,7 +137,7 @@ print_device(struct devinfo_dev *dev, void *arg)
|
|||||||
struct indent_arg ia;
|
struct indent_arg ia;
|
||||||
int i, indent;
|
int i, indent;
|
||||||
|
|
||||||
if (vflag || (dev->dd_name[0] != 0 && dev->dd_state >= DIS_ATTACHED)) {
|
if (vflag || (dev->dd_name[0] != 0 && dev->dd_state >= DS_ATTACHED)) {
|
||||||
indent = (int)(intptr_t)arg;
|
indent = (int)(intptr_t)arg;
|
||||||
for (i = 0; i < indent; i++)
|
for (i = 0; i < indent; i++)
|
||||||
printf(" ");
|
printf(" ");
|
||||||
|
Loading…
Reference in New Issue
Block a user