blob: 2ad9b3800501aac1e56992ba970b87b5d1f9cd2a [file] [view]
## CantripOS capDL rootserver application
The other main Rust piece of CantripOS is the rootserver application that is located in
*projects/capdl/cantrip-os-rootserver*. This depends on the *capdl* and *model*
submodules of *cantrip-os-common*. While it is possible to select either
cantrip-os-rootserver or the C-based capdl-loader-app with a CMake setting
in the CAmkES project's easy-settings.cmake file; e.g. `projects/cantrip/easy-settings.cmake` has:
```
#set(CAPDL_LOADER_APP "capdl-loader-app" CACHE STRING "")
set(CAPDL_LOADER_APP "cantrip-os-rootserver" CACHE STRING "")
```
using capdl-loader-app is not advised because it lacks important functionality
found only in cantrip-os-rootserver.
The most important differences between cantrip-os-rootserver and capdl-loader-app are:
- Support for reclaiming the rootserver's memory on exit.
- Support for CantripOS CAmkES features (e.g. MemoryManager, RTReply caps).
- Reduced memory consumption.
Otherwise cantrip-os-rootserver should provide the same functionality though
certain features are not tested (e.g. CONFIG_CAPDL_LOADER_STATIC_ALLOC)
and/or not well-tested (e.g. CONFIG_CAPDL_LOADER_CC_REGISTERS).
Beware that many of the cmake rootserver configuration parameters are not plumbed
through to the Rust code. Its likely you will need to tweak features in the
Cargo.toml for cantrip-os-rootserver and/or cantrip-os-model (cantrip-os-common).
By default cantrip-os-rootserver prints information about the capDL specification
when it starts up. If you want verbose logging enable `LOG_DEBUG` or `LOG_TRACE`
in the Cargo.toml.
### [Next Section: Depending on CantripOS Rust crates](CrateDependencies.md)