Commit Graph

4560 Commits

Author SHA1 Message Date
Emery Hemingway
4678f27802 Propagate LwIP connect errors with sync
Ref #2335
Ref #2920
2018-08-08 11:34:21 +02:00
Christian Prochaska
80974b8f62 qt5: print error message in qtwebkit on failed 'mmap()'
Fixes #2927
2018-08-08 11:29:57 +02:00
Christian Prochaska
0d7dec0436 qt5: destroy finished thread in 'QThread::start()'
A 'QThread' can be reused when its execution is finished by calling
'QThread::start()' again. Before this commit, this created a new Genode
thread, but did not destroy a previously finished Genode thread first.

Fixes #2928
2018-08-08 11:29:32 +02:00
Emery Hemingway
007a977cb0 Fix CTRL keys for Workman layout
Fix #2931
2018-08-08 11:29:07 +02:00
Emery Hemingway
2041f957da Terminal: improved handling of escape sequences
Add additional parsing modes to the sequence decoder to detect and
discard unhandled sequences for ECMA-48, DEC private, and Xterm.

Add new behavior for cursor movement, cursor hiding, character deletion,
and line-wrapping.

Fix #2923
2018-08-08 11:27:41 +02:00
Christian Helmuth
f4ea50c6ff depot: update recipe hashes 2018-08-08 10:59:04 +02:00
Emery Hemingway
e521e100f1 Move LwIP to API package
This fix vfs_lwip recursion on archive creation.

Ref #2335
2018-08-08 10:59:03 +02:00
Johannes Kliemann
06a72facc5 Ada: fix ada_secondary_stack test 2018-08-08 10:59:03 +02:00
Johannes Kliemann
0ca197374e Ada: cleanup sources (license headers, beautify) 2018-08-08 10:59:03 +02:00
Alexander Senier
ddee65722f Ada: do not use default directories for gnatmake 2018-08-08 10:59:02 +02:00
Alexander Senier
069a9ad56f Ada: runtime support for 64bit arithmetics 2018-08-08 10:59:02 +02:00
Alexander Senier
ad3f020605 Ada: support for memcmp 2018-08-08 10:59:02 +02:00
Johannes Kliemann
ea8b7d8128 Ada: exception support 2018-08-08 10:59:02 +02:00
Emery Hemingway
e208fbb1b3 VFS LwIP: notify peek handles on recv
Ref #2335
2018-08-08 10:59:02 +02:00
Christian Prochaska
3a1c1d1fd5 libc: allocate more backing store in memory allocator
Add the size of the 'Dataspace' object and AVL-node slab blocks like in
the 'Genode::Heap' implementation.

Fixes #2925
2018-08-02 14:36:50 +02:00
Alexander Boettcher
2ec48c32cb foc: deny irq session creation on failure 2018-08-02 14:36:50 +02:00
Josef Söntgen
a7eb347ce2 libports: remove obsolete pingpong client 2018-08-02 14:36:50 +02:00
Emery Hemingway
a7e5d4ef03 LxIP: propagate write errors using SYNC_ERR_INVALID
The libc sockets implementation already syncs socket control files after
writes, so sync errors will induce failures for operations such as
"connect".

Fix #2920
2018-08-02 14:36:49 +02:00
Emery Hemingway
08b774e318 VFS: add an error to to the Sync_result enum
Sync errors can be used to indicate failed writes across the File_system
session.

Ref #2920
2018-08-02 14:36:49 +02:00
Christian Prochaska
7fabc45313 libc: return MAP_FAILED if 'mmap()' failed
Fixes #2924
2018-08-02 14:36:49 +02:00
Emery Hemingway
bf8b52ec3a Update LwIP to 2.1.0.rc1
This release candidate suppresses the remaining build warnings.

Ref #2335
2018-08-02 14:36:49 +02:00
Martin Stein
9b31aac1de LwIP tests: use VFS LwIP plugin
Issue #2335
2018-08-02 14:36:48 +02:00
Emery Hemingway
d9a4773194 LwIP VFS plugin
This patch reintroduces the LwIP stack to libc as a VFS plugin
implementing the socket_fs interface. Rather than use LwIP's socket
emulation layer this plugin interfaces directly to LwIP raw API and is
single threaded.

The internal TCP parameters of the stack are untuned.

Fix #2050
Fix #2335
2018-08-02 14:36:48 +02:00
Emery Hemingway
ac30e49df7 Update libssh to 0.7.5
Fix #2921
2018-08-02 14:36:48 +02:00
Alexander Boettcher
017685b1b2 nova: update kernel branch (MCA, invalid DMAR)
to avoid resetting due to invalid IOMMU/DMAR hardware units.

Fixes #2700
2018-08-02 14:36:48 +02:00
Josef Söntgen
e6c5ea21b4 sdl: react upon framebuffer resize to 0x0
Treat minimizing the framebuffer as explicit SDL_QUIT event.
2018-08-02 14:36:47 +02:00
Josef Söntgen
bd91e70fae gems: add runtime to wm pkg 2018-08-02 14:36:47 +02:00
Josef Söntgen
7002c9680a os: add fs_rom pkg recipe 2018-08-02 14:36:47 +02:00
Alexander Boettcher
ed01c57677 platform_drv: add RMRR region before assign pci 2018-08-02 14:36:47 +02:00
Sebastian Sumpf
82075a340d qemu-usb: add isochronous packet support to XHCI
fixes #2910
2018-08-02 14:36:46 +02:00
Sebastian Sumpf
0ed2ef230b vbox5: fix self-programming timer in XHCI model
A timer should set itslef not pending before calling the timout handler.
This is important for timeout handler that program the timeout again.

issue #2910
2018-08-02 14:36:46 +02:00
Sebastian Sumpf
037a0d6822 usb_drv: add isochronous packet support
Commit extents USB session an driver accordingly.

issue #2910
2018-08-02 14:36:46 +02:00
Emery Hemingway
d00baf8db4 Refactor cached_fs_rom
Refactor the cached_fs_rom server to fix issues with packet congestion,
prevent recursive XML handling, and zero-length file handling.

Ref #2760
2018-08-02 14:36:45 +02:00
Alexander Boettcher
b7e95c1525 sculpt: update pkg for Tinycore+Vbox5 2018-08-02 14:36:45 +02:00
Alexander Boettcher
dd363da5b0 sculpt: update Seoul VM configuration
Changes to the Seoul configuration are required due to shared binary changes
by init (see #2866)
2018-08-02 14:36:45 +02:00
Emery Hemingway
0502836975 Cached_fs_rom: remove all I/O signal blocking
Keep things simple, do not block for any signals.
2018-08-02 14:36:44 +02:00
Emery Hemingway
7e08bba25c Cached_fs_rom: fix congestion error
When the cached_fs_rom saturates the packet stream of its File_system
session it will call the session request handler recursively as pending
transfers are completed. This is bad because the content of the XML node
currently being processed will change.

The session request handler can no longer be called directly, but the
"schedule" method will submit a signal to the request handler, and
requests will be processed after the current operation has completed.
2018-08-02 14:36:44 +02:00
Norman Feske
ac0562ec18 base: avoid Pd_session::Invalid_session condition
By adding a sanity check for the validity of the PD session targeted by
a transfer_quota operation, the corner case of an incomplete PD session
of a child can no longer trigger an 'Invalid_session' exception.
2018-08-02 14:36:44 +02:00
Norman Feske
17e6db431e sculpt: increase version to 18.07 2018-08-02 14:36:44 +02:00
Christian Prochaska
deb839ba6f libc: use 'alloc_aligned()' in fd allocator
`Allocator_avl_base::alloc()` now uses address size alignment, so
`Allocator_avl_base::alloc_aligned()` must be used for 1-byte alignment.

Fixes #2915
2018-08-02 14:36:43 +02:00
Christian Prochaska
526680e977 libc: initialize fd sets before use in 'poll()'
Fixes #2914
2018-08-02 14:36:43 +02:00
Christian Prochaska
b2f7a6a934 vfs_lxip: look up path in 'leaf_path()'
Fixes #2913
2018-08-02 14:36:43 +02:00
Christian Prochaska
e3005266b6 vfs: no 'handle_io_response()' in regular VFS functions
Calling 'handle_io_response()' in a regular VFS function (in contrast to a
post-signal hook) can cause problems if the caller of the VFS function holds
a lock which prevents the io response handler from returning.

With this commit, the user of the VFS becomes responsible for unblocking
threads which might be blocking after a failed 'queue_read()', 'queue_sync()'
or 'write()' call.

Fixes #2896
2018-08-02 14:36:43 +02:00
Christian Prochaska
b4dd9bc802 libc vfs plugin: serialize more file system calls
Issue #2635
2018-08-02 14:36:42 +02:00
Christian Helmuth
5f9ac94bef libports: update hash of downloaded fatfs sources
The author updated http://www.elm-chan.org/fsw/ff/arc/ff13b.zip recently
with a marginal change of documents/doc/appnote.html.
2018-08-02 14:36:42 +02:00
Norman Feske
9061217d80 sculpt: use vfs for config file system
By using the VFS server, we become able to populate the config-fs
content from a tar archive, which will be needed for Sculpt VC.

Issue #2902
2018-08-02 14:36:42 +02:00
Emery Hemingway
59ac5b10c7 Plugin for importing VFS content
This new vfs_import plugin allows a VFS instance to be populated during
construction using a sub-VFS configured in an '<import>' configuration
node. This allows the ram_fs File_system server to be replaced by the
VFS server by reimplementing the ram_fs 'content' feature.  At the
moment the copying of symlinks is not enabled, and the resources
obtained by the import file-system may not be freed after the import is
finished.

Fix #2906
2018-08-02 14:36:42 +02:00
Emery Hemingway
f6c47a46c6 Add type accessor to Genode::Directory::Entry
Ref #2906
2018-08-02 14:36:42 +02:00
Emery Hemingway
ac335ef58a Add Game Boy emulator to sculpt.run 2018-08-02 14:36:41 +02:00
Pirmin Duss
069f87a19f sculpt: add example to use acpica
When started acpica writes some reports to /report/acpica/.

Issue #2909
2018-08-02 14:36:41 +02:00
Pirmin Duss
5a182651db sculpt_manager: add missing parent routes to runtime
In the generated runtime file the parent provides routes for IO_MEM,
IO_PORT and IRQ are needed to run acpica as a child of runtime.

Issue #2909
2018-08-02 14:36:41 +02:00
Pirmin Duss
436b10729e acpica: create a package
Allow start of acpica inside the deploy config of sculpt.

Issue #2909
2018-08-02 14:36:40 +02:00
Alexander Boettcher
32a6d10de8 gems: support ohci in driver_manager 2018-08-02 14:36:40 +02:00
Norman Feske
4c96d697d5 sculpt_manager: reduce compile time
This little tweak reduces the compile time of the component to the half
by avoiding the repeated parsing of header files.
2018-08-02 14:36:40 +02:00
Norman Feske
a2dc07056e sculpt: use cached_fs_rom as depot_rom
Fixes #2904
2018-08-02 14:36:40 +02:00
Sid Hussmann
726327d95c audio_mixer: create recipe to deploy from depot
Issue #2907
2018-08-02 14:36:39 +02:00
Sid Hussmann
2b20fc1be2 audio_drv: add missing provides statements
Issue #2907
2018-08-02 14:36:39 +02:00
Emery Hemingway
ca042e4e6e Fix VFS notifications for ram file removal
The ram plugin to the VFS must send notifications to watch handles on
files when they are removed. This brings the VFS server to parity with
the ram_fs server for the sake of notifications.

Move run/fs_report to gems and use the vfs server and the vfs init
plugin in the test.

Ref #2902
2018-08-02 14:36:39 +02:00
Norman Feske
953c62c04c dde_linux: removed libc_setjmp dependency
This is no longer needed since dde_linux uses the lx_kit_setjmp
library now.
2018-08-02 14:36:39 +02:00
Norman Feske
6045277cca noux: fix compile warning 2018-08-02 14:36:38 +02:00
Norman Feske
d38227f840 depot: recipe for vfs_cow
Issue #2902
2018-08-02 14:36:38 +02:00
Norman Feske
4b46abf813 base: rm first-class support for static binaries
This patch removes the detection of statically linked executables from
the base framework. It thereby fixes the corner cases encountered with
Sculpt when obtaining the binaries of the runtime from the depot_rom
service that is hosted within the runtime.

Statically linked binaries and hybrid Linux/Genode (lx_hybrid) binaries
can still be started by relabeling the ROM-session route of "ld.lib.so"
to the binary name, pretending that the binary is the dynamic linker.
This can be achieved via init's label rewriting mechanism:

  <route>
    <service name="ROM" unscoped_label="ld.lib.so">
      <parent label="test-platform"/> </service>
  </route>

However, as this is quite cryptic and would need to be applied for all
lx_hybrid components, the patch adds a shortcut to init's configuration.
One can simply add the 'ld="no"' attribute to the <start> node of the
corresponding component:

  <start name="test-platform" ld="no"/>

Fixes #2866
2018-08-02 14:36:38 +02:00
Johannes Schlatow
c43ed44b17 Add vfs file size detection to ROM modules
When mounting a ROM module with binary="no", the
vfs will detect the 0-termination to calculate the
file size instead of using the dataspace size.

Fixes #2903
2018-08-02 14:36:37 +02:00
Emery Hemingway
b1b83f4d6d Process packets in batches at the VFS server
Process I/O packets in batches. If a batch is processed and there are
still packets pending, send a signal locally to the packet handler and
return to the entrypoint signal dispatcher. This prevents clients from
starving each other, which happens when a client continuously submits
packets at a faster rate than the server can process.

Fix #2900
2018-08-02 14:36:37 +02:00
Emery Hemingway
f3abee631a File_system packet processing test
Test of File_system I/O scheduling. It appears that a client not
submitting I/O packets slower than the VFS server can process will
starve other clients.

Ref #2900
2018-08-02 14:36:36 +02:00
Emery Hemingway
d2923253f3 Remove 'libc' from vfs_jitterentropy dependencies
Libc is no longer necessary for building the jitterentropy VFS plugin.

Ref #2900
2018-08-02 14:36:36 +02:00
Norman Feske
ae028d89cf driver_manager/sculpt: hook for manual USB policy
This patch adds the /config/usb file to Sculpt, which allows then user
to manually define rules for assigning USB devices to clients. The
content is incorporated by the driver manager into the USB driver
configuration. Note that this mechanism does not work for HID devices
because these devices are claimed by the USB driver's built-in HID
support.

Issue #2890
2018-08-02 14:36:36 +02:00
Martin Stein
fbe9d26c47 trace: initialize trace control in Thread::start
Previously, the trace control of a thread was initialized in its
constructor (which is generic for all components). This has the
disadvantage that the CPU-session-pointer member of the thread might not
be valid at this point. And it cannot be replaced by using the
"deprecated_env" CPU session neither as constructing the deprecated
environment in causes troubles in Core. But as the trace control
shouldn't be needed in Core anyway, the initialization can be moved to
the Thread::start implementation of non-core components. This code
already takes care of the CPU session pointer.

Fixes #2901
2018-08-02 14:36:35 +02:00
Emery Hemingway
09bf68e8ad Cached_fs_rom: serve static ROM sessions from a cache
This component is contrasted with the fs_rom server that serves
independent dataspaces to each client. Using a cache was not possible
until the region map session supported the creation of read-only
attachments.

Test at run/read_only_rom.

Ref #1633
Fix #2760
2018-08-02 14:36:35 +02:00
Martin Stein
495490743c nic_router: log ARP decisions when verbose
In verbose mode, some types of ARP packets were handled without any log about
what was done.

Issue #2899
2018-08-02 14:36:35 +02:00
Martin Stein
45347749fe nic_bridge: verbose mode
The verbosity mode of the NIC bridge can be toggled with the verbose attribute
(default value shown):

! <config verbose="no" />

If enabled, the NIC bridge logs sent and received packets as well as the
lifetime of interfaces connected to the bridge.

Issue #2899
2018-08-02 14:36:34 +02:00
Christian Prochaska
32d41388e2 pthread: 'pthread_join()' improvements
Make pthread_join() work in more situations and support passing the thread
return value.

Fixes #2892
2018-08-02 14:36:34 +02:00
Pirmin Duss
0ac9d1ee31 floating_window_layouter: handle config updates
update the internal representation of the config if it changes.

issue #2893
2018-08-02 14:36:34 +02:00
Alexander Boettcher
bac7ba6639 nova: remove echo thread in core
and replace by remote delegate syscall

Fixes #2895
2018-08-02 14:36:33 +02:00
Roman Iten
117b932176 init: add "report" element to the config schema
Issue #2897
2018-08-02 14:36:33 +02:00
Norman Feske
170507a85c bash: support home and end keys
This commit contains a patch of bash's built-in default escape sequences
to match the 'screen' terminal as used by Genode's terminal component.

Fixes #2705
2018-07-03 10:44:55 +02:00
Christian Helmuth
b485caf33c depot: update recipe hashes 2018-07-03 09:40:11 +02:00
Norman Feske
e20fe9d402 bomb.run: disable on Pistachio
The test triggers the following assertion in the kernel, which will
remain unfixed as the kernel is no longer developed:

  Assertion queue_state.is_set(queue_state_t::send) failed in file
  .../pistachio/kernel/src/api/v4/tcb.h, line 727

This assertion is presumably similar / related to issue #1495.
2018-07-03 09:39:36 +02:00
Martin Stein
4ca69b6d6d netperf tests & router: update IP match string
Issue #2899
2018-07-03 09:39:36 +02:00
Martin Stein
052ed10a17 nic_router.run: fix invalid uplink
Do not generate invalid configurations for the uplink domain anymore. If
some tests are disabled and therefore their routing rules at the uplink
domain would be invalid, spare out these routing rules.

Issue #2899
2018-07-03 09:39:35 +02:00
Norman Feske
39e6dd3d25 core: destruction order of PD session members
This patch addresses a corner case revealed by the resource_request test
on seL4 after changing the child-destruction handling with commit "base:
close PD on 'close_all_sessions'". During the destruction of the PD
session, the backing store (session-local RAM dataspace factory) of the
signal broker's slab was destroyed before destructing the signal broker.
Instantiating the signal broker after the RAM dataspace factory fixes
the destruction order.
2018-07-03 09:39:35 +02:00
Emery Hemingway
c18bee3d5b Input::Binding for non-C++ language bindings
Quietly insert forward declaration of a Input::Binding class, and make
it a friend of Input::Event and Input::Session_client. This is to allow
non-C++ language bindings (Nim) to access private members by providing
their own implementation of the Binding class.

Fix #2889
2018-07-03 09:39:35 +02:00
Norman Feske
d068eaa9f7 input_filter.run: no char-repeat test using PIT
The legacy PIT timer driver is too jittery for the character-repeat
test. This patch disables the test for platforms using this device as
user-level time source, which are at the moment OKL4, Pistachio, and
seL4.
2018-07-03 09:39:35 +02:00
Alexander Boettcher
5fe0e3d5fb sculpt: use package with top_view
based on Sculpt TC 18.06
2018-07-03 09:39:35 +02:00
Alexander Boettcher
77be0b23e5 sculpt: use package with Tinycore Firefox 61
based on Sculpt TC 18.06
2018-07-03 09:39:34 +02:00
Norman Feske
5a194d82c8 driver_manager.run: support run/image/disk
This patch makes the run script compatible with the disk-image backend
of the run tool. Since this backend attaches the boot image as AHCI
disk 0, we have to supply our custom disk image as AHCI 1.
2018-07-03 09:39:34 +02:00
Emery Hemingway
e8dc6c84a4 Add missing XML header to vfs/file_system.h
Ref #2870
2018-07-03 09:39:34 +02:00
Christian Prochaska
1d3ec6f0ae Test successive thread creation and destruction
Fixes #2887
2018-07-03 09:39:34 +02:00
Christian Prochaska
2f7e421eed linux: destroy native CPU client after thread start
The native CPU client holds a capability reference and the reference
counter of the capability can reach its limit when many threads are
successively created and destroyed (destroyed by the Linux kernel).

Fixes #2886
2018-07-03 09:39:34 +02:00
Christian Prochaska
25b47758b7 linux: new slots for non-existent capabilities only
Prevent allocation of new cap-space slots each time a capability is
received by checking if the received capability already exists.

Fixes #2885
2018-07-03 09:39:33 +02:00
Norman Feske
46241da795 Runtime for saving copies of Sculpt's report fs
Fixes #2849
2018-07-03 09:39:33 +02:00
Norman Feske
6c6b19b198 sculpt: yield focus when switching away from Wifi
When first selecting an access point to connect to, and then - while the
passphrase entry field is displayed - switching to wired networking, the
keyboard focus was still referring to the passphrase entry field instead
of yieling the focus to the inspect window. This commit fixes the
problem by adding the wifi NIC target as additional condition.
2018-07-03 09:39:33 +02:00
Sid Hussmann
9039bd58bd input_filter: add chargen for de_ch keyboard layout
Resolves #2883
2018-07-03 09:39:33 +02:00
Norman Feske
a3858bff3c base: handle cancelation of session creation
This patch improves the handling of the corner case where a client
vanishes while a session request is in flight (CREATE_REQUESTED but
not yet AVAILABLE). This corner case could be sporadically observed with
the init_loop test on base-linux.

In the original version, the session would eventually be delivered but
never picked up by anyone. Such a stale session still uses resources that
should better be released. In the new version, the parent checks for the
liveliness of the client whenever a session is delivered. If there is no
client of the session, a close request is immediately issued to the
server. The session state must be preserved until the close requests has
been answered.
2018-07-03 09:39:32 +02:00
Norman Feske
ddff89d43e base: close PD on 'close_all_sessions'
This patch moves the closing of a child's PD session from the 'Child'
destructor to the 'close_all_sessions' method. This way, the child's
PD quota is immediately returned as soon as init flags a child as
'abandoned', which removes jitter from init's RAM-state reports.

The patch is supposed to make the 'init_loop.run' test much happier.
2018-07-03 09:39:32 +02:00
Norman Feske
1b993714c5 wm.run: use initial_width/height for nit_fb
This commit is a follow-up to "nit_fb: allow screen-relative
initial_width/height". With it, the nit_fb window created via the
launchpad can be interactively resized.
2018-07-03 09:39:32 +02:00
Stefan Kalkowski
41fdb1d369 foc: update to recent revision r79 (fix #2884) 2018-07-03 09:39:32 +02:00
Christian Helmuth
8d1d57fbdf Tweak run scripts for sel4 (caps, timeout) 2018-07-03 09:39:32 +02:00
Christian Prochaska
182d1d339b vbox5: print error messages in 'VirtualBoxBase::handleUnexpectedExceptions()'
Fixes #2879
2018-07-03 09:39:31 +02:00
Alexander Boettcher
0db81f66ae nova: propagate vga text info via platform_info
Issue #2880
2018-07-03 09:39:31 +02:00