Test container is planned to test codezero microkernel extensively.
With these changes, everything is there to develop a full-featured test suite.
It also exemplifies how a new container type can be added to the system.
(cherry picked from commit f21fa53df421bfc8eeeaa096c89b98beed436c60)
Access permission bits are required eventually but currently are
not a critical concern and yet they complicate configuration. For
sake of simplicity they are removed to be added later on when
absolutely needed.
Now worked around.
CML2 seems to forget supressing derived symbols that are derived from
suppressed symbols. (Expected behaviour) This caused the configuration parser
to recognize the illegally visible symbols to be from those containers.
Now worked around by adding the extra check for CONFIG_CONTAINERS have been parsed.
A real solution requires fixing CML2 symbol visibility function.
CML boolean type compiles into #define and #undefs.
This is not useful for capabilities since a value of 0 or 1 can be
used automatically for setting or unsetting bits in permission words.
Meanwhile using an integer type with 0 - 1 range has a worse usability
experience than the boolean Y, N.
Also moved parsing of container.template.cml to newer Python argument
parsing format.
This parameter does not significantly pose a restriction on configuration.
It can be adjusted depending on phys_offset. Therefore we don't maintain it.
Container rules are too many and repetitive for each container. With this
change, the cml file is autogenerated from a container template cml and
the architecture cml, e.g. arm.cml. -c option determines the number of
containers. See build.py -h for more.
Deriving symbols didn't work because cml2 silently ignored symbols
that were declared previously for derivations. Not pre-declaring derived
symbols have solved the problem.
Also fixed a bug with configurator in that the containers
were not sorted properly and consequently an already filled
in container was getting overwritten by the new one.
modified: config/configuration.py
modified: configure.py
new file: generate_kernel_cinfo.py
deleted: src/generic/cinfo.c