Commit Graph

10390 Commits

Author SHA1 Message Date
Norman Feske
e4af726056 nitpicker: alloc view caps only when needed
This patch moves the eager allocation of view capabilities from the
'view' and 'child_view' RPC functions to the 'view_capability' RPC
function, reducing the consumption of capabilities in all scenarios
where views don't need to be shared between GUI sessions.

Issue #5340
2024-10-07 14:44:30 +02:00
Norman Feske
61c0be82f9 mupdf.run: add missing libm 2024-10-07 14:44:30 +02:00
Alexander Boettcher
eb7aea82b8 hw/x86: prefer acpi rsdp v2 of multiboot2
over rsdp v1. The multiboot2 provided rsdp_v1 version may not contain the
xsdt pointer, but may have the very same acpi revision as the acpi rsdp v2
version of multiboot2.

Fixes #5332
2024-10-07 14:44:30 +02:00
Benjamin Lamowski
cdc45e15f1 libc: implement kqueue(2)
Fixes #5301
2024-10-07 14:44:30 +02:00
Christian Helmuth
45cee6e951 libc: support asynchronous monitor jobs
Issue #5302
2024-10-07 14:44:30 +02:00
Christian Helmuth
899893cd17 libc: remove dynamic alloc from pthread_once
Fixes #5336
2024-10-07 14:44:30 +02:00
Christian Helmuth
131f8015f1 test-pthread: pthread_once stress test
Issue #5336
2024-09-06 10:38:45 +02:00
Christian Helmuth
505cd5e338 test-pthread: prevent compiler warnings
.../repos/libports/src/test/pthread/main.cc:539:76: warning: ‘++’ expression of ‘volatile’-qualified type is deprecated [-Wvolatile]
.../repos/libports/src/test/pthread/main.cc:1104:32: warning: ‘test’ may be used uninitialized [-Wmaybe-uninitialized]
2024-09-06 10:38:45 +02:00
Norman Feske
ce4f0cdd18 gui_fb: update coding style
Avoid Genode:: prefix, indicate 'Main' members as being private.
2024-09-06 10:38:45 +02:00
Norman Feske
f650f2e91b gui_fb: reset signal handlers when closing fb
The gui_fb client may have installed a custom sync_sigh and mode_sigh.
Reset those signal handlers at the GUI server should the client
disappear. Otherwise, the GUI server (nitpicker) continues to attempt
transmitting sync signals to the no-longer existing component, spamming
the log with "Warning: invalid signal-context capability" messages.
2024-09-06 10:38:45 +02:00
Norman Feske
dd13a976af wm: alloc real view IDs locally
Don't use client-provided view IDs as IDs for the wrapped nitpicker
views. There is no 1:1 relation of IDs and physical views. So if a wm
client re-uses an ID, the physical view is expected to stay in tact.
If the corresponding view object within the wm is not destroyed, however,
its ID remains allocated, which may then conflict the ID of a new view
if the ID is reused by the client. This scenario resulted in the
following error:

  Error: Uncaught exception of type 'Genode::Id_space<Gui::View_ref>::Conflicting_id'

This patch handles the situation by keeping the allocator of physical
views (_real_view) decoupled from the client's ID allocator.

Issue #5242
2024-09-06 10:38:45 +02:00
Josef Söntgen
cc2b628d1c pc_wifi: use '___ratelimit' dummy
The generated dummy triggers sometimes on base-foc.
2024-09-06 10:38:45 +02:00
Alexander Boettcher
e2dd009256 netperf: retire signal patches and setitimer
emulation. Issue #5337 adds the required support to the libc.
2024-09-06 10:38:45 +02:00
Norman Feske
fc3bd14da0 libc: rudimentary support for SIGALRM
This patch enables basic use cases of the POSIX 'alarm' function, which
schedules the delivery of a SIGALRM signal after a specified amount of
seconds.

Issue #5337
2024-09-06 10:38:45 +02:00
Johannes Schlatow
0a178dc625 fs_query: replace Avl_tree by Dictonary
This allows checking for duplicate directory entries. This occurs when
there are overlayed file systems.

Fixes #5334
2024-09-06 10:37:41 +02:00
Christian Helmuth
30e57b9f24 depot_autopilot: let sel4 chew on 22 tests per boot 2024-09-06 10:37:40 +02:00
Josef Söntgen
9cf24c9f78 pci_decode: remove HDAUDIO quirk
With the updated driver the quirk for certain devices is no longer
necessary.

Issue #5331.
2024-09-06 10:37:40 +02:00
Josef Söntgen
3e82422d17 dde_bsd: update audio driver to OpenBSD -current (2024-08-16)
This update uses a -current (that will become 7.6 later this year)
snapshot from 2024-08-16 that includes fixes for MSI support on
AMD systems.

Fixes #5331.
2024-09-06 10:37:40 +02:00
Josef Söntgen
8b06d7ff42 dde_bsd: update audio driver to OpenBSD 7.5
The update is mostly cosmetic in nature and amongst others adds PCIIDs
for Alder Lake-N devices.

Issue #5331.
2024-09-06 10:37:40 +02:00
Josef Söntgen
b8292124b9 audio_out.run: adapt for newer systems
Increase the RAM quota of the 'acpi' driver, add priorities and
configure the 'record_play_mixer' as is necessary on some newer
systems.

Issue #5331.
2024-09-06 10:37:40 +02:00
Josef Söntgen
d7724e9d6a ports: remove vbox5_genode_usb_hid_raw run-script
Issue #5330.
2024-08-30 07:56:29 +02:00
Josef Söntgen
975b550432 ports: add vbox6 USB HID raw test
This commit replaces the current vbox5 based USB HID raw test, which
runs a Genode guest to test USB passthrough with a USB human interface
device, with one using vbox6.

Fixes #5330.
2024-08-30 07:56:19 +02:00
Josef Söntgen
e199d937e2 libc/termios: satisfy vbox6 serial-port
This commit adds support for TIOCSETA and TIOCFLUSH in a dummy fashion
that is enough to allow vbox6's serial-port implementation to print
lines to the log.

Issue #5330.
2024-08-30 07:55:46 +02:00
Johannes Schlatow
2e584f2f86 depot: add vfs tools to pkg/goa
Fixed #5335
2024-08-30 07:48:15 +02:00
Christian Prochaska
996ebbcbe8 qt5: filter out base-$(KERNEL) include path
Issue #5325
2024-08-29 15:26:07 +02:00
Christian Prochaska
d00117e7aa qt6: filter out base-$(KERNEL) include path
Issue #5325
2024-08-29 15:26:03 +02:00
Christian Helmuth
26002a5482 depot: update recipe hashes 2024-08-29 12:32:25 +02:00
Alexander Boettcher
6dfe05b5bf intel_fb.run: start usb driver for USB-C support
Makes the driver unit testing more reliable on USB-C supported notebooks.
It may be disabled easily, if it is not required.

Issue #5313
2024-08-28 15:07:52 +02:00
Christian Prochaska
f7a4d92c2f fixup "qt5: avoid build of qt libs as target dep" (lib/mk -> src/qt5)
Issue #5325
2024-08-28 13:47:27 +02:00
Christian Prochaska
c426929979 fixup "libports: add Qt6" (lib/mk -> src/qt6)
Issue #5325
2024-08-28 13:47:04 +02:00
Christian Prochaska
7f52089eae qt5: avoid build of qt libs as target dep
Issue #5325
2024-08-27 15:33:32 +02:00
Sebastian Sumpf
1446da8aec lx_emul: add 'wake_q_add_safe' implementation
Enable 'wake_q_add_safe' for 6.6 based Linux versions and remove it from
generated_dummies.c of affected drivers.

issue #5264
2024-08-27 15:33:32 +02:00
Alexander Boettcher
61e2c630b1 intel/display: report more connector/display info
- Physical width/height of connected display in mm
- Current mode per connector

Issue #5264
2024-08-27 15:33:32 +02:00
Josef Söntgen
0ca2fdb2de extract: replace exceptions
This commit removes the usage of exceptions and replaces them with the
Attempt utility.

Issue #5326.
2024-08-27 15:33:32 +02:00
Josef Söntgen
1e933cc490 extract: add options to operate batch-processing
This commit allows for suppressing failed extract operations by
setting the 'ignore_failures' attribute in the 'config' node.
It is intended for operating the component in batch-mode where
multiple archives need to be extracted but failing to extract
some of them can by ignored. The default value of this option
is 'false'.

It also adds the 'stop_on_failure' attribute that instructs
the component to stop processing any following archives after
it already has failed to do so. The default value of this
option is 'true' to preserve the current behavior.

Issue #5326.
2024-08-27 15:33:32 +02:00
Josef Söntgen
9b01ca3086 extract: add README
Issue #5326.
2024-08-27 15:33:32 +02:00
Alexander Boettcher
d1f1a16e89 intel/display: update to 6.6.47
Issue #5264
2024-08-27 15:33:32 +02:00
Josef Söntgen
e363af476b pc_wifi: update to Linux 6.6.47
Issue #5264
2024-08-27 15:33:32 +02:00
Sebastian Sumpf
19bb265539 pc_usb_host: update to 6.6.47
Issue #5264
2024-08-27 15:33:32 +02:00
Christian Helmuth
44ec8ec7db pc_nic: update to 6.6.47
Issue #5264
2024-08-27 15:33:32 +02:00
Sebastian Sumpf
dd0140f82e pc: use linux 6.6.47
Issue #5264
2024-08-27 15:33:32 +02:00
Sebastian Sumpf
653dfed0c5 wireguard: update to 6.6.47
Issue #5264
2024-08-27 15:33:32 +02:00
Sebastian Sumpf
189fb008b3 test/driver_time: update to 6.6.47
Issue #5264
2024-08-27 15:33:32 +02:00
Sebastian Sumpf
056c755708 usb_net: update to 6.6.47
Issue #5264
2024-08-27 15:33:32 +02:00
Sebastian Sumpf
dbb51786fc usb_hid: update to 6.6.47
Issue #5264
2024-08-27 15:33:31 +02:00
Sebastian Sumpf
2014046f77 lxip: update to 6.6.47
Now, we schedule before unblocking the rx_task. This is done in order to
execute a potentially ready ksoftirqd before unblocking the rx_task,
which in turn may execute soft-interrupt handlers through bottom half
code leading to double lock attempts of the socket spinlock.

Issue #5264
2024-08-27 15:33:31 +02:00
Sebastian Sumpf
92b34837cb lx_emul: adjust to Linux 6.6.47
Issue #5264
2024-08-27 15:33:31 +02:00
Sebastian Sumpf
bb214af3eb virt_linux: update to 6.6.47
Issue #5264
2024-08-27 15:33:31 +02:00
Sebastian Sumpf
40009986ee dde_linux: Linux 6.6.47 port
Issue #5264
2024-08-27 15:33:31 +02:00
Sebastian Sumpf
4a7a4cfac5 dde_linux: move linux.port to legacy_linux.port
This is prerequisite for the Linux update. All dependencies relying on
the 'linux' have been adjusted to use 'legacy_linux'.

Issue #5264
2024-08-27 15:33:31 +02:00
Johannes Schlatow
3211a10573 depot: rename src/rump -> src/vfs_rump
For consistency, let's all archives of VFS plugins are prefixed with
"vfs_".

Fixed #5327
2024-08-27 15:33:31 +02:00
Johannes Schlatow
995208585b sculpt: move goa_testbed preset into pc repo
Since the preset contains mesa_gpu-intel, it is specific to the pc
platform. Other platform-specific repos (such as allwinner) may contain
their own preset with the same name. To prevent that Sculpt images use
the wrong preset due to the particular order in the build.conf, we move
the preset into the pc repo.

Fixes #5322
2024-08-27 15:33:31 +02:00
Christian Prochaska
18869199ca libports: add Qt6
Fixes #5325
2024-08-27 15:33:31 +02:00
Christian Prochaska
451ea47dd8 stdcxx: add symbols needed by Qt6 to symbol file
Fixes #5324
2024-08-27 15:29:38 +02:00
Christian Prochaska
b3bf9fc9ab libc: add _sigaction to symbol file
Fixes #5323
2024-08-27 15:29:38 +02:00
Christian Prochaska
d86d8b542f mesa: add 'lib/mk/mesa.mk' in depot recipe
Fixes #5321
2024-08-27 15:29:38 +02:00
Christian Prochaska
95d7e57d62 qt5: adapt to 'Gui::Session' interface changes
Issue #5242
2024-08-27 15:29:38 +02:00
Alexander Boettcher
b443375cde timer_accuracy: disable nova on qemu 2024-08-27 15:29:38 +02:00
Alexander Boettcher
15a69113fa run/gdb: increase RAM quota to 42M
Investigated in #5305
2024-08-27 15:29:38 +02:00
Alexander Boettcher
5537a26c25 gdb: patch sigaltstack
Avoid double allocation of alternative stack. Genode's sigaltstack variant
allocates the stack with alloc_secondary_stack. Disable the warning of
sigaltstack by using explicitly the nullptr in ss_sp.

Issue #5305
2024-08-27 15:29:38 +02:00
Christian Prochaska
730f9ea437 gdb: remove gdbserver_genode.patch
Issue #5305
2024-08-27 15:29:38 +02:00
Norman Feske
7e95d5701f os: remove os/handle_registry.h
This utility is superseded by the Id_space.

Issue #5242
Fixes #5317
2024-08-27 15:29:38 +02:00
Norman Feske
d762da8659 gui_session: allow return of View_capbility_error
This interface change gives GUI servers the freedom to allocate view
capabilities at the time of request instead of the creation time of the
view. This is useful because view capabilities are rarely needed.

Issue #5242
2024-08-27 15:29:38 +02:00
Norman Feske
faf90f259c gui_session: rename 'view_id' to 'associate'
The view ID is specified as first argument to be consistent with 'view'
and 'child_view'.

Issue #5242
2024-08-27 15:29:38 +02:00
Norman Feske
f98c356efd gui_session: manage view ID at the client side
This patch moves the management of view IDs from the server to the
client side. The former 'create_view' and 'create_child_view'
operations do no longer return a view ID but take a view ID as
argument. While changing those operations, this patch takes the
opportunity to allow for initial view attributes. Combined, those
changes simplify the window manager while accommodating typical
client use cases with less code.

To ease the client-side ID management, the Gui::Connection hosts
a 'view_ids' ID space for optional use. E.g., the new 'Top_level_view'
class uses this ID space for ID allocation. This class accommodates the
most typical use case of opening a single window.

The 'alloc_view_id' RPC function is no longer needed.

Issue #5242
2024-08-27 15:29:38 +02:00
Norman Feske
805e3552fd gui_session: definition of Gui::Title
This commit allows all GUI clients and servers to talk about the same
type.

Issue #5242
2024-08-27 15:29:38 +02:00
Norman Feske
24378ac873 gui_session: rename View_handle to View_id
The former Gui::Session::View_handle is not called Gui::View_id.

Issue #5242
2024-08-27 15:29:38 +02:00
Norman Feske
d02a3d25d0 gui_session: replace Handle_registry by Id_space
This patch reworks the view-ID handling within the nitpicker GUI server
and the window manager. The namespace of view handles are now represented
as an Id_space. In constrast to the former "handles", which could be
invalid, IDs cannot be semantically overloaded with anything other than
an actual view reference. There is no notion of an invalid handle.
IDs are like C++ references (which cannot be a nullptr).

This change requires the code to be more explicit. E.g., the stacking of
a few at the front-most position can no longer be expressed by passing
an invalid handle as neighbor.

Issue #5242
2024-08-27 15:29:38 +02:00
Norman Feske
4e711d4738 gui_session: split alloc_view_handle, view_handle
Express the allocation of a new view handle by a dedicated RPC function
instead of passing an invalid view handle to the existing 'view_handle'
function.

This eliminates the notion of invalid view handles at the GUI session
interface, clearing the way for managing view handles via an Id_space.

Issue #5242
2024-08-27 15:29:38 +02:00
Norman Feske
f274ed549e gui_session: distinguish view-stacking operations
This patch eliminates the use of invalid view handles as special
Session::Command arguments. The TO_FRONT and TO_BACK operations
interpreted as invalid neighbor as top-most or back-most position.
Those corner cases are now expressed via dedicated commands. The
new stacking commands are FRONT, BACK, FRONT_OF, and BEHIND_OF.

While changing the command interface, the patch removes the OP_
prefix from the opcode values.

Issue #5242
2024-08-27 15:29:38 +02:00
Norman Feske
b0803eabdb gui_session: simplify input/framebuffer aggregate
- Rename framebuffer_session to framebuffer and
  input_session to input as those RPC interfaces are no longer
  meant to be used as stand-alone sessions.

- Host Connection::input and Connection::framebuffer as public
  members, thereby removing the use of pointers. This simplifies
  the client-sized code. E.g., '_gui.input()->pending()' becomes
  '_gui.input.pending()'.

Issue #5242
2024-08-27 15:29:37 +02:00
Norman Feske
9823b7dbd0 gui_session: remove C++ exceptions
To maintain ease of use at the client side, the OUT_OF_RAM and
OUT_OF_CAPS results are handled at the 'Gui::Connection' now.

Gui::Connection does not inherit the Gui::Session interface any longer,
which allows for the use of different result types.

Issue #5242
Issue #5245
2024-08-27 15:29:37 +02:00
Norman Feske
1c148c7984 gui_session.h: distinguish child-view creation
This patch replaces the optional parent argument of the create_view
RPC function by a dedicated create_child_view RPC function. This
is a preparatory step of removing the notion of an invalid handle
as a special case.

Issue #5242
2024-08-27 15:29:37 +02:00
Josef Söntgen
83ddc41d63 lighttpd: prevent invalid fdarray access
The fd event handling uses the fd to directly access the array slot and
expects the fds to be contiguous and capped.

Since the returned fds from our libc were much larger than expected,
because the libc itself consumes multiple fds when managing sockets,
using the fd in this manner leads to memory corruption.

This commit limits the maxfds to 63 and always allocates 1024 slots
in the fd-array.

Fixes #5320.
2024-08-27 15:29:37 +02:00
Christian Helmuth
f3217f6ab3 qemu-usb: improve isochronous error message 2024-08-27 15:29:37 +02:00
Johannes Schlatow
32b7a91c19 vfs_tap: prevent unnoticed link state changes
Swap order of link_state() and link_state_sigh() calls in order to not
miss any link state changes.

Fixes #5316
2024-08-27 15:29:37 +02:00
Alexander Boettcher
2e92b7ae32 nova: enable FPU AVX support
Add extended FPU state detection and handling (via xsave and friends) to the
kernel, which has to store/load more FPU state (~512 -> 2k++) during context
switching of threads. Additional the referenced nova branch contains various
optimization during VM destruction and cross core IPC resource caching.

This FPU work is based upon upstream NOVA kernel and Hedron commits.

Issue #5314
Fixes #3914
2024-08-27 15:29:37 +02:00
Alexander Boettcher
79506e4494 vbox5: disable xsave
some more adjustments are needed for xsave support, but this port is scheduled
to be removed. Just disable xsave for the time being to make nightly test
happy.

Issue #5314
2024-08-27 15:29:37 +02:00
Christian Helmuth
666a66e327 pc_wifi.run: spend 2M RAM for platform driver
Issue #5264
2024-08-27 15:29:37 +02:00
Josef Söntgen
2b3a2b875b wifi: fix double free during FW loading
The commit that added firmware loading via the VFS (see #4861)
introduces a double-free bug where the memory that contains the
image is freed twice, once from the callback and once from the
work function.

As alle examined drivers call 'release_firmware' from the callback
function themselves, remove the erroneous 'kfree' call from the
work function.

Issue #5264.
2024-08-27 15:29:37 +02:00
Josef Söntgen
572d406d66 sculpt_manager: remove inactive use_11n attribute
This is a follow-up commit to #4506 where the inactive 'use_11n'
attribute was already removed.

Issue #5262.
2024-08-27 15:29:37 +02:00
Josef Söntgen
978e82e893 sculpt_manager: enable updating of wifi quality
The 'update_quality_interval' instructs the wifi driver to update
the approximated link quality to the currently connected AP every
30 seconds.

Issue #5262.
2024-08-27 15:29:37 +02:00
Josef Söntgen
bc64d53a77 driver/wifi: update the connected signal quality
This commit introduces support for querying and updating the signal
quality of the established connection to the current accesspoint.

By setting the 'update_quality_interval' to a non-zero value specified
in seconds the 'state' report will be updated to incorporate the
current signal quality. It uses the same approximation as is already
in use by the scan results.

Fixes #5262.
2024-08-27 15:29:37 +02:00
Stefan Kalkowski
672179c3b8 usb: correct order of index, value in Alt_setting
Fix genodelabs/genode#5315
2024-08-27 15:29:37 +02:00
Norman Feske
89446084f3 test/nitpicker: fix interaction in non-alpha mode
Commit "gui_session,nitpicker,testnit: update coding style" broke the
user-input handling of the test when configured w/o alpha.
2024-08-27 15:29:37 +02:00
Christian Helmuth
d40f9b712e genode_c_api: do not match HID in AUDIO devices
Now, USB audio class devices become available in Sculpt, e.g., for vbox
passthrough, and are not automatically grabbed by the usb_hid class=3
policy. In the future, interface/endpoint level policies will enable
driving the HID interface only from usb_hid while a usb_audio driver
controls the rest of the device.
2024-08-27 15:29:37 +02:00
Spencer
91e81591fe Update documentation for hello_tutorial
Bring the docs up to date with the current run definition at
https://github.com/genodelabs/genode/blob/master/repos/hello_tutorial/run/hello.run
as well as changes to the imports of
https://github.com/genodelabs/genode/blob/master/repos/hello_tutorial/src/hello/server/main.cc

Fix #5291
Fix #5292
2024-08-27 15:29:37 +02:00
Christian Helmuth
e64b07d7a4 internet_checksum.run: don't use bad trafgen seeds 2024-08-27 15:29:37 +02:00
Stefan Kalkowski
e5c0d5247e simplify interactive USB HID test metric
To circumvent recurring false-positives whenever things
in the USB drivers or its environment changes, limit
the checks to the event listener itself.
2024-08-27 15:29:36 +02:00
Martin Stein
af78376627 tresor: add readme file
Fix #5311
2024-08-27 15:29:36 +02:00
Stefan Kalkowski
a7b4add27c hw: move cpu kernel object into cpu local area
Fix genodelabs/genode#5310
2024-08-27 15:29:36 +02:00
Stefan Kalkowski
9258004cc7 hw: move stack into cpu local mem area
Ref genodelabs/genode#5310
2024-08-27 15:29:36 +02:00
Stefan Kalkowski
6afe4f79a2 base: tie quota_lim_downscale template to size_t
* Always use size_t instead of template type
* Thereby we can remove 128-bit type from all architectures in base-hw

Ref genodelabs/genode#5310
2024-08-27 15:26:51 +02:00
Stefan Kalkowski
7770285aed hw: remove duplicated definition of x86 local APIC
Ref genodelabs/genode#5310
2024-08-27 15:26:51 +02:00
Josef Söntgen
6889959f59 linux-firmware: add AX200, 9560 and T430/T530
This commit adds the firmware image for the AX200 device as found
in the Tuxedo Pulse 15 Gen1, the 9560 as found in the Starlite and
the for devices found in the T430/T530.

Fixes #5282.
2024-08-27 15:26:51 +02:00
Alexander Boettcher
99667de35b nova: limit assertions during early boot
Turn some of the current assertions into warnings/error messages and
continue boot. Print the messages as soon as core_log is initialized,
so that on live/release systems (Sculpt OS) it may be inspected later on.

Related to issue #5307
2024-08-27 15:26:51 +02:00
Alexander Boettcher
eaadc6aad6 nova: support to run on e-core only SOCs
The code to group together SMT threads of one CPU and to move P-Core to
the beginning of Genode's affinity-space, did not consider to run on
SOCs with only E-Core CPUs.

Re-structure the code to support e-Core only SOCs.

Additionally, provide a fallback mapping in case of CPU id reordering problems.
Track faulty re-mapping and delay the reporting until core_log is initialized,
so that the warnings is visible to consumers, e.g. on Sculpt OS.

Related to discussion of #5304

Fixes #5307
2024-08-27 15:26:51 +02:00
Christian Helmuth
044d8bca44 dde_linux: improve handling of IRQ masking and ack
Unmasking of a pending interrupt did not lead to immediate IRQ handler
execution in all cases.

This commit also addresses some style concerns risen during the issue
discussion.

- Replace multi-boolean IRQ state by state enum
- EOI and ACK should be same in DDE context
- Unify x86 and ARM irqchip.c
- Remove Pending_irq type
- Remove dde_irq_set_wake()

Fixes #5164
2024-08-27 15:26:51 +02:00
Alexander Boettcher
56ee01bc8c vbox6: clear screen on guest triggered blanking
An invalid bitmap is exactly once set during blanking, use this as hint
to clear the GUI content. Same as done in vbox5.

Fixes #5263
2024-08-27 15:26:51 +02:00
Sebastian Sumpf
f552b26fb9 vfs_lwip: check _pcb for null in write_ready
_pcb may be zero due to shutdown or error in Tcp_socket_dir
2024-08-27 15:26:51 +02:00
Christian Helmuth
a441bdf59a lx_emul: enable SLUB allocator (pc, virt)
The use of the Linux-internal SLUB allocator is supported by lx_emul and
drivers may now decide between the Linux implementation or our emulation
of kmem_cache. Drivers for pc and virt already use SLUB, while other
drivers still use the emulation and may be adapted step-by-step incl.
the testing on the devices.

Fixes #5236
2024-08-27 15:26:51 +02:00
Alexander Boettcher
a798f70284 libc: add limited sigaltstack support
Allocate a Genode known stack via alloc_secondary_stack and register it
as alternative stack via Signal:use_alternative_stack().

The original semantic of Posix, where the caller may choose arbitary stack
pointers is currently not possible. Warn about the fact.

Issue #5305
2024-08-27 15:26:51 +02:00
Alexander Boettcher
0c5df0036c libc: support to execute signal on separate stack
With the commit LibC signals will be executed on a separate stack and
not anymore on the kernel or user stack.

Fixes #5305
2024-08-27 15:24:20 +02:00
Christian Helmuth
992b412be2 lx_emul: silently drop KEY_FN in evdev
The Fn key on keyboards should never be reported as real scancode event,
as it is just a hardware switch that changes the reported scancodes of
other keys. The behavior of Linux hid-apple.c is wrong as it on one hand
reports different scancodes for the same hard key depending on the Fn
state but sends the Fn press and release events too. Thus from now on,
we just drop KEY_FN events for all drivers as otherwise, scancodes
generated generated by Fn+key combinations would never be single-key
events on upper layers, for example KEY_FN + KEY_F12 on the Matias Apple
keyboard clone in the fixed issue.

Fixes #5288
2024-08-27 15:24:20 +02:00
Roman Iten
110a24f650 run/sntp_client: adjust run_genode_until condition
By calling run_genode_until twice, we take into account that the boot
time on some boards might long than on others, while still verifying
that the second "set_rtc" is reported within about 1min (+10s).

Fixes #5306
2024-08-27 15:24:20 +02:00
Johannes Schlatow
86848d2868 sculpt: add debug monitor to goa testbed
This also adds policies and domains to the nic router config for gdb and
vnc.

Fixes #5293
2024-08-27 15:24:20 +02:00
Christian Helmuth
62061c5596 wg_fetchurl.run: create data file early (fix linux) 2024-08-27 15:24:20 +02:00
Christian Helmuth
c0f6d9ba7e lx_emul: cache_line_size and cpufeature on arm64
Issue #5236
2024-08-27 15:24:20 +02:00
Christian Prochaska
ae8eb37ca2 qt5: QPA plugin improvements
Fixes #5285
2024-08-27 15:24:20 +02:00
Christian Prochaska
6acfe8a41e wm: forward mode change signal to viewless clients
Fixes #5284
2024-08-27 15:24:20 +02:00
Johannes Schlatow
8ef88ae084 monitor: skip wait for terminal connection
Waiting for the terminal connection (e.g. if routed to a tcp_terminal)
can cause the monitor to get stuck in the '_handle_config' method.

Fixes #5275
2024-08-27 15:24:20 +02:00
Johannes Schlatow
5bc6c9f2d0 tcp_terminal: fix destruction of Open_socket
The socket API close() must be called within a libc context. Moreover,
the socket for listening needs to be closed as well.

Fixes #5270
2024-08-27 15:24:20 +02:00
Johannes Schlatow
7b8a2e77e4 socket_fs: invalidate fd on context destruction
This prevents accesses to `Socket_fs::Context::_fd_ready_ready()` that
caused a "__cxa_pure_virtual called" error.

Fixes #5265
2024-08-27 15:24:20 +02:00
Pirmin Duss
96ef527436 Gpio::Connection accept a session label
This allows a component to access GPIOs from different banks of
an SOC.

Issue genodelabs#5273
2024-08-27 15:24:20 +02:00
Johannes Schlatow
09c40688e1 platform/pc: remove translations after Out_of_ram
Since page tables might need to be allocated during
insert_translation(), Out_of_ram or Out_of_caps exceptions might occur.
Entries that have already been added by insert_translation() must thus be
removed once one of those exceptions occurred.

Fixes #5254
2024-08-27 15:24:20 +02:00
Sebastian Sumpf
190d49527c rump: add reproducible option to newvers.sh
issue #5255
2024-07-02 12:00:11 +02:00
Sebastian Sumpf
eb656bf40c libcrypto: add support for SOURCE_DATE_EPOCH
Use SOURCE_DATE_EPOCH for build date if present.

issue #5255
2024-07-02 12:00:11 +02:00
Sebastian Sumpf
cfe27e07de themed_decorator: use TAR_OPT for archive
This commit produces a consistent tar archive.

issue #5255
2024-07-02 12:00:11 +02:00
Sebastian Sumpf
458cb25d6c qt5: use TAR_OPT for archives
This commit produces consistent tar archives.

issue #5255
2024-07-02 12:00:11 +02:00
Sebastian Sumpf
ddcfe51ef5 base/global.mk: TAR_OPT
Add TAR_OPT to global.mk that defaults to user and group 1, while
setting mtime to 0 for tar archives. This can be used in components to
produce consistent (reproducible) tar archives.

issue #5255
2024-07-02 12:00:11 +02:00
Norman Feske
943dfa10e7 base/child.h: remove exceptions from process init
This patch replaces the former Child::Process and
Child::Process::Loaded_executable classes by static functions that
return failure conditions as return values.

Issue #5245
2024-07-02 12:00:11 +02:00
Norman Feske
0288cffaee Remove exceptions from 'Parent' interface
Issue #5245
2024-07-02 12:00:11 +02:00
Norman Feske
19c13877ca Replace use of 'typedef' by 'using'
Issue #5227
2024-07-02 12:00:11 +02:00
Norman Feske
361557e1f0 base-*: omit () for lambas w/o argument
Issue #5227
2024-07-02 12:00:11 +02:00
Norman Feske
a2b0553c51 base-*: use C++20 function template syntax
Issue #5227
2024-07-02 12:00:11 +02:00
Johannes Schlatow
b5c9107465 use /depot as depot directory in debug info
By using GCC's --debug-prefix-map argument, we can make sure that debug
archives always refer to source files at /depot. With this change, GDB
can be pointed to the correct source-file location by using the `set
substitute-path /depot /path/to/local/depot`.

Fixes #5260
2024-07-02 12:00:10 +02:00
Norman Feske
d44ec53cd3 core: tie Platform_thread to Platform_pd
This patch tightens the coupling of the 'Platform_thread' objects
with their corresponding 'Platform_pd' objects by specifying the
'Platform_pd' as constructor argument, keeping the relationship
as a reference (instead of a pointer), and constraining the
lifetime of 'Platform_pd' objects to the lifetime of the PD.

It thereby clears the way to simplify the thread creation since all
PD-related information (like quota budgets) are now known at the
construction time of the 'Platform_thread'.

The return value of 'Platform_thread::start' has been removed because it
is not evaluated by 'Cpu_thread_component'.

Related to #5256
2024-07-02 11:59:16 +02:00
Alexander Boettcher
c18f7c7594 timer: remove old timer infrastructure
Fixes #5138
2024-07-02 11:59:16 +02:00
Alexander Boettcher
462718bcf0 epit: move timer to imx repository
Issue #5138
2024-07-02 11:59:16 +02:00
Stefan Kalkowski
969a0583ee qemu-usb: handle smaller isochronous packets
Fix the wrong assumption about isochronous packets being always send
with maximum EP's packet size. Instead the isochronous cache now contains
a sizes array to deal with arbitrary packet sizes.

Fix genodelabs/genode#5257
2024-07-02 11:59:16 +02:00
Stefan Kalkowski
f1f2d759af libusb: re-enable timeout setting for control urbs
Fix genodelabs/genode#5259
2024-07-02 11:59:16 +02:00
Stefan Kalkowski
73b65084e2 pin_session: add missing header
Fix genodelabs/genode#5258
2024-07-02 11:59:16 +02:00
Christian Prochaska
37e0d20bf2 qt5: adaptation to 'Genode::Region_map' changes
Issue #5245
2024-07-02 11:59:16 +02:00
Norman Feske
5a6c4d6ff2 base-hw: handle cap-slab exhaust in Thread::start
This interim solution for issue #5256 solves the problem for the
thread.run script.

Issue #5256
2024-07-02 11:59:16 +02:00
Stefan Kalkowski
d9d2a7584e base-hw: remove cortex spec directories
For consistency reasons, remove the cortex_a8, cortex_a9, and cortex_a15
spec directories. Such SPEC variables do not exist since a while.
Also rename remaining translation_table.h header to page_table.h to
stay consistent with the class names inside.

Fix genodelabs/genode#5253
2024-07-02 11:59:16 +02:00
Norman Feske
0105494223 Rework Region_map interface
- Remove exceptions
- Use 'Attr' struct for attach arguments
- Let 'attach' return 'Range' instead of 'Local_addr'
- Renamed 'Region_map::State' to 'Region_map::Fault'

Issue #5245
Fixes #5070
2024-07-02 11:59:16 +02:00
Norman Feske
d866b6b053 Remove exceptions from Cpu_session interface
The 'Thread_creation_failed' error is now reflected as
'Thread::Start_result' return value. This change also removes the
use of 'Invalid_thread' within core as this exception is an alias
of Cpu_session::Thread_creation_failed.

Issue #5245
2024-07-02 11:59:16 +02:00
Martin Stein
e7f564cd3b nic_router: use C++20 function template syntax
Fix #4534
2024-06-20 13:51:26 +02:00
Martin Stein
7d576b4f15 nic_router: re-use ARP waiters for same IP address
For each packet that got stuck with an ARP-cache miss, the router used to send
one ARP request and create one ARP waiter. However, in situations where many
packets target the same IP at one destination domain and during a short period
of time, this causes unnecessary session-quota consumption and network traffic.
This issue becomes especially pressing when taking malicious source peers,
absent destination peers, and packet batching into account.

Therefore, with this commit, the router can accumulate multiple source packets
with the same destination IP at one ARP waiter. This means, that only the first
packet with an ARP-cache for a certain IP sends an ARP request and creates an
ARP waiter. For situations where the ARP request is not answered, this
essentially rate-limits ARP requests for one IP at one destination domain
according to the lifetime of ARP waiters (default: 10s)

Ref #4534
2024-06-20 13:50:55 +02:00
Martin Stein
31a438edf6 nic_router: prevent ARP request without ARP waiter
The router used to send an ARP request for a packet before allocating the
corresponding ARP waiter. If the ARP waiter could not be allocated due to
resource exhaustion plus emergency free failed, the packet got dropped and the
router had produced unnecessary network traffic. The commit fixes this by
sending only after successful allocation.

Ref #4534
2024-06-20 13:49:53 +02:00
Martin Stein
682dedb2e1 nic_router: lower packet-batch count to 50
The previous default packet-batch count of 150 (<config
max_packets_per_signal>) was choosen with the only goal of preventing
starvation by huge amounts of packets from one session.

However, there is something else to keep in mind. A packet that is found to
require ARP sends an ARP request and becomes blocked after having consumed
resources. This means, that, in the worst case, the router used to send 150 ARP
requests and consume resources 150 times before making it even possible for the
outer world to react and cause resources to be freed.

With this additional scenario in mind, the default batch size should be
significantly lower.

Ref #4534
2024-06-20 13:49:24 +02:00
Stefan Kalkowski
e93f5fe8e0 base-hw: move imx53-specifics to imx repository
Ref genodelabs/genode#5252
2024-06-20 13:25:06 +02:00
Stefan Kalkowski
0c8abf9b50 os: move imx sd_card driver to imx repository
Ref genodelabs/genode#5252
2024-06-20 13:24:44 +02:00
Stefan Kalkowski
d1123ebe4c os: move imx8q_evk's i2c driver to imx repo
Ref genodelabs/genode#5252
2024-06-20 13:24:44 +02:00
Stefan Kalkowski
86386548c0 os: move synaptics_dsx touch driver to imx repo
Ref genodelabs/genode#5252
2024-06-20 13:24:44 +02:00
Stefan Kalkowski
6162eae9e0 os: move tz_vmm example to imx repository
Ref genodelabs/genode#5252
2024-06-20 13:24:44 +02:00
Stefan Kalkowski
5a8d149fe3 hw: move all imx7d specifics to imx repository
Ref genodelabs/genode#5252
2024-06-20 13:24:41 +02:00
Alexander Boettcher
ed522d51c8 linux: use new timer scheme
Issue #5138
2024-06-20 13:19:43 +02:00
Alexander Boettcher
32c5ef32e9 foc: use new timer scheme
Issue #5138
2024-06-20 13:19:43 +02:00
Norman Feske
299951ced5 depot: update recipe hashes 2024-06-20 12:59:00 +02:00