Commit Graph

3089 Commits

Author SHA1 Message Date
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
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
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
2bdf0e70e9 hw: fix bug in Kernel::Thread::_print_activity
ref #989
2013-12-20 14:48:06 +01:00
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
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
a596bfe797 run: test for main thread_base object
ref #989
2013-12-20 14:48:05 +01:00
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
42f51cd802 hw: use core-PD class to prevent singleton clashes
ref #989
2013-12-20 14:48:05 +01:00
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
77130a9404 hw: replace unsynchronized by unmanaged singleton
ref #989
2013-12-20 14:48:05 +01:00
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
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
af86e33c3f part_blk: re-design to work event driven
Fix #750
2013-12-19 11:34:05 +01:00
35bb156972 block: extend block session test framework 2013-12-19 11:34:05 +01:00
e73a71be12 packet stream: clean range allocator in destructor 2013-12-19 11:34:05 +01:00
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
b10b9e20a2 block: support for block number >32 bit (Fix #968) 2013-12-19 11:34:04 +01:00
1bc16f3a23 ahci: missing shift when setting FIS adress
Fixes #997.
2013-12-12 08:49:41 +01:00
038fcf032a os: dissolve contexts in Packet_stream
Fixes #1003.
2013-12-11 08:25:44 +01:00
cc3b1599b8 Follow-follow-up fix for "hw: basic support..." 2013-12-09 14:05:53 +01:00
1f75805d54 fs run: fix Qemu ATAPI compatibility test 2013-12-09 14:05:53 +01:00
50c30b1702 libc_block: enable and fix warnings 2013-12-09 14:05:53 +01:00
05ad5a6ad4 noux: adjust timeouts for diverse platforms
Issue #996
2013-12-09 10:49:16 +01:00
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
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
eaed3ba207 acpi: print RMRR region (not just base) 2013-12-09 10:49:16 +01:00
b24f48b125 framebuffer test: acpi_drv and pci_device_pd 2013-12-09 10:49:16 +01:00
8b7c67976d Follow-up fix for "hw: basic support for ODROID" 2013-12-09 10:49:16 +01:00
277ca33988 usb block: use generic block driver API (Fix #966) 2013-12-09 10:49:16 +01:00
c3c643bcf1 block: let generic driver API work asynchronously
Fix #990
2013-12-04 11:14:18 +01:00
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
7b49dbf2f3 hw: basic support for ODROID XU board (Fix #991) 2013-12-03 11:30:07 +01:00
9b456fb3be run: spelling fix 2013-12-03 10:40:23 +01:00
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
c4068c4001 FB & omap4: fix mix-up of _fb_height and _fb_width
fix #983
2013-12-03 10:40:23 +01:00
d57319bbcb FB test: add stripes to detect line-shift bugs
ref #983
2013-12-03 10:40:23 +01:00
576b9389cb FB test: fix wrong FB access-widths
ref #983
2013-12-03 10:40:22 +01:00
1ba4e033a7 lxip: fake get_random_bytes() 2013-12-03 10:40:22 +01:00
c05a80a139 netperf: move check for qemu to netperf.inc 2013-12-03 10:40:22 +01:00
9d82720a29 http_blk: add run script for automated tests
Ref #966
2013-12-03 10:40:22 +01:00
020ba97106 http_blk: use libc_lwip plugin, not lwip directly
Ref #966
2013-12-03 10:40:22 +01:00
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
66d499e416 http_block: rename to http_blk to be consistent
Ref #966
2013-12-03 10:40:22 +01:00
bf90fd5f66 http_block: use generic block component/driver
Ref #966
2013-12-03 10:40:22 +01:00
fec51620f7 fb_block_adapter: use generic block component/driver
Ref #966
2013-12-03 10:40:21 +01:00
1b7b0b2050 atapi_drv: use generic block component/driver
Ref #966
2013-12-03 10:40:21 +01:00
4c74af274b rom_loopdev: rename to rom_blk to be consistent
Ref #966
2013-12-03 08:33:26 +01:00
1256b01867 rom_loopdev: use generic block component/driver
Ref #966
2013-12-03 08:33:26 +01:00
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