Commit Graph

2573 Commits

Author SHA1 Message Date
Martin Stein
02c16e7106 hw: split resume_local_thread from resume_thread
Kernel::resume_thread was restricted to core when the targeted thread was in
another domain. Now there are two kernel calls, resume_local_thread and
resume_thread, where the former is never restricted and is provided via
public kernel/interface.h and the latter is always restricted to core and
is provided via core-local kernel/core_interface.h.

ref #1101
2014-04-07 17:09:52 +02:00
Martin Stein
c72f91fefb hw: simplify return value of Kernel::resume_thread
ref #1101
2014-04-07 17:09:33 +02:00
Martin Stein
6974abcf41 hw: don't use assert in Kernel::pause_vm
ref #1101
2014-04-07 17:09:16 +02:00
Martin Stein
99db9e5246 hw: don't use assert in Kernel::run_vm
ref #1101
2014-04-07 17:08:59 +02:00
Martin Stein
7bbabcf817 hw: don't use assert in Kernel::new_vm
ref #1101
2014-04-07 17:08:49 +02:00
Martin Stein
f8b4541e2b hw: get rid of fixme note in Kernel::update_region
ref #1101
2014-04-07 17:08:35 +02:00
Martin Stein
4f19d4869f hw: don't use assert in Kernel::update_region
ref #1101
2014-04-07 17:08:29 +02:00
Martin Stein
ea156e18ec hw: don't use assert in Kernel::update_pd
ref #1101
2014-04-07 17:08:23 +02:00
Martin Stein
dbad6f7061 hw: don't use assert in Kernel::bin_thread
ref #1101
2014-04-07 17:08:16 +02:00
Martin Stein
9e089e7e75 hw: don't use assert in Kernel::start_thread
ref #1101
2014-04-07 17:08:11 +02:00
Martin Stein
fba4f54571 hw: split pause_current_thread from pause_thread
Kernel::pause_current_thread can be implemented much simpler and is not
restricted to core threads, in contrast to Kernel::pause_thread which
also benefits from the split and can be moved to core_interface.h.

ref #1101
2014-04-07 17:07:24 +02:00
Martin Stein
abd55fda9a hw: don't return a result in Kernel::pause_thread
ref #1101
2014-04-07 17:06:09 +02:00
Martin Stein
5e940da040 hw: don't use assert in Kernel::pause_thread
ref #1101
2014-04-07 17:05:43 +02:00
Martin Stein
055b7c57b6 hw: correct result type of Kernel::new_vm
ref #1101
2014-04-07 17:05:34 +02:00
Martin Stein
d5b38b674e hw: simplify buffer of Kernel::access_thread_regs
ref #1101
2014-04-07 17:05:29 +02:00
Martin Stein
06ea6cd462 hw: simplify result of Kernel::access_thread_regs
ref #1101
2014-04-07 17:04:50 +02:00
Martin Stein
1eeba3ed73 hw: comment result of Kernel::route_thread_event
ref #1101
2014-04-07 17:04:36 +02:00
Martin Stein
873c3f3984 hw: correct return type of Kernel::new_thread
ref #1101
2014-04-07 17:04:20 +02:00
Martin Stein
a64372647d hw: rename mode_transition_virt_base
ref #1101
2014-04-07 17:03:48 +02:00
Martin Stein
5112df9792 hw: remove unused kernel_pd_alignm_log2
ref #1101
2014-04-07 17:03:15 +02:00
Martin Stein
e2268c09a0 hw: move core-restricted interface to local header
fix #1096
2014-04-07 17:02:50 +02:00
Martin Stein
f0ac145471 hw: faster Kernel::Signal_receiver::_listen()
ref #1096
2014-04-07 17:02:26 +02:00
Martin Stein
00708b6696 hw: reduce stack size of idle threads
ref #1096
2014-04-07 17:02:11 +02:00
Martin Stein
d30edd4841 hw: make RM faults less noisy in release mode
If an RM fault ends up in any trouble, the faulter remains paused and
the pager activation continues with the next fault. Thus we can print
a warning instead of an error and safe execution time in release mode.

ref #1096
2014-04-07 17:02:00 +02:00
Martin Stein
9affbf33ec hw: make kernel less noisy in release mode
In most cases an error report is not necessary in the kernel as the problem
does not affect the kernel itself but the according user-land context. Thus
we can also do a warning that is not printed in release mode and hence safe
execution time.

ref #1096
2014-04-07 17:01:46 +02:00
Martin Stein
ff28a89000 noux: make RM replay less noisy in release mode
As the message "replay: missing dataspace info for ..." occurs multiple times
on every fork, it slows down at least noux_tool_chain_auto with hw_arndale
about 10 seconds. To avoid this overhead in release mode I've turned it into a
warning rather than an error.

ref #1096
2014-04-07 17:01:21 +02:00
Martin Stein
a34227cdda hw: use reliable start message in run env
Previously for determining wether boot-up succeeded or not, we looked
for a message that is switched off in release mode. Now the kernel
provides a reliable message as soon as initialization is done.

ref #1096
2014-04-07 17:01:01 +02:00
Alexander Boettcher
7fc26d496a base-fiasco: relocate all modules in bootstrap
Fix #1116
2014-04-07 14:45:15 +02:00
Alexander Boettcher
47b1db6f0a fiasco: add bda support for bootstrap
Issue #1116
2014-04-07 14:45:15 +02:00
Alexander Boettcher
819e54f860 run: change resolution of virtualbox_auto_disk
We changed the test hardware and the new one does not support 1400x1050 anymore.
Choose some conservative resolution since this is anyway a auto test nobody
is really looking at the screen output.
2014-04-07 11:56:45 +02:00
Christian Prochaska
0918c6006b stdcxx: build 'tinfo.cc'
The 'tinfo.cc' file needs to get built, because it implements
'std::type_info::operator==(std::type_info const&) const', which
is needed by the 'icu' library on ARM.

Fixes #1109.
2014-04-07 11:55:14 +02:00
Christian Prochaska
7f2b99e2a8 qt5_textedit.run: fix the USB driver configuration
This patch adds the 'uhci', 'ehci' and 'xhci' XML attributes to the USB
driver configuration in the 'qt5_textedit.run' script.

Fixes #1110.
2014-04-07 11:54:41 +02:00
Alexander Boettcher
1eb3f13484 pit: no lock required in pit anymore
timer service calls platform timer nowadays solely from the vary same thread
 - the entrypoint of the timer service

Issue #1106
2014-04-01 16:42:37 +02:00
Alexander Boettcher
7d232cafb0 timer: fix corner case if counter is 0
If counter drops to 0, the wrap flag is set also. That means we have actually
no wrap around. The patch avoids to add too much time to the elapsed time
variable.

Issue #1106
2014-04-01 16:42:37 +02:00
Alexander Boettcher
34a33e7301 timer: fix wrap handling for x86 PIT
Issue #1106
2014-04-01 16:42:37 +02:00
Alexander Boettcher
a604ea6851 os: reprogram timer solely if needed
If an alarm/timeout object became head of the timeout queue, then the
low level timer must be reprogrammed.

Issue #1106
2014-04-01 16:42:37 +02:00
Christian Helmuth
cd0d378142 Provide Genode version information in log
Fixes #551
2014-04-01 16:38:49 +02:00
Norman Feske
2f3b67c9e0 nitpicker: Fix implementation of Mode interface
The generalization of nitpicker's graphic backend changed the interface
of 'Mode::forget', which is a (non-pure) virtual function implemented
by 'User_state::forget'. Unfortunately, the signature change was not
applied to 'User_state::forget' so that the actual implementation was
no longer called. This inconsistency remained unnoticed because there
is a default implementation of the virtual function.

The effect of the omission of the 'User_state::forget' call was a
dangling pointer ('User_state::_pointed_view').

Lesson learned: Always annotate functions with the C++11 'override' when
implementing virtual functions.
2014-04-01 16:37:40 +02:00
Johannes Schlatow
2262eb8347 base: fix bug in String::valid()
String::valid() does not check whether _length is zero.
Consequently, this leads to _buf[-1] being evaluated.
2014-04-01 16:37:09 +02:00
Christian Prochaska
e6c7596af5 ldso: flush the log console in 'errx()'
The error message given to the 'errx()' function does not always contain a
'\n' character. Adding 'printf("\n")' ensures that the message appears on
the log console.

Fixes #1103.
2014-03-31 21:05:48 +02:00
Alexander Boettcher
869fbc92b1 base: allocate contexts solely inside context area
Reserve first bit in bit allocator for main thread of context allocator and
remove special cases in context allocator. Without the reservation there is
is one context outside the context area allocated.

Fixes #1100
2014-03-31 21:05:20 +02:00
Alexander Boettcher
ced0f71f13 noux: enable 64bit builds for foc and nova
Fixes #816
2014-03-31 20:59:25 +02:00
Christian Helmuth
7e35b84054 nova: simplify handling of multi-boot command line
Fixes #1105.
2014-03-31 16:53:14 +02:00
Christian Helmuth
2e5cb2ea82 Use do statement in PDBG and PWRN
The do statement ensures the macros to generate just one expression that
is compatible with any programming construct. The concrete bug was

  if (cond)
    PDBG(...);
  else
    ...

which was expanded to

  if (cond)
    if (DO_PDBG)
      Genode::printf(...);
  else
    ...

This is obviously wrong as the *else* branch is then connected to the
second *if*.
2014-03-31 16:47:12 +02:00
Christian Helmuth
c7d2d3a231 hello: fix missing build steps and vague config
Fixes #36.
2014-03-18 17:00:46 +01:00
Norman Feske
a951a9f72f uart/exynos5: Add missing author 2014-03-18 16:29:37 +01:00
Norman Feske
e285d806b3 uart/omap4: prevent copy of non-copyable objects
Follow up fix for commit 0b7ea4abab + minor whitespace changes.

Ref #1093
2014-03-18 14:33:59 +01:00
Stefan Kalkowski
ba4045889b pandaboard: prevent copy of non-copyable objects
Follow up fix for commit 0b7ea4abab
Ref #1093
2014-03-18 14:24:55 +01:00
Norman Feske
b8e6124594 Remove outdated sections from doc/architecture.txt
Fixes #71
2014-03-18 14:24:55 +01:00
Stefan Kalkowski
0dece91973 core: re-design memory allocator (fix #1091)
* Core_mem_allocator: implement Range_allocator interface
* Core_mem_allocator: allocate with page-granularity only
* Use slab allocators in core where meaningful (e.g. dataspace objects)
2014-03-18 14:24:55 +01:00