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.
Now, bare containers get their files from conts/bare_src instead of conts/test.
test directory will be used for the next generation test programs.
Also bare_src is tracked by git now with a minor mod to .gitignore.
Added a per-container container.h that inclues useful definitions.
Hello world now is in a separate file not to modify main too often.
hello world now prints container name and id.
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.
new file: conts/test/SConstruct
new file: conts/test/container.c
new file: conts/test/include/linker.lds
new file: conts/test/include/test.h
new file: conts/test/main.c
new file: conts/test/src/test.c
modified: scripts/bare/bare_generator.py