Commit Graph

1414 Commits

Author SHA1 Message Date
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
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
Christian Helmuth
26002a5482 depot: update recipe hashes 2024-08-29 12:32:25 +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
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
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
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
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
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
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
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
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
Norman Feske
19c13877ca Replace use of 'typedef' by 'using'
Issue #5227
2024-07-02 12:00:11 +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
Norman Feske
299951ced5 depot: update recipe hashes 2024-06-20 12:59:00 +02:00
Norman Feske
c629c54153 Make util/geometry.h C++20 friendly
- Move header to base/include to make it applicable for base types
  like 'Affinity' down the road.
- Represent 'Rect' as typle of point and area, which is the most
  common form of initialization, creates in valid 'Rect' by default.
- Turn Point, Area, and Rect into compound types, making x, y, w, h, at,
  area accessible without a method call
- 'Rect::Compound' function for constructing a 'Rect' from two points,
  replacing a former constructor
- Use result type 'Rect::Cut_remainder' instead of out parameters.

Fixes #5239
2024-06-20 12:54:30 +02:00
Norman Feske
fe613fa9a3 Rename src/drivers to src/driver
Issue genodelabs/genode#4420
2024-06-20 12:54:30 +02:00
Norman Feske
8943a3e949 Remove '_drv' suffix
Issue #4420
2024-06-20 12:54:30 +02:00
Christian Helmuth
4b9f4d8c38 depot: update recipe hashes 2024-05-30 08:20:21 +02:00
Christian Helmuth
16e088a34e vbox6: adapt to C++20 function template syntax
GCC's -std=gnu++17 is required for VirtualBox 6 but, fortunately,
support the "auto template" syntax with -fconcepts.

Issue #5227
2024-05-29 09:18:12 +02:00
Alexander Boettcher
b33afb24d7 nova: adjust to cmdline changes of kernel
- no need to explicitly switch off vga anymore
- use vPID for VMs which improves TLB usage if multiple vCPUs on same
  pCPU is used, which happens to happen on Sculpt.
- support for mwait by nova kernel, which is off by default

Issue #5206
2024-05-29 09:18:11 +02:00
Alexander Boettcher
d9086833ed netperf: run timer most preferred in tests 2024-05-29 08:37:08 +02:00
Alexander Boettcher
59c42ffb46 lib-qemu: support to use qemu-usb w/o webcam
for other VMMs beside Virtualbox, e.g. Seoul or potentially arm/vmm. The
webcam model depends on libyuv, which uses stdcxx + full libc, which is not
desired or required for all VMM implementations.

Fixes #5208
2024-05-13 14:06:54 +02:00
Christian Helmuth
79e391ba8d vbox6: diagnostic message on Region_conflict
Catch and log Vm_session::Region_conflict, but continue operation.
2024-05-07 15:21:48 +02:00
Christian Helmuth
4b9d02fe31 depot: update recipe hashes 2024-05-02 11:19:50 +02:00
Christian Helmuth
c25841691f ports: build vim/vim-minial with --enable-multibyte
A first step to complete UTF-8 support in the terminal (e.g.,
system_shell).
2024-05-02 11:19:49 +02:00
Christian Helmuth
59b85cc672 depot: update recipe hashes 2024-04-26 09:59:36 +02:00
Christian Prochaska
47c1e45f28 ports: increase GDB resource quota limits on Sculpt
Fixes #5188
2024-04-25 15:43:01 +02:00
Christian Helmuth
85c99c238d depot: update recipe hashes 2024-04-19 08:54:22 +02:00
Josef Söntgen
344831ec06 curl: update to version 8.7.1
This commits updates the contrib sources to version 8.7.1.

This version requires more random entropy as it queries OpenSSL
about the current random state and will bail if it is not sufficient.
Doubling the content of the '<inline>' VFS plugin as used in static
configurations seems satisfactory.

Furthermore DNS resolving needs a configured '<pipe>' plugin to work
properly.

Fixes #5184.
2024-04-19 08:54:21 +02:00
Christian Helmuth
dc0e78cdf8 depot: update recipe hashes 2024-04-12 15:08:01 +02:00
Christian Prochaska
039a851003 gdb: prevent use of host libgmp in configure test
Fixes #5173
2024-04-12 15:08:01 +02:00
Josef Söntgen
bda86b8f15 vbox6: switch pkgs to new VFS OSS plugin
Issue genodelabs/genode#5167.
2024-04-12 15:08:00 +02:00
Josef Söntgen
c9d70552a4 Rename vfs_oss to vfs_legacy_oss
Rename the old VFS OSS plugin using Audio_out and Audio_in sessions
and adapt users accordingly.

Issue genodelabs/genode#5167.
2024-04-12 15:05:47 +02:00
Christian Prochaska
90239c0787 ports: add 'gdb_support'
Fixes #5163
2024-04-12 15:00:44 +02:00
Christian Prochaska
d813a12f20 tool chain: GDB fixes
Fixes #5154
2024-04-12 15:00:44 +02:00
Christian Prochaska
b439924bf9 tool chain: fix GCC internal compiler error
Fixes #5153
2024-04-12 15:00:44 +02:00
Christian Helmuth
229f01b153 vbox6-capture: enable Windows BSOD logging
Issue #5099
2024-04-12 15:00:44 +02:00
Alexander Boettcher
23078154cd vbox: avoid blocking nic_ep thread
during receive the nic_ep may block as long as the guest does not provide
another receive network descriptor. In the meantime, all Genode signals
regarding the network interface, e.g. tx, will be postponed, which may
effect the throughput.

Instead use the nic_ep for rx packets unblocking. Add an notification mechanism
to the e1000 vbox network model, to notify us as soon as the guest added new
receive descriptors in the model.

Issue #5146
2024-04-12 12:57:30 +02:00
Alexander Boettcher
e1e87657c7 vbox: batch network packets
Fixes #5146
2024-04-12 12:57:30 +02:00
Christian Helmuth
609a065503 Static IP config in lighttpd.run on base-linux 2024-04-12 12:57:30 +02:00
Stefan Kalkowski
7ec08af6d9 usb: session renewal & new client API
Replace the USB session API by one that provides a devices ROM only,
which contains information about all USB devices available for this client,
as well as methods to acquire and release a single device.

The acquisition of an USB device returns the capability to a device session
that includes a packet stream buffer to communicate control transfers
in between the client and the USB host controller driver. Moreover,
additional methods to acquire and release an USB interface can be used.

The acquisition of an USB interface returns the capability to an interface
session that includes a packet stream buffer to communicate either
bulk, interrupt, or isochronous transfers in between the client and the
USB host controller driver.

This commit implements the API changes in behalf of the Genode C API's
USB server and client side. Addtionally, it provides Usb::Device,
Usb::Interface, and Usb::Endpoint utilities that can be used by native
C++ clients to use the new API and hide the sophisticated packet stream API.

The adaptations necessary target the following areas:

* lx_emul layer for USB host and client side
* Linux USB host controller driver port for PC
* Linux USB client ports: usb_hid_drv and usb_net_drv, additionally
  reduce the Linux tasks used inside these drivers
* Native usb_block_drv
* black_hole component
* Port of libusb, including smartcard and usb_webcam driver depending on it
* Port of Qemu XHCI model library, including vbox5 & vbox6 depending on it
* Adapt all run-scripts and drivers_interactive recipes to work
  with the new policy rules of the USB host controller driver

Fix genodelabs/genode#5021
2024-04-12 12:57:30 +02:00
Christian Helmuth
b99d91b96e lighttpd: pkg recipe for easy runtime instantiation
The package depends on two resources.

- A Nic session should be routed to the nic_router "http" domain make
  the HTTP server available from the outside on forwarded port 80.

- A File_system session labeled "webroot" can be routed to any server
  by relabeling the session, e.g., to "report" or "config" in parent.

Sculpt deploy exmaple exporting report_fs via HTTP.

  <start name="lighttpd" pkg="lighttpd">
    <route>
      <service name="Nic">
        <child name="nic_router" label="http"/>
      </service>
      <service name="File_system" label="webroot">
        <parent label="report"/>
      </service>
    </route>
  </start>
2024-04-12 12:55:38 +02:00
Christian Helmuth
83afc6e438 lighttpd: restore omission of O_NONBLOCK
Remove O_NONBLOCK from flags for regular files as libc cannot tell apart
regular files from others behind file-system sessions. Otherwise, reads
always "fail" with EAGAIN.

genodelabs/genode#5093
2024-03-05 11:56:19 +01:00
Christian Helmuth
9c7a303caf depot: update recipe hashes 2024-02-29 11:08:28 +01:00