On Tue, Sep 15, 2020 at 12:07 PM Andrei Ziureaev <andreiziureaev@xxxxxxxxx> wrote: > > From: Andrei Ziureaev <andrei.ziureaev@xxxxxxx> > > I added full documentation to the live tree API and changed the style of > comments in "dtc-plugin.h" to kernel-doc. David, more comments on this series? > > The live tree can be kept read-only. So, the input to a plugin is some > information about the tree and its outputs are printed error messages > and an ack/nack return back to DTC. > =========== > > This is one possible implementation of a plugin interface for DTC. > > A plugin interface would allow us to add checks in languages other than > C. Specifically, it would allow DTC and DT Schema (which is written in > Python) to be integrated. > > It would also allow for better debugging of dts files. For example, DT > Schema would be able to print dts source line information, without us > having to add source line annotations to yaml files. > > Plugins are allowed read-only access to the internal unflattened device > tree using the provided API. They can print error messages and return a > boolean status back to DTC. > > There's a question of whether we should relicense some headers to > dual BSD to be able call Python code. > > Any thoughts would be much appreciated. > > Thanks, > Andrei. > > Changes in v4: > - full documentation for live tree API > - changed comments to kernel-doc > - simplified "Exporting Functionality" in the manual > - the docs mention that the tree is read-only > > Changes in v3: > - live tree API (dt.h and dt.c) > - additional functionality in dtc.h > - plugins have to implement prototypes > - improved documentation > > Changes in v2: > - improved documentation > - plugins must register with the build system > - the "validate_fn_t" hook can return a status > - define "struct reserve_info" in "dtc-plugin.h" > - specify that minor versions are compatible > - check if plugin_dir is NULL, just in case > - better variable names in register_plugin_info > > Andrei Ziureaev (4): > dtc: Add marker type functionality to dtc.h > dtc: Add a live tree API > dtc: Add plugin documentation and examples > dtc: Add a plugin interface > > Documentation/manual.txt | 154 ++++++++++++++++ > Makefile | 29 ++- > Makefile.dtc | 1 + > dt.c | 158 ++++++++++++++++ > dt.h | 299 +++++++++++++++++++++++++++++++ > dtc-plugin.h | 90 ++++++++++ > dtc.c | 142 ++++++++++++++- > dtc.h | 57 ++++++ > plugins/example/Makefile.example | 27 +++ > plugins/example/example.c | 33 ++++ > treesource.c | 8 +- > 11 files changed, 992 insertions(+), 6 deletions(-) > create mode 100644 dt.c > create mode 100644 dt.h > create mode 100644 dtc-plugin.h > create mode 100644 plugins/example/Makefile.example > create mode 100644 plugins/example/example.c > > -- > 2.17.1 >