Commit Graph

144 Commits

Author SHA1 Message Date
11eecdc7bd depot: update recipe hashes 2018-11-29 11:54:31 +01:00
19d7a488de init: health monitoring of child components
Fixes #3039
2018-11-27 11:36:34 +01:00
70e7499e48 depot: update recipe hashes 2018-11-16 15:07:53 +01:00
0867da28a2 depot: update recipe hashes 2018-10-29 09:36:23 +01:00
e88081a454 depot: update recipe hashes 2018-10-01 11:25:03 +02:00
5dcf06d208 depot: update recipe hashes 2018-09-13 15:21:26 +02:00
c2e0d0ae20 depot: update recipe hashes 2018-08-30 09:25:10 +02:00
f4ea50c6ff depot: update recipe hashes 2018-08-08 10:59:04 +02:00
b485caf33c depot: update recipe hashes 2018-07-03 09:40:11 +02:00
246bacd9da depot: update recipe hashes 2018-06-13 13:52:12 +02:00
bd86efe5fe depot: update recipe hashes 2018-05-31 14:02:21 +02:00
e6d20aba93 base: support to attach RAM dataspaces readonly
Fixes #1633
2018-05-30 13:36:27 +02:00
72cb71c827 Replace SHA1 hashes of port downloads with SHA256
Now SHA256 has been shown to be an adequate replacement for SHA1, use
SHA256 for verifying all port downloads.

Ref #2767
2018-05-30 13:36:22 +02:00
3b7d6394d7 depot: update recipe hashes 2018-05-03 15:32:01 +02:00
47569458d4 depot: update recipe hashes 2018-04-19 12:39:20 +02:00
d54f95d497 depot: update recipe hashes 2018-04-10 13:03:26 +02:00
b07d6eced8 depot: update recipe hashes 2018-03-29 14:59:07 +02:00
675aa2cd2f okl4: leverage complete virtual address space
Issue #2547
2018-03-27 13:44:28 +02:00
1f7b5e75bf depot: update recipe hashes 2018-03-08 12:05:10 +01:00
a8f186c7d4 depot: update recipe hashes 2018-02-28 11:05:05 +01:00
8d09d02b85 depot: update recipe hashes 2018-02-09 13:34:24 +01:00
6013889028 depot: update recipe hashes 2018-01-17 12:14:44 +01:00
eba9c15746 Follow practices suggested by "Effective C++"
The patch adjust the code of the base, base-<kernel>, and os repository.
To adapt existing components to fix violations of the best practices
suggested by "Effective C++" as reported by the -Weffc++ compiler
argument. The changes follow the patterns outlined below:

* A class with virtual functions can no longer publicly inherit base
  classed without a vtable. The inherited object may either be moved
  to a member variable, or inherited privately. The latter would be
  used for classes that inherit 'List::Element' or 'Avl_node'. In order
  to enable the 'List' and 'Avl_tree' to access the meta data, the
  'List' must become a friend.

* Instead of adding a virtual destructor to abstract base classes,
  we inherit the new 'Interface' class, which contains a virtual
  destructor. This way, single-line abstract base classes can stay
  as compact as they are now. The 'Interface' utility resides in
  base/include/util/interface.h.

* With the new warnings enabled, all member variables must be explicitly
  initialized. Basic types may be initialized with '='. All other types
  are initialized with braces '{ ... }' or as class initializers. If
  basic types and non-basic types appear in a row, it is nice to only
  use the brace syntax (also for basic types) and align the braces.

* If a class contains pointers as members, it must now also provide a
  copy constructor and assignment operator. In the most cases, one
  would make them private, effectively disallowing the objects to be
  copied. Unfortunately, this warning cannot be fixed be inheriting
  our existing 'Noncopyable' class (the compiler fails to detect that
  the inheriting class cannot be copied and still gives the error).
  For now, we have to manually add declarations for both the copy
  constructor and assignment operator as private class members. Those
  declarations should be prepended with a comment like this:

        /*
         * Noncopyable
         */
        Thread(Thread const &);
        Thread &operator = (Thread const &);

  In the future, we should revisit these places and try to replace
  the pointers with references. In the presence of at least one
  reference member, the compiler would no longer implicitly generate
  a copy constructor. So we could remove the manual declaration.

Issue #465
2018-01-17 12:14:35 +01:00
553cf556af depot: update recipe hashes 2017-12-21 15:01:56 +01:00
552662d594 core: omit allocator info at boot time
Fixes #2549
2017-12-21 15:01:48 +01:00
a36465426b base-<kernel>: export core log as ROM
Issue #2207
2017-12-21 15:01:47 +01:00
15cc6d688f core: add support to export log output as ROM
Issue #2207
2017-12-21 15:01:46 +01:00
2cb635c3e3 base-*: rename core_log.cc to core_log_out.cc
Issue #2207
2017-12-21 15:01:46 +01:00
25ca29002e depot: update recipe hashes 2017-11-30 11:24:49 +01:00
491be000ca depot: update recipe hashes 2017-11-09 12:19:59 +01:00
30948a4b0d depot: update recipe hashes 2017-11-06 13:57:25 +01:00
db329b02b5 base: enable executable memory fault handling
Fixes #1723
2017-11-01 08:39:48 +01:00
ee4ee6a8ac depot: update recipe hashes 2017-10-19 13:31:18 +02:00
555ebe1ffe okl4: copy elfweaver tool to build directory
When using the elfweaver to generate boot images, python stores
precompiled modules in the source directory besides the .py files. This
changed the contrib source tree with binary files specific to the build
host. As a result the depot create tool picked up the changed source
tree and produced strange new hashes. Now, the tool sources are copied
to the build directory where python can do its optimizations and the
depot stays clean.
2017-09-07 11:47:16 +02:00
2ed904faab depot: update recipe hashes 2017-08-30 12:41:43 +02:00
2cc9fa1f14 okl4: apply patches in deterministic order 2017-08-30 12:41:43 +02:00
def14f327d okl4: remove tools of okl4 during make clean 2017-08-30 10:00:01 +02:00
ea46c462a4 base: make stack area base specifiable for core
When running core as the kernel inside every component, a separate
stack area for core is needed that is different from the user-land
component's one.

Ref #2091
2017-08-28 16:49:46 +02:00
430bde3636 core: remove unmap from rm_client
The flush/unmap of memory is tied to an address space and not to a thread.
Move the handling from the Rm_client to the Adress_space class.

Issue #2209
2017-08-28 16:49:44 +02:00
23f35370a2 core: generic ROM module initialization
For most base platforms (except linux and sel4), the initialization of
boot modules is the same. Thus, merge this default implementation in the
new unit base/src/core/platform_rom_modules.cc.

Ref #2490
2017-08-28 16:49:36 +02:00
8b073f46df depot: update recipe hashes 2017-08-18 10:25:28 +02:00
58e4f6cf9d core: add map method to pd_session interface
The method can be used to trigger the eager insertion of page frames into
page tables. Intention: to be used for memory used for DMA.

Issue #2209
2017-08-18 10:24:46 +02:00
0d1be4abe2 depot: update recipe hashes 2017-06-29 12:00:04 +02:00
a004462096 hw: fix capability accounting of kernel/core
The recently implemented capability resource trading scheme unfortunately
broke the automated capability memory upgrade mechanism needed by base-hw
kernel/core. This commit splits the capability memory upgrade mechanism
from the PD session ram_quota upgrade, and moves that functionality
into a separate Pd_session::Native_pd interface.

Ref #2398
2017-06-19 12:35:55 +02:00
0fb672b493 run: use default Qemu memory size for x86
Fix #2428
2017-05-31 13:16:19 +02:00
0167d5af50 Integrate core's RAM service into the PD service
Fixes #2407
2017-05-31 13:16:14 +02:00
a96919632e core: unify Pd_session_component across kernels
Issue #2407
2017-05-31 13:16:13 +02:00
4773707495 core: split RAM dataspace factory from RAM service
By separating the session-interface concerns from the mechanics of the
dataspace creation, the code becomes simpler to follow, and the RAM
session can be more easily merged with the PD session in a subsequent
step.

Issue #2407
2017-05-31 13:16:12 +02:00
65225a94b1 core: simplify initialization
This patch removes the 'Core_parent' and 'Core_pd_session', and reduces
the 'Core_env'.
2017-05-31 13:16:12 +02:00
a1df4fee44 base: restructure signal-submit initialization
This patch allows core's 'Signal_transmitter' implementation to sidestep
the 'Env::Pd' interface and thereby adhere to a stricter layering within
core. The 'Signal_transmitter' now uses - on kernels that depend on it -
a dedicated (and fairly freestanding) RPC proxy mechanism for signal
deliver, instead of channeling signals through the 'Pd_session::submit'
RPC function.
2017-05-31 13:16:12 +02:00