Hello,
I would like to use the sel4.xml API description files to generate custom bindings for a
prototype language to interact directly with seL4 without going through libsel4 C API.
I assume that the structure of these files could change, which I'm willing to
accept, but wanted to know if these files are here to stay in the future?
I understand also that I will still have to parse libsel4 C headers to recover the full
API which I'm fine with too.
Do you see any trouble following this approach or would you recommend something else?
Hi, (sorry for the laggy response).
There is a wish to represent the libsel4 API in a language agnostic format to make
generating bindings for other languages easier but at the moment it isn't being
actively worked on.
Currently the parts of the API that are generated from language agnostic formats are the
invocation and syscall bindings from the *.xml files and some data type definitions that
are generated from *.bf (bitfield) files. The bitfield language is used to generate
bitfield struct access methods in C as well as automatically generating some of the
Isabelle theory scripts relating to the C methods.
In the future, the .xml files could get replaced with a more domain specific interface
language format but it is likely that that transition would happen after more of the C
definitions get converted to either .xml or .bf formats first.
I'm not sure whether you would want to manually translate all of the non-xml
definitions or also try and generate them. The definitions that change the most across
build configurations are already likely to be in a .xml representation as that was the
motivation for adding the .xml representation in the first place.
As for staying up to date with any changes, this discussion page
(
https://sel4.discourse.group/t/procedural-generation-of-the-sel4-api/24) will likely get
updated with any changes. Also feel free to weigh in on the discussion there too.