Go to file
Sam Leffler 18c7660244 Add MemoryManager service.
The MemoryManager service allocates & frees seL4 objects. Requests can be
batched. Capabilities to dynamically allocated objects are moved in CNode
containers attached to IPC requests.

Specific changes:
- Add new CAmkES MemoryManager component.
- Add api's for allocating & freeing singleton objects (e.g.
  kata_cnode_alloc) and batches of objects (kata_object_alloc &
  kata_object_free).
- Add support to kata-os-rootserver to hand-off UntypedMemory objects
  just before terminating. The objects are placed directly in the
  MemoryManager's top-level CNode and a BootInfo frame is constructed
  that describes where the objects are.
- Switch the rootserver to kata-os-rootserver as the C version lacks
  the UntypedMemory hand-off.
- Add test_bootinfo kata-shell command to dump the MemoryManager BootInfo
  frame contents (broken for now because it directlry references the
  shared page).
- Add test_obj_alloc kata-shell command that exercises the MemoryManager
  singleton and batch api's

While here, did some cleanup of arg handling in kata-shell.

TODO: top-level object allocations use a simplistic capability allocator
TODO: move test_bootinfo to the MemoryManager and add an interface rpc

Change-Id: I778b2d5fe7f2f9b65ee642ff905cf56d4b2b02fd
GitOrigin-RevId: 7fc72d1927bba165234955e68f8b9ad1b556f6fb
2022-10-06 18:41:15 +00:00
apps/system Add MemoryManager service. 2022-10-06 18:41:15 +00:00
src processmanager: Initial project skeleton 2022-10-06 17:54:12 +00:00
.gitignore Ignores __pycache__ files 2022-10-06 18:34:04 +00:00
CMakeLists.txt Replaces processmanager with a one-app CAmkES assembly for the entire Kata OS 2022-10-06 17:54:23 +00:00
easy-settings.cmake Add MemoryManager service. 2022-10-06 18:41:15 +00:00
README.md Replaces processmanager with a one-app CAmkES assembly for the entire Kata OS 2022-10-06 17:54:23 +00:00
settings.cmake Replaces processmanager with a one-app CAmkES assembly for the entire Kata OS 2022-10-06 17:54:23 +00:00

Kata OS

This is a CAmkES project that assembles the entire Kata OS. It exists outside the seL4 source trees, since it contains code not intended to go to upstream seL4.

This uses the standard CAmkES build system by symlinking CMakeLists.txt. It also symlinks settings.cmake, and so retains the notion of "apps," which enables the build system to switch which assembly it builds using the CAMKES_APP CMake cache value. Kata OS just has one app, system.