diff options
Diffstat (limited to 'usr/src/lib/libdevinfo/devinfo.c')
| -rw-r--r-- | usr/src/lib/libdevinfo/devinfo.c | 14 |
1 files changed, 14 insertions, 0 deletions
diff --git a/usr/src/lib/libdevinfo/devinfo.c b/usr/src/lib/libdevinfo/devinfo.c index e37e207474..c9179e0d1f 100644 --- a/usr/src/lib/libdevinfo/devinfo.c +++ b/usr/src/lib/libdevinfo/devinfo.c @@ -271,6 +271,14 @@ di_init_impl(const char *phys_path, uint_t flag, (void) close(fd); dap = DI_ALL(pa); + if (dap->version != DI_SNAPSHOT_VERSION) { + DPRINTF((DI_ERR, "wrong snapshot version " + "(expected=%d, actual=%d)\n", + DI_SNAPSHOT_VERSION, dap->version)); + free(pa); + errno = ESTALE; + return (DI_NODE_NIL); + } if (dap->top_devinfo == 0) { /* phys_path not found */ DPRINTF((DI_ERR, "%s not found\n", phys_path)); free(pa); @@ -984,6 +992,12 @@ di_node_state(di_node_t node) return (DI_NODE(node)->node_state); } +uint_t +di_flags(di_node_t node) +{ + return (DI_NODE(node)->flags); +} + ddi_devid_t di_devid(di_node_t node) { |
