Stefan Kalkowski
0f05fa6fd4
base: resolve dead lock in weak pointer templates
...
This commit eliminates the mutual interlaced taking of destruction lock,
list lock and weak pointer locks that could lead to a dead-lock situation
when a lock pointer was tried to construct while a weak object is in
destruction progress.
Now, all weak pointers are invalidated and dequeued at the very
beginning of the weak object's destruction. Moreover, before a weak pointer
gets invalidated during destruction of a weak object, it gets dequeued, and
the list lock is freed again to avoid the former dead-lock.
Fix #1607
2015-07-21 09:30:04 +02:00
Stefan Kalkowski
2a351215f4
base: remove pager code from public API
...
Fix #1593
2015-07-01 14:46:15 +02:00
Norman Feske
959572968d
core: provide thread exec times via TRACE service
...
This patch enable clients of core's TRACE service to obtain the
execution times of trace subjects (i.e., threads). The execution time is
delivered as part of the 'Subject_info' structure.
Right now, the feature is available solely on NOVA. On all other base
platforms, the returned execution times are 0.
Issue #813
2015-06-22 14:43:38 +02:00
Stefan Kalkowski
64bfe233d7
base: make CAP session upgradeable
...
* Introduce 'Out_of_metadata' exception for capability allocation
Ref #1443
2015-05-26 09:40:02 +02:00
Stefan Kalkowski
73c3a81e0b
base: make PD session upgradeable
...
Ref #1443
2015-05-26 09:40:02 +02:00
Norman Feske
da0ee84a7d
sel4: 3rd article - porting core to seL4
2015-05-26 09:40:02 +02:00
Norman Feske
cada11b553
Add sel4_x86_32 to create_builddir tool
2015-05-26 09:40:01 +02:00
Norman Feske
66dd065163
sel4: use LOG console for non-core components
2015-05-26 09:40:01 +02:00
Norman Feske
a748dfbc5c
sel4: implementation of Rm_client::unmap
2015-05-26 09:40:01 +02:00
Norman Feske
da2db02ebd
sel4: disable page-fault logging
2015-05-26 09:40:01 +02:00
Norman Feske
84c5437437
sel4: initialization of non-main threads
2015-05-26 09:40:01 +02:00
Norman Feske
06d143d51f
sel4: receive-sel handling for early IPC
2015-05-26 09:40:01 +02:00
Norman Feske
3259185bfc
sel4: import parent cap into non-core components
2015-05-26 09:40:01 +02:00
Norman Feske
1ea22f82fa
sel4: core support for IPC of non-core PDs
...
This patch installs the parent endpoint selector and the PD's CNode into
a PD at its creation time. Furthermore, it initializes the IPC buffer
for the main thread of the new component.
2015-05-26 09:40:00 +02:00
Norman Feske
acd7a2f1c4
sel4: reserve virt page for main-thread IPC buffer
2015-05-26 09:40:00 +02:00
Norman Feske
38db52e7f5
sel4: non-core capability-space implementation
2015-05-26 09:40:00 +02:00
Norman Feske
d6e3e47348
sel4: use core_printf for non-core components
...
This allows us to see debug messages printed at the eary initialization
of init (before init is able to obtain the regular LOG session). This
will be reverted as soon as the initialziation of the non-core base
environment works.
2015-05-26 09:40:00 +02:00
Norman Feske
5a05521e0f
sel4: bootstrap of init and page-fault handling
2015-05-26 09:40:00 +02:00
Norman Feske
691f0eaae7
sel4: link core to different address
...
This enables us to debug core and non-core using Qemu's GDB stub.
2015-05-26 09:40:00 +02:00
Norman Feske
11b9a0f376
sel4: definition of non-core cap-space parameters
2015-05-26 09:39:59 +02:00
Norman Feske
f19f454ae5
sel4: move core to a libaray, add boot_modules.s
2015-05-26 09:39:59 +02:00
Norman Feske
51f02340b6
sel4: avoid superfluous header re-generation
2015-05-26 09:39:59 +02:00
Norman Feske
56ec0ad172
sel4: add base.mk lib to build and link init
2015-05-26 09:39:59 +02:00
Norman Feske
6ffba0e473
sel4: IPC implementation
2015-05-26 09:39:59 +02:00
Norman Feske
ff46d02c48
sel4: capability lifetime management
2015-05-26 09:39:59 +02:00
Norman Feske
595e86ca2e
sel4: assert macro
2015-05-26 09:39:59 +02:00
Norman Feske
95c3e896dd
sel4: add include/kernel_object.h utilties
2015-05-26 09:39:58 +02:00
Norman Feske
0a32bc845f
sel4: RAM-session supplements
2015-05-26 09:39:58 +02:00
Norman Feske
bf4b260ce1
sel4: unmapping of virtual memory
2015-05-26 09:39:58 +02:00
Norman Feske
262f52723b
sel4: block on first call if Ipc_istream::_wait
2015-05-26 09:39:58 +02:00
Norman Feske
8f535d5371
sel4: enter real thread function
2015-05-26 09:39:58 +02:00
Norman Feske
41b99a6b51
sel4: use yielding spinlock for 'Genode::Lock'
2015-05-26 09:39:58 +02:00
Norman Feske
f24b212e47
sel4: core-local thread creation
2015-05-26 09:39:58 +02:00
Norman Feske
e6ad346e24
sel4: management of core's virtual memory
2015-05-26 09:39:57 +02:00
Norman Feske
1f5cfef64e
sel4: switch to core's custom cspace layout
2015-05-26 09:39:57 +02:00
Norman Feske
de8bfb37f9
sel4: initialization of core's allocators
2015-05-26 09:39:57 +02:00
Norman Feske
633f335171
sel4: core skeleton
2015-05-26 09:39:57 +02:00
Norman Feske
65a74cf5e0
sel4: complement base-common.mk
...
This patch extends the base-common library with the symbols needed to
link core.
2015-05-26 09:39:57 +02:00
Norman Feske
885e9333ac
sel4: don't use base-common.mk in test roottask
...
To build core and other Genode components, we will need to extend the
base-common.mk library with additions that conflict with the
minimalistic root-task environment of test/sel4. To preserve the
minimalistic root task, we need to decouple it from the base-common
library.
2015-05-26 09:39:56 +02:00
Norman Feske
c73b6e9c0d
sel4: move core console to core_printf library
2015-05-26 09:39:56 +02:00
Norman Feske
e3cb8d48f7
sel4: never compile syscall-using code with -fPIC
2015-05-26 09:39:56 +02:00
Norman Feske
1314bd3b2a
sel4: notes about virtual memory management
2015-05-26 09:39:56 +02:00
Norman Feske
9bf7a240fc
sel4: test the use of memory mappings
2015-05-26 09:39:56 +02:00
Norman Feske
58481fe35d
sel4: use largest untyped range
2015-05-26 09:39:56 +02:00
Norman Feske
37c266327f
sel4: capability overmap test
2015-05-26 09:39:56 +02:00
Norman Feske
418f2ab119
sel4: testing the unwrapping of capabilities
2015-05-26 09:39:55 +02:00
Norman Feske
33c2bc3bf2
sel4: capability delegation test
2015-05-26 09:39:55 +02:00
Norman Feske
03010831cd
sel4: adapt article to new version of run tool
2015-05-26 09:39:55 +02:00
Norman Feske
1fdf36efed
sel4: IPC between two threads
2015-05-26 09:39:55 +02:00
Norman Feske
45b90aa898
sel4: review of the first article
2015-05-26 09:39:55 +02:00
Norman Feske
68671dbc2f
sel4: preemptive scheduling
2015-05-26 09:39:55 +02:00
Norman Feske
40c48c4538
sel4: thread creation
2015-05-26 09:39:54 +02:00
Norman Feske
9bf7568909
sel4: replace syscalls.patch by macros.patch
2015-05-26 09:39:54 +02:00
Norman Feske
52c4dc8ec8
sel4: print boot info
2015-05-26 09:39:54 +02:00
Norman Feske
6b9185ab34
sel4: enable core console
2015-05-26 09:39:54 +02:00
Norman Feske
666c74345f
sel4: add patch for sel4/syscalls.h
2015-05-26 09:39:54 +02:00
Norman Feske
29f58dbd70
sel4: first syscall invokation
2015-05-26 09:39:54 +02:00
Norman Feske
2b24593758
sel4: minimalistic roottask
2015-05-26 09:39:54 +02:00
Norman Feske
456d81f517
New base-sel4 repository
2015-05-26 09:39:53 +02:00