Module Name: src Committed By: jmcneill Date: Wed Dec 16 19:33:39 UTC 2015
Modified Files: src/sys/dev/ofw: ofw_subr.c openfirm.h Log Message: add of_getprop_bool and of_getprop_uint32 helpers To generate a diff of this commit: cvs rdiff -u -r1.26 -r1.27 src/sys/dev/ofw/ofw_subr.c cvs rdiff -u -r1.32 -r1.33 src/sys/dev/ofw/openfirm.h Please note that diffs are not public domain; they are subject to the copyright notices on the relevant files.
Modified files: Index: src/sys/dev/ofw/ofw_subr.c diff -u src/sys/dev/ofw/ofw_subr.c:1.26 src/sys/dev/ofw/ofw_subr.c:1.27 --- src/sys/dev/ofw/ofw_subr.c:1.26 Sun Dec 13 11:51:13 2015 +++ src/sys/dev/ofw/ofw_subr.c Wed Dec 16 19:33:39 2015 @@ -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 prop 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; +} Index: src/sys/dev/ofw/openfirm.h diff -u src/sys/dev/ofw/openfirm.h:1.32 src/sys/dev/ofw/openfirm.h:1.33 --- src/sys/dev/ofw/openfirm.h:1.32 Sun Dec 13 11:51:13 2015 +++ src/sys/dev/ofw/openfirm.h Wed Dec 16 19:33:39 2015 @@ -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_*/