T258, T264, T270: Implement two-level cspace layout using L1/L2 CNode objects.
authorSimon Gerber <simon.gerber@inf.ethz.ch>
Fri, 22 Jul 2016 09:40:57 +0000 (11:40 +0200)
committerSimon Gerber <simon.gerber@inf.ethz.ch>
Fri, 22 Jul 2016 09:41:06 +0000 (11:41 +0200)
commit17948f609147bfc45022640799609f06c83a8345
tree5cf52cfe49cb6596f34bb40d4f9c6d37bd1ecf42
parentad66feb74c2ce8465e87c036b8496fc3c59238de
T258, T264, T270: Implement two-level cspace layout using L1/L2 CNode objects.

distops functionality is NYI.

This commit also makes the root cnodes explicit for sys_map(), closes T270.

Notable changes:
 * LRPC LMP endpoints are regular capabilities in L2 cnode, no longer in root
   cnode.
 * Capability operations take a capability address for the root cnode relative
   to which capability addresses are to be resolved. The root cnode capability
   address must be resolvable in the current domains cspace.

Closes T264.

Signed-off-by: Simon Gerber <simon.gerber@inf.ethz.ch>
77 files changed:
errors/errno.fugu
include/arch/x86_64/barrelfish/invocations_arch.h
include/arch/x86_64/barrelfish/lmp_chan_arch.h
include/barrelfish/caddr.h
include/barrelfish/capabilities.h
include/barrelfish/cspace.h
include/barrelfish/debug.h
include/barrelfish/slot_alloc.h
include/barrelfish_kpi/capabilities.h
include/barrelfish_kpi/init.h
include/barrelfish_kpi/lmp.h
include/bitmacros.h
include/target/x86/barrelfish/pmap_target.h
kernel/arch/x86/startup_x86.c
kernel/arch/x86_64/entry.S
kernel/arch/x86_64/irq.c
kernel/arch/x86_64/page_mappings_arch.c
kernel/arch/x86_64/syscall.c
kernel/cap_delete.c
kernel/capabilities.c
kernel/dispatch.c
kernel/include/capabilities.h
kernel/include/syscall.h
kernel/monitor.c
kernel/startup.c
kernel/syscall.c
lib/barrelfish/arch/x86/sys_debug.c
lib/barrelfish/capabilities.c
lib/barrelfish/debug.c
lib/barrelfish/lmp_chan.c
lib/barrelfish/lmp_endpoints.c
lib/barrelfish/slot_alloc/multi_slot_alloc.c
lib/barrelfish/slot_alloc/single_slot_alloc.c
lib/barrelfish/slot_alloc/slot_alloc.c
lib/barrelfish/slot_alloc/slot_alloc_2.c
lib/barrelfish/slot_alloc/twolevel_slot_alloc.c
lib/barrelfish/target/x86/pmap_x86.c
lib/barrelfish/target/x86_64/pmap_target.c
lib/barrelfish/terminal.c
lib/barrelfish/vspace/memobj_anon.c
lib/mdb/mdb_tree.c
lib/mm/mm.c
lib/mm/slot_alloc.c
lib/mm/slot_alloc_2.c
lib/octopus/server/service.c
lib/spawndomain/arch/x86/spawn_arch.c
lib/spawndomain/spawn.c
tools/asmoffsets/asmoffsets.c
tools/qemu-wrapper.sh
usr/acpi/acpi_main.c
usr/arrakismon/vmkitmon.c
usr/bench/lrpc_bench.c
usr/init/mem_alloc.c
usr/init/spawn.c
usr/mem_serv/mem_serv.c
usr/mem_serv_dist/mem_serv.c
usr/monitor/capops/caplock.c
usr/monitor/capops/capsend.c
usr/monitor/capops/copy.c
usr/monitor/capops/delete.c
usr/monitor/capops/move.c
usr/monitor/capops/retrieve.c
usr/monitor/capops/retype.c
usr/monitor/capops/revoke.c
usr/monitor/include/arch/x86_64/monitor_invocations_arch.h
usr/monitor/include/dom_invocations.h
usr/monitor/include/domcap.h
usr/monitor/include/monitor_invocations.h
usr/monitor/invocations.c
usr/monitor/monitor_rpc_server.c
usr/monitor/monitor_server.c
usr/monitor/ram_alloc.c
usr/monitor/send_cap.c
usr/ramfsd/main.c
usr/spawnd/service.c
usr/tests/capops/retype.c
usr/tests/twolevel_cspace/test_create_l1l2.c