summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorJason King <jason.king@joyent.com>2019-04-18 18:00:38 +0000
committerJason King <jason.king@joyent.com>2019-06-27 20:35:53 +0000
commitff5370e0670902c1f855aa7ff53021af9b218419 (patch)
tree05873066ac85dd9debc0870c7824465f09d703a6
parentd52326b14627b369debbeb1c820b08a811328317 (diff)
downloadillumos-joyent-OS-7866.tar.gz
OS-7866 Add di_prop_exists function to libdevinfoOS-7866
NOTE: still needs man page update for function
-rw-r--r--usr/src/lib/libdevinfo/devinfo.c13
-rw-r--r--usr/src/lib/libdevinfo/libdevinfo.h5
-rw-r--r--usr/src/lib/libdevinfo/mapfile-vers6
3 files changed, 24 insertions, 0 deletions
diff --git a/usr/src/lib/libdevinfo/devinfo.c b/usr/src/lib/libdevinfo/devinfo.c
index 476c9a2e43..7247f1f642 100644
--- a/usr/src/lib/libdevinfo/devinfo.c
+++ b/usr/src/lib/libdevinfo/devinfo.c
@@ -21,6 +21,9 @@
/*
* Copyright (c) 1997, 2010, Oracle and/or its affiliates. All rights reserved.
*/
+/*
+ * Copyright 2019, Joyent, Inc.
+ */
/*
* Interfaces for getting device configuration data from kernel
@@ -1708,6 +1711,16 @@ di_prop_find(dev_t match_dev, di_node_t node, const char *name)
}
int
+di_prop_exists(dev_t dev, di_node_t node, const char *prop_name)
+{
+ di_prop_t prop;
+
+ if ((prop = di_prop_find(dev, node, prop_name)) == DI_PROP_NIL)
+ return (0);
+ return (1);
+}
+
+int
di_prop_lookup_ints(dev_t dev, di_node_t node, const char *prop_name,
int **prop_data)
{
diff --git a/usr/src/lib/libdevinfo/libdevinfo.h b/usr/src/lib/libdevinfo/libdevinfo.h
index 8f685a1524..06a4ec0c60 100644
--- a/usr/src/lib/libdevinfo/libdevinfo.h
+++ b/usr/src/lib/libdevinfo/libdevinfo.h
@@ -21,6 +21,9 @@
/*
* Copyright (c) 1997, 2010, Oracle and/or its affiliates. All rights reserved.
*/
+/*
+ * Copyright 2019, Joyent, Inc.
+ */
#ifndef _LIBDEVINFO_H
#define _LIBDEVINFO_H
@@ -241,6 +244,8 @@ extern int di_prop_int64(di_prop_t prop, int64_t **prop_data);
extern int di_prop_strings(di_prop_t prop, char **prop_data);
extern int di_prop_bytes(di_prop_t prop, uchar_t **prop_data);
+extern int di_prop_exists(dev_t dev, di_node_t node,
+ const char *prop_name);
extern int di_prop_lookup_bytes(dev_t dev, di_node_t node,
const char *prop_name, uchar_t **prop_data);
extern int di_prop_lookup_ints(dev_t dev, di_node_t node,
diff --git a/usr/src/lib/libdevinfo/mapfile-vers b/usr/src/lib/libdevinfo/mapfile-vers
index 3b0bb74a7c..b4bdd3f363 100644
--- a/usr/src/lib/libdevinfo/mapfile-vers
+++ b/usr/src/lib/libdevinfo/mapfile-vers
@@ -20,6 +20,7 @@
#
#
# Copyright (c) 2006, 2010, Oracle and/or its affiliates. All rights reserved.
+# Copyright 2019, Joyent, Inc.
#
#
@@ -38,6 +39,11 @@
$mapfile_version 2
+SYMBOL_VERSION ILLUMOS_1.0 {
+ global:
+ di_prop_exists;
+} SUNW_1.4;
+
SYMBOL_VERSION SUNW_1.4 {
global:
di_alias2curr;