On Mon, Feb 1, 2016 at 10:22 AM, Eric Auger <eric.au...@linaro.org> wrote: > Hi Rob, > On 02/01/2016 05:15 PM, Rob Herring wrote: >> On Mon, Feb 1, 2016 at 7:51 AM, Eric Auger <eric.au...@linaro.org> wrote: >>> This function returns the host device tree blob from sysfs >>> (/proc/device-tree). It uses a recursive function inspired >>> from dtc read_fstree. >>> >>> Signed-off-by: Eric Auger <eric.au...@linaro.org> >>> >>> --- >>> v5 -> v6: >>> - fix some spelling mistakes >>> - error_report + exit replaced by error_setg >>> - const char *parent_node; >>> - use g_strdup_printf instead of g_strjoin >>> - add a doc comment for load_device_tree_from_sysfs >>> v1 -> v2: >>> - do not implement/expose read_fstree and load_device_tree_from_sysfs >>> if CONFIG_LINUX is not defined (lstat is not implemeted in mingw) >>> - correct indentation in read_fstree >>> - use /proc/device-tree symlink instead of /sys/firmware/devicetree/base >>> path (kernel.org/doc/Documentation/ABI/testing/sysfs-firmware-ofw) >>> - use g_file_get_contents in read_fstree >>> - introduce SYSFS_DT_BASEDIR macro and use strlen >>> - exit on error in load_device_tree_from_sysfs >>> - user error_setg >>> >>> RFC -> v1: >>> - remove runtime dependency on dtc binary and introduce read_fstree >>> --- >>> device_tree.c | 99 >>> ++++++++++++++++++++++++++++++++++++++++++++ >>> include/sysemu/device_tree.h | 8 ++++ >>> 2 files changed, 107 insertions(+) >>> >>> diff --git a/device_tree.c b/device_tree.c >>> index a9f5f8e..3797182 100644 >>> --- a/device_tree.c >>> +++ b/device_tree.c >>> @@ -17,6 +17,9 @@ >>> #include <fcntl.h> >>> #include <unistd.h> >>> #include <stdlib.h> >>> +#ifdef CONFIG_LINUX >>> +#include <dirent.h> >>> +#endif >>> >>> #include "qemu-common.h" >>> #include "qemu/error-report.h" >>> @@ -117,6 +120,102 @@ fail: >>> return NULL; >>> } >>> >>> +#ifdef CONFIG_LINUX >>> + >>> +#define SYSFS_DT_BASEDIR "/proc/device-tree" >> >> Use the sysfs path (/sys/firmware/device-tree/ IIRC) as this is just a >> symlink to sysfs and /proc is considered the legacy path. > I used the sysfs originally but I eventually found: > https://www.kernel.org/doc/Documentation/ABI/testing/sysfs-firmware-ofw > which states: > > "Userspace must not use the /sys/firmware/devicetree/base > path directly, but instead should follow /proc/device-tree > symlink. It is possible that the absolute path will change > in the future, but the symlink is the stable ABI. > " > > Do you confirm this statement is outdated.
Ah, no. My memory is just wrong. NM. Rob