Commit Graph

2139 Commits

Author SHA1 Message Date
Martin Stein
f4bd2368f6 hw: cancel unresolved faults before pager dissolve
If an RM client gets dissolved the RM server tries to first
dissolve and then destruct the according pager object. As pager objects
previously cancelled unresolved faults only in destructor the dissolve
operation blocked forever when an unresolved fault existed.
As every pager object should get dissolved before it gets destructed
(signal-context complains otherwise) no more unresolved-fault cancelling
is needed in the destructor.

ref #989
2013-12-20 14:48:06 +01:00
Martin Stein
8eef91f2ac hw: do not block on destruction of signal receiver
As synchronization of signal contexts is now the users business instead of
cores and the signal framework ensures that every context of a receiver gets
synchronously destructed before the destruction of the receiver itself
synchronization and thus blocking at the destruction of a kernel
receiver-object isn't necessary anymore.

ref #989
2013-12-20 14:48:06 +01:00
Martin Stein
1c8c30e1f4 hw: sync signal contexts directly as user
Kernel::signal_context_kill can be used by any program to halt the processing
of a signal context synchronously to prevent broken refs when core destructs
the according kernel object. In turn, Kernel::bin_signal_context doesn't block
anymore and destructs a signal context no matter if there are unacknowledged
signals. This way, cores entrypoint doesn't depend on signal acks of a
untrustworthy client anymore.

ref #989
2013-12-20 14:48:06 +01:00
Martin Stein
2bdf0e70e9 hw: fix bug in Kernel::Thread::_print_activity
ref #989
2013-12-20 14:48:06 +01:00
Martin Stein
3bdf70f771 hw: rename kill_* functions in bin_*
In the future bin_* means the direct destruction of a kernel object
without any blocking. kill_* in contrast is used for bringing a
kernel object such as signal contexts synchronized into a sleeping
state from where they can be destructed without the risk of getting
broken refs in userland.

ref #989
2013-12-20 14:48:06 +01:00
Martin Stein
750f5313f7 base: avoid compiler warning in Thread::stack_top
The statement _context->stack[-1] triggered the compiler warning
'array subscript is below array bounds'.

ref #989
2013-12-20 14:48:06 +01:00
Alexander Boettcher
a596bfe797 run: test for main thread_base object
ref #989
2013-12-20 14:48:05 +01:00
Martin Stein
6aa0ab1bf9 hw: communicate UTCB dataspace through start info
To remap its UTCB to its context area later, a main thread needs
to know the according dataspace capability. This is done through
the start-info it receives from its creator at startup.

ref #989
2013-12-20 14:48:05 +01:00
Martin Stein
42f51cd802 hw: use core-PD class to prevent singleton clashes
ref #989
2013-12-20 14:48:05 +01:00
Martin Stein
4009619206 base: natural default align in unmanaged singleton
I have no idea where the previous default alignment = 2 in the unsynchronized
singleton came from but as at least the Arndale IC-driver in base-hw needs an
alignment of 4 = address width, unmanaged singleton now uses sizeof(addr_t)
as default alignment.

ref #989
2013-12-20 14:48:05 +01:00
Martin Stein
77130a9404 hw: replace unsynchronized by unmanaged singleton
ref #989
2013-12-20 14:48:05 +01:00
Martin Stein
212fc47768 base: provide template for unmanaged singletons
An unmanaged singleton is a singleton object that isn't
constructed or destructed implicitly through the C++ runtime
enviroment. The new header provides a helper to create such objects
and is located in src/base/include.

ref #989
2013-12-20 14:48:05 +01:00
Stefan Kalkowski
ea9c0e20ba part_blk: increase ep stack size and bulk buffer
* Increase entrypoint stack size for part_blk server,
  since it crashes on 64 bit
* Consider packet alignment in bulk buffer size calculation of test-blk-cli
2013-12-19 11:34:05 +01:00
Stefan Kalkowski
af86e33c3f part_blk: re-design to work event driven
Fix #750
2013-12-19 11:34:05 +01:00
Stefan Kalkowski
35bb156972 block: extend block session test framework 2013-12-19 11:34:05 +01:00
Stefan Kalkowski
e73a71be12 packet stream: clean range allocator in destructor 2013-12-19 11:34:05 +01:00
Stefan Kalkowski
56a7d00a44 block: extend generic driver API (Ref #750)
* allow to handle a maximum of packets in parallel
  that fits free slots in the ack queue
* stop processing packets, when the driver can't handle
  more requests in parallel, and resume packet handling,
  when the driver is ready again
2013-12-19 11:34:04 +01:00
Stefan Kalkowski
b10b9e20a2 block: support for block number >32 bit (Fix #968) 2013-12-19 11:34:04 +01:00
Josef Söntgen
1bc16f3a23 ahci: missing shift when setting FIS adress
Fixes #997.
2013-12-12 08:49:41 +01:00
Josef Söntgen
038fcf032a os: dissolve contexts in Packet_stream
Fixes #1003.
2013-12-11 08:25:44 +01:00
Stefan Kalkowski
cc3b1599b8 Follow-follow-up fix for "hw: basic support..." 2013-12-09 14:05:53 +01:00
Christian Helmuth
1f75805d54 fs run: fix Qemu ATAPI compatibility test 2013-12-09 14:05:53 +01:00
Christian Helmuth
50c30b1702 libc_block: enable and fix warnings 2013-12-09 14:05:53 +01:00
Alexander Boettcher
05ad5a6ad4 noux: adjust timeouts for diverse platforms
Issue #996
2013-12-09 10:49:16 +01:00
Alexander Boettcher
9759000538 foc: evaluate run_opt target for uboot link
Unify handling as base-hw does and enables us to use uBoot image for foc_panda.
2013-12-09 10:49:16 +01:00
Christian Helmuth
776fdceaa5 vesa: explicitly request VBE 2.0 information
We also skip any non-direct-color modes now.
2013-12-09 10:49:16 +01:00
Christian Helmuth
eaed3ba207 acpi: print RMRR region (not just base) 2013-12-09 10:49:16 +01:00
Christian Helmuth
b24f48b125 framebuffer test: acpi_drv and pci_device_pd 2013-12-09 10:49:16 +01:00
Stefan Kalkowski
8b7c67976d Follow-up fix for "hw: basic support for ODROID" 2013-12-09 10:49:16 +01:00
Stefan Kalkowski
277ca33988 usb block: use generic block driver API (Fix #966) 2013-12-09 10:49:16 +01:00
Stefan Kalkowski
c3c643bcf1 block: let generic driver API work asynchronously
Fix #990
2013-12-04 11:14:18 +01:00
Martin Stein
9c698ab6c1 noux_tool_chain_auto & hw_arndale: adjust timeouts
As hw_arndale is a bit slower than foc_arm and spawn_serial timing
calculation has changed in general, timeouts of noux_tool_chain_auto test
must be adjusted.

fix #996
2013-12-03 18:05:10 +01:00
Stefan Kalkowski
7b49dbf2f3 hw: basic support for ODROID XU board (Fix #991) 2013-12-03 11:30:07 +01:00
Alexander Boettcher
9b456fb3be run: spelling fix 2013-12-03 10:40:23 +01:00
Christian Prochaska
4519b39ba7 Qt5: use pthread synchronization functions
The Genode-specific implementation of 'QWaitCondition' contains a race
condition which can make the 'qt5_samegame' application hang on Fiasco.OC.

Since most of the pthread synchronization functions needed by the
UNIX-specific implementation of 'QWaitCondition' and 'QMutex' are
available now, we can use these now instead of fixing and keeping
the Genode-specific implementation.

Fixes #993.
2013-12-03 10:40:23 +01:00
Martin Stein
c4068c4001 FB & omap4: fix mix-up of _fb_height and _fb_width
fix #983
2013-12-03 10:40:23 +01:00
Martin Stein
d57319bbcb FB test: add stripes to detect line-shift bugs
ref #983
2013-12-03 10:40:23 +01:00
Martin Stein
576b9389cb FB test: fix wrong FB access-widths
ref #983
2013-12-03 10:40:22 +01:00
Christian Helmuth
1ba4e033a7 lxip: fake get_random_bytes() 2013-12-03 10:40:22 +01:00
Christian Helmuth
c05a80a139 netperf: move check for qemu to netperf.inc 2013-12-03 10:40:22 +01:00
Stefan Kalkowski
9d82720a29 http_blk: add run script for automated tests
Ref #966
2013-12-03 10:40:22 +01:00
Stefan Kalkowski
020ba97106 http_blk: use libc_lwip plugin, not lwip directly
Ref #966
2013-12-03 10:40:22 +01:00
Stefan Kalkowski
adc63ef2a6 rom_blk test: abort if test fails
Instead of printing the success message at the end of the test,
abort as soon as two blocks differ.

Ref #966
2013-12-03 10:40:22 +01:00
Stefan Kalkowski
66d499e416 http_block: rename to http_blk to be consistent
Ref #966
2013-12-03 10:40:22 +01:00
Stefan Kalkowski
bf90fd5f66 http_block: use generic block component/driver
Ref #966
2013-12-03 10:40:22 +01:00
Stefan Kalkowski
fec51620f7 fb_block_adapter: use generic block component/driver
Ref #966
2013-12-03 10:40:21 +01:00
Stefan Kalkowski
1b7b0b2050 atapi_drv: use generic block component/driver
Ref #966
2013-12-03 10:40:21 +01:00
Stefan Kalkowski
4c74af274b rom_loopdev: rename to rom_blk to be consistent
Ref #966
2013-12-03 08:33:26 +01:00
Stefan Kalkowski
1256b01867 rom_loopdev: use generic block component/driver
Ref #966
2013-12-03 08:33:26 +01:00
Stefan Kalkowski
0c8a4f9f3a block: extend interface of generic driver class
To support read-only devices like CDROMs, or rom_blk the supported
block operations have to be stated by specific the device driver.

Ref #966
2013-12-03 08:33:26 +01:00