diff options
| author | jmcneill <jmcneill@NetBSD.org> | 2015-12-16 19:33:39 +0000 |
|---|---|---|
| committer | jmcneill <jmcneill@NetBSD.org> | 2015-12-16 19:33:39 +0000 |
| commit | 3970f099863a6784f8e4cf2cd7f2b24a2618e2b9 (patch) | |
| tree | 61ad2e3bae2911d29c830a1de6d8fe7687e82bca /sys/dev/ofw | |
| parent | e74527c95519057370b85b573930c532b64f1cda (diff) | |
add of_getprop_bool and of_getprop_uint32 helpers
Diffstat (limited to 'sys/dev/ofw')
| -rw-r--r-- | sys/dev/ofw/ofw_subr.c | 32 | ||||
| -rw-r--r-- | sys/dev/ofw/openfirm.h | 5 |
2 files changed, 34 insertions, 3 deletions
diff --git a/sys/dev/ofw/ofw_subr.c b/sys/dev/ofw/ofw_subr.c index 7585862f099..424240e080f 100644 --- a/sys/dev/ofw/ofw_subr.c +++ b/sys/dev/ofw/ofw_subr.c @@ -1,4 +1,4 @@ -/* $NetBSD: ofw_subr.c,v 1.26 2015/12/13 11:51:13 jmcneill Exp $ */ +/* $NetBSD: ofw_subr.c,v 1.27 2015/12/16 19:33:39 jmcneill Exp $ */ /* * Copyright 1998 @@ -34,7 +34,7 @@ */ #include <sys/cdefs.h> -__KERNEL_RCSID(0, "$NetBSD: ofw_subr.c,v 1.26 2015/12/13 11:51:13 jmcneill Exp $"); +__KERNEL_RCSID(0, "$NetBSD: ofw_subr.c,v 1.27 2015/12/16 19:33:39 jmcneill Exp $"); #include <sys/param.h> #include <sys/systm.h> @@ -443,3 +443,31 @@ of_enter_i2c_devs(prop_dictionary_t props, int ofnode, size_t cell_size, prop_dictionary_set_bool(props, "i2c-indirect-config", false); } + +/* + * Get the value of a boolean property. If the property is present, + * return true. Otherwise, return false. + */ +bool +of_getprop_bool(int node, const char *prop) +{ + return OF_getproplen(node, prop) >= 0; +} + +/* + * Get the value of a uint32 property, compensating for host byte order. + * Returns 0 on success, non-zero on failure. + */ +int +of_getprop_uint32(int node, const char *prop, uint32_t *val) +{ + uint32_t v; + int len; + + len = OF_getprop(node, prop, &v, sizeof(v)); + if (len != sizeof(v)) + return -1; + + *val = be32toh(v); + return 0; +} diff --git a/sys/dev/ofw/openfirm.h b/sys/dev/ofw/openfirm.h index 797136f2111..56d9de5f86e 100644 --- a/sys/dev/ofw/openfirm.h +++ b/sys/dev/ofw/openfirm.h @@ -1,4 +1,4 @@ -/* $NetBSD: openfirm.h,v 1.32 2015/12/13 11:51:13 jmcneill Exp $ */ +/* $NetBSD: openfirm.h,v 1.33 2015/12/16 19:33:39 jmcneill Exp $ */ /* * Copyright (C) 1995, 1996 Wolfgang Solfrank. @@ -120,4 +120,7 @@ char *of_get_mode_string(char *, int); void of_enter_i2c_devs(prop_dictionary_t, int, size_t, int); +bool of_getprop_bool(int, const char *); +int of_getprop_uint32(int, const char *, uint32_t *); + #endif /*_OPENFIRM_H_*/ |
