mirror of
https://github.com/rd-stuffs/msm-4.14.git
synced 2025-02-20 11:45:48 +08:00
This adds the following commits from upstream: 49d3089 meson: fix installation with meson-python d54aaf9 pylibfdt: clean up python build directory ab86f1e pylibfdt: add VERSION.txt to Python sdist 7b8a30e pylibfdt: fix Python version ff4f17e pylibfdt/Makefile.pylibfdt: fix Python library being rebuild during install 9e313b1 pylibfdt/meson.build: fix Python library being rebuilt during install d598fc3 tests/run_tests.sh: fix Meson library path being dropped b98239d tests/meson.build: fix python and yaml tests not running c17d76a checks: Check the overall length of "interrupt-map" ae26223 libfdt: overlay: Refactor overlay_fixup_phandle 4dd831a libfdt: tests: Update test case for overlay_bad_fixup e6d2942 tests: Remove two_roots and named_root from LIBTREE_TESTS_L and add all dtb filenames generated by dumptrees to TESTS_TREES_L in Makefile.tests 855c934 tests: fix tests broken under Meson 4fd3f4f github: enforce testing pylibfdt and yaml support 9ca7d62 meson: split run-tests by type bb51223 meson: fix dependencies of tests e819006 meson: fix pylibfdt missing dependency on libfdt 8221238 pylibfdt: fix get_mem_rsv for newer Python versions 1fad065 libfdt: overlay: ensure that existing phandles are not overwritten b0aacd0 github: add windows/msys CI build ae97d97 github: Don't accidentally suppress test errors 057a7db github: Display meson test logs on failure 92b5d4e pylibfdt: Remove some apparently deprecated options from setup.py 417e329 github: Update to newer checkout action 5e6cefa fix MinGW format attribute 24f6001 libfdt: Simplify adjustment of values for local fixups da39ee0 libfdt: rework shared/static libraries a669223 Makefile: do not hardcode the `install` program path 3fbfdd0 libfdt: fix duplicate meson target dcef5f8 tests: use correct pkg-config when cross compiling 0b8026f meson: allow building from shallow clones 95c74d7 treesource: Restore string list output when no type markers 2283dd7 libfdt: fdt_path_offset_namelen: Reject empty path 79b9e32 libfdt: fdt_get_alias_namelen: Validate aliases 52157f1 pylibfdt: Support boolean properties d774337 dtc: fix missing string in usage_opts_help ad8bf9f libfdt: Fix fdt_appendprop_addrrange documentation 6c5e189 github: add workflow for Meson builds a3dc9f0 libfdt: rename libfdt-X.Y.Z.so to libfdt.so.X.Y.Z 3501994 workflows: build: remove setuptools_scm hack cd3e230 pylibfdt: use fallback version in tarballs 0f58645 move release version into VERSION.txt 3816595 libfdt: add missing version symbols 5e98b59 editorconfig: use tab indentation for version.lds d030a89 tests: generate dtbs in Meson build directory 8d8372b tests: fix use of deprecated meson methods 761114e pylibtfdt: fix use of deprecated meson method bf6377a meson: set minimum Meson version to 0.56.0 4c68e4b libfdt: fix library version to match project version bdc5c87 meson: allow disabling tests f088e38 Makefile: allow to install libfdt without building executables 6df5328 Fix use of <ctype.h> functions ccf1f62 libfdt: Fix a typo in libfdt.h 71a8b8e libfdt: meson: Fix linking on macOS linker 589d8c7 dtc: Add an option to generate __local_fixups__ and __fixups__ e836466 CI: Add build matrix with multiple Linux distributions 3b02a94 dtc: Correct invalid dts output with mixed phandles and integers d488895 tests: Add additional tests for device graph checks ea3b9a1 checks: Fix crash in graph_child_address if 'reg' cell size != 1 b2b9671 livetree: fix off-by-one in propval_cell_n() bounds check ab481e4 Add definition for a GitHub Actions CI job c88038c Drop obsolete/broken CI definitions 0ac8b30 yaml: Depend on libyaml >= 0.2.3 f1657b2 tests: Add test cases for bad endpoint node and remote-endpoint prop checks 44bb89c checks: Fix segmentation fault in check_graph_node 60bcf1c improve documentation for fdt_path_offset() a6f997b add fdt_get_symbol() and fdt_get_symbol_namelen() functions 18f5ec1 use fdt_path_getprop_namelen() in fdt_get_alias_namelen() df09327 add fdt_path_getprop_namelen() helper 129bb4b doc: dt-object-internal: Fix a typo 390f481 fdtoverlay: Drop a a repeated article 9f8b382 manual: Fix and improve documentation about -@ 2cdf93a fdtoverlay: Fix usage string to not mention "<type>" 72fc810 build-sys: add -Wwrite-strings 083ab26 tests: fix leaks spotted by ASAN 6f8b28f livetree: fix leak spotted by ASAN fd68bb8 Make name_node() xstrdup its name argument 4718189 Delay xstrdup() of node and property names coming from a flat tree 0b842c3 Make build_property() xstrdup its name argument 9cceabe checks: correct I2C 10-bit address check 0d56145 yamltree.c: fix -Werror=discarded-qualifiers & -Werror=cast-qual 61fa22b checks: make check.data const 7a1d72a checks.c: fix check_msg() leak ee57999 checks.c: fix heap-buffer-overflow 44c9b73 tests: fix -Wwrite-strings 5b60f51 srcpos.c: fix -Wwrite-strings 32174a6 meson: Fix cell overflow tests when running from meson 64a907f meson.build: bump version to 1.7.0 e3cde06 Add -Wsuggest-attribute=format warning, correct warnings thus generated 4182182 Use #ifdef NO_VALGRIND 71c19f2 Do not redefine _GNU_SOURCE if already set 039a994 Bump version to v1.7.0 9b62ec8 Merge remote-tracking branch 'gitlab/main' 3f29d6d pylibfdt: add size_hint parameter for get_path 2022bb1 checks: Update #{size,address}-cells check for 'dma-ranges' abbd523 pylibfdt: Work-around SWIG limitations with flexible arrays a41509b libfdt: Replace deprecated 0-length arrays with proper flexible arrays 2cd89f8 dtc: Warning rather than error on possible truncation of cell values 55778a0 libfdt: tests: add get_next_tag_invalid_prop_len 7359034 libfdt: prevent integer overflow in fdt_next_tag 035fb90 libfdt: add fdt_get_property_by_offset_w helper 98a0700 Makefile: fix infinite recursion by dropping non-existent `%.output` a036cc7 Makefile: limit make re-execution to avoid infinite spin c6e9210 libdtc: remove duplicate judgments e37c256 Don't generate erroneous fixups from reference to path 5045465 libfdt: Don't mask fdt_get_name() returned error e64a204 manual.txt: Follow README.md and remove Jon f508c83 Update README in MANIFEST.in and setup.py to README.md c2ccf8a Add description of Signed-off-by lines 90b9d9d Split out information for contributors to CONTRIBUTING.md 0ee1d47 Remove Jon Loeliger from maintainers list b33a73c Convert README to README.md 7ad6073 Allow static building with meson fd9b8c9 Allow static building with make fda71da libfdt: Handle failed get_name() on BEGIN_NODE c7c7f17 Fix test script to run also on dash shell 01f23ff Add missing relref_merge test to meson test list ed31080 pylibfdt: add FdtRo.get_path() c001fc0 pylibfdt: fix swig build in install 26c54f8 tests: add test cases for label-relative path references ec7986e dtc: introduce label relative path references 651410e util: introduce xstrndup helper 4048aed setup.py: fix out of tree build ff5afb9 Handle integer overflow in check_property_phandle_args() ca72944 README: Explain how to add a new API function c0c2e11 Fix a UB when fdt_get_string return null cd5f69c tests: setprop_inplace: use xstrdup instead of unchecked strdup a04f690 pylibfdt: add Property.as_*int*_array() 8310271 pylibfdt: add Property.as_stringlist() d152126 Fix Python crash on getprop deallocation 17739b7 Support 'r' format for printing raw bytes with fdtget 45f3d1a libfdt: overlay: make overlay_get_target() public c19a4ba libfdt: fix an incorrect integer promotion 1cc41b1 pylibfdt: Add packaging metadata db72398 README: Update pylibfdt install instructions 383e148 pylibfdt: fix with Python 3.10 23b56cb pylibfdt: Move setup.py to the top level 69a7607 pylibfdt: Split setup.py author name and email 0b106a7 pylibfdt: Use setuptools_scm for the version c691776 pylibfdt: Use setuptools instead of distutils 5216f3f libfdt: Add static lib to meson build 4eda259 CI: Cirrus: bump used FreeBSD from 12.1 to 13.0 0a3a9d3 checks: Add an interrupt-map check 8fd2474 checks: Ensure '#interrupt-cells' only exists in interrupt providers d8d1a9a checks: Drop interrupt provider '#address-cells' check 52a16fd checks: Make interrupt_provider check dependent on interrupts_extended_is_cell 37fd700 treesource: Maintain phandle label/path on output e33ce1d flattree: Use '\n', not ';' to separate asm pseudo-ops d24cc18 asm: Use assembler macros instead of cpp macros ff3a30c asm: Use .asciz and .ascii instead of .string 5eb5927 fdtdump: fix -Werror=int-to-pointer-cast 0869f82 libfdt: Add ALIGNMENT error string 69595a1 checks: Fix bus-range check 72d09e2 Makefile: add -Wsign-compare to warning options b587787 checks: Fix signedness comparisons warnings 69bed6c dtc: Wrap phandle validity check 9102211 fdtget: Fix signedness comparisons warnings d966f08 tests: Fix signedness comparisons warnings ecfb438 dtc: Fix signedness comparisons warnings: pointer diff 5bec74a dtc: Fix signedness comparisons warnings: reservednum 24e7f51 fdtdump: Fix signedness comparisons warnings b6910be Bump version to v1.6.1 21d61d1 Fix CID 1461557 4c2ef8f checks: Introduce is_multiple_of() e59ca36 Make handling of cpp line information more tolerant 0c3fd9b checks: Drop interrupt_cells_is_cell check 6b3081a checks: Add check_is_cell() for all phandle+arg properties 2dffc19 yamltree: Remove marker ordering dependency 61e5134 pylibfdt: Rework "avoid unused variable warning" lines c8bddd1 tests: add a positive gpio test case ad4abfa checks: replace strstr and strrchr with strends 09c6a6e dtc.h: add strends for suffix matching 9bb9b8d checks: tigthen up nr-gpios prop exception b07b62e libfdt: Add FDT alignment check to fdt_check_header() a2def54 libfdt: Check that the root-node name is empty 4ca61f8 libfdt: Check that there is only one root node 34d7082 dtc: Remove -O dtbo support 8e7ff26 libfdt: Fix a possible "unchecked return value" warning 8887526 checks: Warn on node-name and property name being the same 9d2279e checks: Change node-name check to match devicetree spec f527c86 util: limit gnu_printf format attribute to gcc >= 4.4.0 183df9e gitignore: Ignore the swp files 0db6d09 gitignore: Add cscope files 307afa1 Update Jon Loeliger's email ca16a72 fdtdump: Fix gcc11 warning 64990a2 srcpos: increase MAX_SRCFILE_DEPTH 163f046 dtc: Allow overlays to have .dtbo extension 3b01518 Set last_comp_version correctly in new dtb and fix potential version issues in fdt_open_into f7e5737 tests: Fix overlay_overlay_nosugar test case 7cd5d5f libfdt: Tweak description of assume-aligned load helpers a7c4040 libfdt: Internally perform potentially unaligned loads bab85e4 meson: increase default timeout for tests f8b4609 meson: do not assume python is installed, skip tests 30a56bc meson: fix -Wall warning 5e73586 libfdt: Check for 8-byte address alignment in fdt_ro_probe_() 67849a3 build-sys: add meson build 05874d0 pylibfdt: allow build out of tree 3bc3a6b dtc: Fix signedness comparisons warnings: Wrap (-1) e1147b1 dtc: Fix signedness comparisons warnings: change types 04cf1fd convert-dtsv0: Fix signedness comparisons warning b30013e libfdt: Fix kernel-doc comments cbca977 checks: Allow PCI bridge child nodes without an address 73e0f14 libfdt: fdt_strerror(): Fix comparison warning 6c2be7d libfdt: fdt_get_string(): Fix sequential write comparison warnings 82525f4 libfdt: libfdt_wip: Fix comparison warning fb1f65f libfdt: fdt_create_with_flags(): Fix comparison warning f28aa27 libfdt: fdt_move(): Fix comparison warnings 3d7c6f4 libfdt: fdt_add_string_(): Fix comparison warning 10f6827 libfdt: fdt_node_offset_by_phandle(): Fix comparison warning 07158f4 libfdt: overlay: Fix comparison warning ce9e1f2 libfdt: fdt_resize(): Fix comparison warning faa76fc libfdt: fdt_splice_(): Fix comparison warning 54dca09 libfdt: fdt_get_string(): Fix comparison warnings f8e11e6 libfdt: fdt_grab_space_(): Fix comparison warning 0c43d4d libfdt: fdt_mem_rsv(): Fix comparison warnings 442ea3d libfdt: fdt_offset_ptr(): Fix comparison warnings ca19c3d Makefile: Specify cflags for libyaml 7bb86f1 libfdt: fix fdt_check_node_offset_ w/ VALID_INPUT 3d522ab dtc: Include stdlib.h in util.h 808cdaa dtc: Avoid UB when shifting 3e3138b libfdt: fix fdt_check_full buffer overrun 9d7888c dtc: Consider one-character strings as strings 8259d59 checks: Improve i2c reg property checking fdabcf2 checks: Remove warning for I2C_OWN_SLAVE_ADDRESS 2478b16 libfdt: add extern "C" for C++ f68bfc2 libfdt: trivial typo fix 7be250b libfdt: Correct condition for reordering blocks 81e0919 checks: Add interrupt provider test 85e5d83 Makefile: when building libfdt only, do not add unneeded deps b28464a Fix some potential unaligned accesses in dtc 87a656a check: Inform about missing ranges 73d6e9e libfdt: fix undefined behaviour in fdt_splice_() 2525da3 Bump version to v1.6.0 62cb4ad Execute tests on FreeBSD with Cirrus CI 1f9a417 tests: Allow running the testsuite on already installed binary / libraries c5995dd tests: Honour NO_YAML make variable e4ce227 tests: Properly clean up .bak file from tests 9b75292 tests: Honour $(NO_PYTHON) flag from Makefile in run_tests.sh 6c253af Encode $(NO_PYTHON) consistently with other variables 95ec8ef tests: No need to explicitly pass $PYTHON from Make to run_tests.sh 2b5f62d tests: Let run_tests.sh run Python tests without Makefile assistance 76b43dc checks: Add 'dma-ranges' check e5c92a4 libfdt: Use VALID_INPUT for FDT_ERR_BADSTATE checks e5cc26b libfdt: Add support for disabling internal checks 28fd759 libfdt: Improve comments in some of the assumptions fc207c3 libfdt: Fix a few typos 0f61c72 libfdt: Allow exclusion of fdt_check_full() f270f45 libfdt: Add support for disabling ordering check/fixup c18bae9 libfdt: Add support for disabling version checks fc03c4a libfdt: Add support for disabling rollback handling 77563ae libfdt: Add support for disabling sanity checks 57bc632 libfdt: Add support for disabling dtb checks 4649624 Add a way to control the level of checks in the code 0c5326c libfdt: De-inline fdt_header_size() cc6a5a0 Revert "yamltree: Ensure consistent bracketing of properties with phandles" 0e9225e Remove redundant YYLOC global declaration cab09ee Move -DNO_VALGRIND into CPPFLAGS 0eb1cb0 Makefile: pass $(CFLAGS) also during dependency generation c40aeb6 travis.yml: Run tests on the non-x86 builders, too 9f86aff Add .cirrus.yml for FreeBSD build 34c8227 Avoid gnu_printf attribute when using Clang 7430009 tests: default to 'cc' if CC not set adcd676 Add test-case for trailing zero d9c55f8 Remove trailing zero from the overlay path 7a22132 pylibfdt: Adjust for deprecated test methods dbe80d5 tests: add extension to sed -i for GNU/BSD sed compatibility af57d44 libfdt: Correct prototype for fdt_ro_probe_() 6ce585a Use correct inttypes.h format specifier 7150286 support byacc in addition to bison fdf3f6d pylibfdt: Correct the type for fdt_property_stub() 430419c tests: fix some python warnings 588a29f util: use gnu_printf format attribute bc87670 fstree: replace lstat with stat 4c3c4cc dumptrees: pass outputdir as first argument aa522da tests: allow out-of-tree test run 0d0d0fa fdtoverlay: Return non-zero exit code if overlays can't be applied 4605eb0 Add .editorconfig 18d7b2f yamltree: Ensure consistent bracketing of properties with phandles 67f790c libfdt.h: add explicit cast from void* to uint8_t* in fdt(32|64)_st b111122 pylibfdt: use python3 shebang 60e0db3 Ignore phandle properties in /aliases 95ce19c README: update for Python 3 5345db1 livetree: simplify condition in get_node_by_path b8d6eca libfdt: Allow #size-cells of 0 184f510 Makefile: Add EXTRA_CFLAGS variable 812b195 libfdt: Tweak data handling to satisfy Coverity 5c715a4 fdtoverlay: Ignore symbols in overlays which don't apply to the target tree b993534 fdtoverlay: Allow adding labels to __overlay__ nodes in overlays d6de81b pylibfdt: Add support for fdt_get_alias() 1c17714 pylibfdt: Correct the FdtSw example ad57e45 tests: Add a failed test case for 'fdtoverlay' with long target path bbe3b36 fdtoverlay: Rework output allocation 6c2e61f fdtoverlay: Improve error messages 297f5ab fdtoverlay: Check for truncated overlay blobs 702c1b6 README.license: Update to reflect SPDX tag usage 4097bbf dtc: Add GPLv2 SPDX tags to files missing license text 94f87cd libfdt: Add dual GPL/BSD SPDX tags to files missing license text c4ffc05 tests: Replace license boilerplate with SPDX tags a5ac29b pylibfdt: Replace dual GPLv2/BSD license boilerplate with SPDX tags 7fb0f4d libfdt: Replace GPL/BSD boilerplate/reference with SPDX tags acfe84f dtc: Replace GPLv2 boilerplate/reference with SPDX tags 87963ee livetree: add missing type markers in generated overlay properties 825146d Fix typos in various documentation and source files 25bb080 Update the GPL2 text to the latest revision 243176c Fix bogus error on rebuild ce01b21 libfdt: Add FDT_CREATE_FLAG_NO_NAME_DEDUP flag that trades size for speed fbb6275 libfdt: Introduce fdt_create_with_flags() 228a44c libfdt: Ensure fdt_add_property frees allocated name string on failure 8f69567 Avoid assertion in check_interrupts_property() 5c3513f Link tools and tests against libfdt shared library 00f9feb tests: Rename tests.sh to testutils.sh c5d4518 Clean up LDLIBS handling 6ef8fcd Rebuild libfdt shared object if versioning linker script changes 26ee65a Use Python3 by default cca6546 libfdt: Make fdt_get_max_phandle() an inline 7308750 libfdt: Add phandle generation helper 7dfb61b libfdt: Use fdt_find_max_phandle() 2bc5b66 libfdt: Add new maximum phandle lookup function 7fcf820 libfdt: add fdt_append_addrrange() ae795b2 checks: Do not omit nodes with labels if symbol generation is requested eac2ad4 Update version.lds again f67b471 Revert "libfdt: Add phandle generation helper" 54ea41c libfdt: Add phandle generation helper 4762ad0 checks: Fix spelling in check_graph_endpoint d37f6b2 Bump version to v1.5.0 a4b1a30 pylibfdt:tests: Extend the way how to find a Python module 625dd8a pylibfdt: Change how passing tests are recognized 3646316 pylibfdt: Test fdt.setprop take bytes on Python 3, add error handling cb0f454 pylibfdt: check_err accepts only integer as a first argument. 4b68c6b pylibfdt: Proper handling of bytes/unicode strings and octal literals 78e113e Use PRIxPTR for printing uintptr_t values ea7a8f6 libfdt: Fix FDT_ERR_NOTFOUND typos in documentation 5aafd7c libfdt: Fix fdt_getprop_by_offset() parameter name in documentation 7cbc550 checks: Add unit address check if node is enabled f267e67 checks: Fix crash with multiple source annotations 3616b9a checks: Use source position information for check failures 2bdbd07 checks: Make each message output atomic a1eff70 util: Add xa{v}sprintf_append functions 82a52ce libfdt: Add a test for fdt_getprop_by_offset() 607b858 PEP8 / Flake8 cleanups for setup.py f9c0a42 Remove broken objdir / srcdir support 5182b5e pylibfdt: Use common PREFIX variable d45bf1f Refine make tests_clean target 99284c4 Refine pylibfdt_clean target a4629cf Refine libfdt_clean target 08380fc tests: Use modern octal literals for Python 8113c00 pylibfdt: Allow switch to Python 3 via environment variable PYTHON 11738cf libfdt: Don't use memcpy to handle unaligned reads on ARM 86a288a checks: Restructure check_msg to decrease indentation 5667e7e annotations: add the annotation functionality 8e20ccf annotations: add positions ca930e2 tests: Don't lose errors from make checkm 43366bb tests: Property count valgrind errors in wrapped tests 5062516 srcpos: Remove srcpos_empty a3143fa Revert "annotations: add positions" 403cc79 checks: Update SPI bus check for 'spi-slave' baa1d2c annotations: add positions ff2ad38 Merge remote-tracking branch 'origin/pr/18' aa7254d libfdt: return correct value if #size-cells property is not present 49903ae use ptrdiff_t modifier for printing pointer differences da2b691 treesource: Fix dts output for phandles in middle of a sequence of ints 8f8b77a tests: Wrap check_align() calls with base_run_test() 522d81d Fix dts output with a REF_PATH marker e45198c Added test cases for target references 0fcffda Merge nodes with local target label references 1e4a092 pylibfdt: Don't have setup.py depend on where it's invoked from ca399b1 pylibfdt: Eliminate run_setup make function 98972f1 pylibfdt: Improved version extraction 7ba2be6 pylibfdt: Don't silence setup.py when V=1 7691f9d pylibfdt: Make SETUP make variable 855b996 pylibfdt: Simpler CFLAGS handling 47cafbe pylibfdt: Link extension module with libfdt rather than rebuilding dd695d6 pylibfdt: Correctly set build output directory 5932752 pylibfdt: We don't need include files from the base directory e84742a checks: fix simple-bus compatible matching 8c59a97 Fix missing labels when emitting dts format d448f9a Revert dts output formatting changes of spaces around brackets c86da84 Add support for YAML encoded output 361b5e7 Make type_marker_length helper public bfbfab0 pylibfdt: Add a means to add and delete notes 9005f41 pylibfdt: Allow delprop() to return errors b94c056 Make valgrind optional fd06c54 tests: Better testing of dtc -I fs mode c3f50c9 tests: Allow dtbs_equal_unordered to ignore mem reserves 0ac9fde dtc: trivial '-I fs -O dts' test 0fd1c8c pylibfdt: fdt_get_mem_rsv returns 2 uint64_t values 04853ca pylibfdt: Don't incorrectly / unnecessarily override uint64_t typemap 9619c86 Kill bogus TYPE_BLOB marker type ac68ff9 parser: add TYPE_STRING marker to path references 90a190e checks: add SPI bus checks 53a1bd5 checks: add I2C bus checks 88f1890 dtc: Bump version to v1.4.7 85bce8b tests: Correction to vg_prepare_blob() 57f7f9e tests: Don't call memcmp() with NULL arguments c12b2b0 libfdt: fdt_address_cells() and fdt_size_cells() 3fe0eed livetree: Set phandle properties type to uint32 853649a pylibfdt: Support the sequential-write interface 9b0e4fe tests: Improve fdt_resize() tests 1087504 libfdt: Add necessary header padding in fdt_create() c72fa77 libfdt: Copy the struct region in fdt_resize() 32b9c61 Preserve datatype markers when emitting dts format 6dcb8ba libfdt: Add helpers for accessing unaligned words 42607f2 tests: Fix incorrect check name 'prop_name_chars' 9d78c33 tests: fix grep for checks error messages b770f3d pylibfdt: Support setting the name of a node 2f0d07e pylibfdt: Add functions to set and get properties as strings 354d3dc pylibfdt: Update the bytearray size with pack() 3c374d4 pylibfdt: Allow reading integer values from properties 49d32ce pylibfdt: Use an unsigned type for fdt32_t 481246a pylibfdt: Avoid accessing the internal _fdt member in tests 9aafa33 pylibfdt: Add functions to update properties 5a59867 pylibfdt: Support device-tree creation/expansion 483e170 pylibfdt: Add support for reading the memory reserve map 29bb05a pylibfdt: Add support for the rest of the header functions 582a715 pylibfdt: Add support for fdt_next_node() f0f8c91 pylibfdt: Reorder functions to match libfdt.h 64a69d1 pylibfdt: Return string instead of bytearray from getprop() 4d09a83 fdtput: Add documentation e617cbe fdtget: Add documentation 180a939 Use <inttypes.h> format specifiers in a bunch of places we should b9af3b3 scripts/dtc: Fixed format mismatch in fprintf 4b8fcc3 libfdt: Add fdt_check_full() function c14223f tests: Use valgrind client requests for better checking 5b67d2b tests: Better handling of valgrind errors saving blobs e2556aa tests: Remove unused #define fb9c6ab Use size_t for blob lengths in utilfdt_read* 0112fda libfdt: Add fdt_header_size() 6473a21 Consolidate utilfdt_read_len() variants d5db538 libfdt: Safer access to memory reservations 719d582 libfdt: Propagate name errors in fdt_getprop_by_offset() 70166d6 libfdt: Safer access to strings section eb890c0 libfdt: Make fdt_check_header() more thorough 899d6fa libfdt: Improve sequential write state checking 04b5b40 libfdt: Clean up header checking functions 44d3efe Preserve datatype information when parsing dts f0be81b Make Property a subclass of bytearray 24b1f3f pylibfdt: Add a method to access the device tree directly Change-Id: Ia70a780626a7bc816341f22517a2626add444180 Signed-off-by: Richard Raya <rdxzv.dev@gmail.com>
77 lines
1.5 KiB
C
77 lines
1.5 KiB
C
// SPDX-License-Identifier: GPL-2.0-or-later
|
|
/*
|
|
* (C) Copyright David Gibson <dwg@au1.ibm.com>, IBM Corporation. 2005.
|
|
*/
|
|
|
|
#include "dtc.h"
|
|
|
|
#include <dirent.h>
|
|
#include <sys/stat.h>
|
|
|
|
static struct node *read_fstree(const char *dirname)
|
|
{
|
|
DIR *d;
|
|
struct dirent *de;
|
|
struct stat st;
|
|
struct node *tree;
|
|
|
|
d = opendir(dirname);
|
|
if (!d)
|
|
die("Couldn't opendir() \"%s\": %s\n", dirname, strerror(errno));
|
|
|
|
tree = build_node(NULL, NULL, NULL);
|
|
|
|
while ((de = readdir(d)) != NULL) {
|
|
char *tmpname;
|
|
|
|
if (streq(de->d_name, ".")
|
|
|| streq(de->d_name, ".."))
|
|
continue;
|
|
|
|
tmpname = join_path(dirname, de->d_name);
|
|
|
|
if (stat(tmpname, &st) < 0)
|
|
die("stat(%s): %s\n", tmpname, strerror(errno));
|
|
|
|
if (S_ISREG(st.st_mode)) {
|
|
struct property *prop;
|
|
FILE *pfile;
|
|
|
|
pfile = fopen(tmpname, "rb");
|
|
if (! pfile) {
|
|
fprintf(stderr,
|
|
"WARNING: Cannot open %s: %s\n",
|
|
tmpname, strerror(errno));
|
|
} else {
|
|
prop = build_property(de->d_name,
|
|
data_copy_file(pfile,
|
|
st.st_size),
|
|
NULL);
|
|
add_property(tree, prop);
|
|
fclose(pfile);
|
|
}
|
|
} else if (S_ISDIR(st.st_mode)) {
|
|
struct node *newchild;
|
|
|
|
newchild = read_fstree(tmpname);
|
|
newchild = name_node(newchild, xstrdup(de->d_name));
|
|
add_child(tree, newchild);
|
|
}
|
|
|
|
free(tmpname);
|
|
}
|
|
|
|
closedir(d);
|
|
return tree;
|
|
}
|
|
|
|
struct dt_info *dt_from_fs(const char *dirname)
|
|
{
|
|
struct node *tree;
|
|
|
|
tree = read_fstree(dirname);
|
|
tree = name_node(tree, "");
|
|
|
|
return build_dt_info(DTSF_V1, NULL, tree, guess_boot_cpuid(tree));
|
|
}
|