Commit Graph

10654 Commits

Author SHA1 Message Date
0393965d5a usb: clear URB's payload after finishing
Fix genodelabs/genode#5457
2025-02-24 16:39:55 +01:00
a7422e316d base: increase linker area size
Fixes #5460
2025-02-24 16:39:55 +01:00
b0f0e63b9f qt6: add qtwebchannel and qtwebengine APIs
Fixes #5459
2025-02-24 16:39:55 +01:00
dbf23a7a0c qt6: add qt5compat module
Fixes #5458
2025-02-24 16:39:55 +01:00
c9406c246e qt6: fix "file name too long" error in gn tool
Fixes #5456
2025-02-24 16:39:55 +01:00
13eef6a87a genode_c_api/usb: fix size calculation of isoc_payload
simplify and fix wrong calculation of 'size' for isoc_payload.
2025-02-24 16:39:55 +01:00
31a5597f66 hw: dump cpu context when kernel faults
* Introduce architecture-specific Cpu::panic routine
* Dump stored CPU state in panic routine
* Try to backtrace kernel context's stack

Fix genodelabs/genode#5425
2025-02-24 16:39:55 +01:00
17d1e41053 hw: explicit cpu state argument in kernel entry
* Instead of only implicitely update the last scheduled Cpu context with
  the CPU state, when entering the architecture-speficic machine
  exception vector, cache this data on kernel context stack, and deliver
  it as argument when entering the kernel via high-level language
* Handle Cpu context's exception explicitely in kernel main routine
* Make cached CPU state available to error handling lambda in case of
  Kernel::Mutex double entering (aka kernel fault)
* Rename Cpu::schedule to Cpu::assign

Ref genodelabs/genode#5425
2025-02-24 16:39:55 +01:00
98032a2605 hw: re-implement kernel mutex
* Rename Kernel::Lock into Kernel::Mutex
* Replace Guard object by template function that expects
  lambda to handle re-entrance by same cpu

Ref genodelabs/genode#5425
2025-02-24 16:39:21 +01:00
c2cee1a885 vmm_x86: test x86 virtualization nightly with hw
Ref genodelabs/genode#5450
2025-02-24 16:39:21 +01:00
759bfec3a9 hw: x86_64: clean up vCPU startup
- and store the vCPU startup state in a dedicated enum
- return the STARTUP exit from Vm::run()
- initialize the vCPU from Vm::proceed() instead of Vm::exception()

Fix genodelabs/genode#5450
2025-02-24 16:39:20 +01:00
28994f8c27 pc: use 'assert'-proc in run scripts
Issue #5432
2025-02-24 16:39:20 +01:00
347953e159 ports: use 'assert'-proc in run scripts
Issue #5432
2025-02-24 16:39:20 +01:00
a207a5491c libports: use 'assert'-proc in run scripts
Issue #5432
2025-02-24 16:39:20 +01:00
3534383ec9 base-nova: use 'assert'-proc in run scripts
Issue #5432
2025-02-24 16:39:20 +01:00
cefcd1fffa base-linux: use 'assert'-proc in run scripts
Issue #5432
2025-02-24 16:39:20 +01:00
6c1e269ed2 base: use 'assert'-proc in run scripts
Issue #5432
2025-02-24 16:39:20 +01:00
df26fe779a os: use 'assert'-proc in run scripts
Issue #5432
2025-02-24 16:39:20 +01:00
db0d76ba2f qt: support extra CMake flags
Fixes #5454
2025-02-24 16:39:20 +01:00
9c786fcfa9 qt5: set CMAKE_SHARED_LIBRARY_SONAME_C_FLAG variable
Fixes #5453
2025-02-24 16:39:20 +01:00
58f4a84f60 qt5: move WebEngine-related API recipes to genode-world
Fixes #5452
2025-02-24 16:39:20 +01:00
2c8beb462f file-system session: root dir via session label
This patch changes the way of how the client-selected sub directory is
communicated to the server. The former opaque session argument is now
passed as last label element, which allows for the flexible tweaking
of this argument by init's session-routing and label-rewriting
mechansims. In particular, it alleviates the need for creating chroot
component instances.

This change requires the following four adaptations at the
configuration level:

- Each file-system session request must now carry a path starting
  with / as last session arguments. Hence, <vfs> <fs> nodes that
  feature a 'label' attributes must extend the attribute value
  with " -> /". For <fs> nodes with no label attribute, "/" is
  used as last label argument by default.

- For matching session-routing rules at init's configuration,
  the matching of full labels should be replaced by 'label_prefix'
  matches, excluding the last (path) argument.

- Wherever a label of a file-system session is rewritten by using
  init's 'label' attribute of a <parent> or <child> target node,
  the new attribute 'identity' should be used instead. This replaces
  the identity part of the label while preserving the client's
  directory argument.

- Analogously to the matching of session-routing rules, server-side
  policy-selection rules that formerly matched a concrete 'label'
  must be changed to match a 'label_prefix' instead.

As a good practice, 'label_prefix' values should end with " ->" if
possible, which clearly delimits the identity part of the label
used by the matching.

Issue #5445
2025-02-24 16:39:20 +01:00
ba97a676ad depot: update skalk's expired public key 2025-02-24 16:39:20 +01:00
bf2c48f26f init: make label rewriting more flexible
This patch complements the existing 'label' attribute of session-route
target nodes with the new 'identity', 'resource', and 'prepend_resource'
attributes that allow for the partial rewriting of the label.

Fixes #5447
2025-02-24 16:39:20 +01:00
c5a2b00068 vmm: fix virtio gpu model
This is a fixup commit due to a regression of commit
"Rework Region_map interface".

Ref genodelabs/genode#5070
2025-02-24 16:39:20 +01:00
2719b37107 run: use ram attribute in start nodes
Issue #5448
2025-02-24 16:39:20 +01:00
feb253c10f init: ram quota as start-node attribute
This patch allows for the assignment of RAM to a start node via a new
'ram' attribute as an alternative to traditional '<resource name="RAM">'
nodes. This makes configurations more concise.

It also adds support for defining a configuration-global default RAM
quota, following the existing pattern of the default caps definition,
e.g. the following <default> node alleviates the need to repeatedly
state reasonable 'ram' and 'caps' values in each single start node.

  <default caps="100" ram="1M"/>

Fixes #5448
2025-02-24 16:39:20 +01:00
71e0fa201b Amend vbox6 runtimes / run scripts for monitor config
Issue #5449
2025-02-24 16:39:20 +01:00
2cdcacf2fc vbox6: multi-monitor support
Support dynamic panorama of virtual displays. Virtual monitors for
VirtualBox must be configured in two steps.

- <Display monitorCount="<num>"> nodes in the .vbox file defines the
  number of _connectors_ and, thus, the maximum number of connected
  virtual monitors.

- Each enabled VirtualBox monitor requests a dedicated GUI session.
  Enablement and labeling of these sessions is done via <monitor>
  nodes in the component configuration like follows.

  <monitor label="DP-1"/>
  <monitor label="HDMI-A-1"/>

Labels can be used by the window manager to configure and place the
corresponding window. The order of the nodes directly controls the
connection order at the virtual graphics card.

Fixes #5449
2025-02-24 16:39:20 +01:00
cec3a82401 libc: use more tool chain types for arm_64 and riscv
Use the unsigned long tool chain types for types previously
derived from unsigned long '__uint64_t', which is now
unsigned long long.

Issue #5431
2025-02-24 16:39:20 +01:00
696a6ec759 init: add package recipe 2025-02-24 16:39:20 +01:00
fed21976ec sculpt: add missing ROM route to dialog.lib.so
This is a follow-up fix for "gems: ABI and depot recipe for dialog API".

Issue #5409
2025-02-24 16:39:20 +01:00
7a158e1e40 lx_emul: emit TOUCH_RELEASE events with proper ID
When emitting TOUCH_RELEASE events, we have to make sure that the
release events refer to the corresponding ID of the preceding TOUCH
event(s).

Fixes #5446
2025-02-24 16:39:20 +01:00
b6cd11abc8 vfs: tolerate fs construction failures
When trying to apply dynamic config updates to the VFS, don't rely on
the assumption that one file-system instance exists for each XML node
because a malconfigured file-system route may result in a skipped
file-system construction. Print a diagnostic message instead.

Encountered while working on issue #5445
2025-02-24 16:39:20 +01:00
0174e24f5c vbox5: remove nova_die assertion
Issue #5443
2025-02-24 16:39:20 +01:00
0db17e7048 nova: remove nova_die
Fixes #5443
2025-02-24 16:39:20 +01:00
daf2c2940c nova: remove nova_die from spin_lock
Issue #5443
2025-02-24 16:39:20 +01:00
d7edb5bef7 nova: remove nova_die from lock_helper.h 2025-02-24 16:39:20 +01:00
e40f86036a nova: remove nova_die from receive_window handling
Issue #5443
2025-02-24 16:39:20 +01:00
cff4a4a909 nova: remove nova_die from pager code
Issue #5443
2025-02-24 16:39:20 +01:00
d71ddeb983 nova: remove nova_die from receive window calc.
Issue #5443
2025-02-24 16:39:19 +01:00
76a4253132 nova: remove nova_die and throw from ipc layer
Issue #5443
2025-02-24 16:39:19 +01:00
83cae3591f nova: use generic sleep_forever implementation
Issue #5443
2025-02-24 16:39:19 +01:00
44018bf49b nova: add exception handlers for all core threads
The commit will improve diagnostics, if a core thread dies
(which should never happen) with an hardware exception beside a page fault,
e.g. general protection fault or undefined opcode.

Without the commit we may not see this circumstance easily.

Issue #5443
2025-02-24 16:39:19 +01:00
c6ee9cf86c test/fb_bench: resolve uint64_t ambiguity
Issue #5428
2025-02-24 16:39:19 +01:00
d2adfa150b libc: avoid nesting of atexit handler calls
In some situations, atexit handlers perform I/O (e.g., closing a file),
which entails the handling of signals. Should SIGTERM be pending, the
handling of this signal will in turn trigger the execution of atexit
handlers. To break this cycle, this patch removes atexit handlers from
the list before executing them. So no atexit handler is entered more
than once.

Fixes #5444
2025-02-24 16:39:19 +01:00
9795f264aa ARM vmm: resolve uint64_t ambiguity
Issue #5428
2025-02-24 16:39:19 +01:00
e3607a2d67 framebuffer/virtio: resolve uint64_t ambiguity
This ambiguity is caused by the inclusion of arm_neon.h by the blit
library header.

Issue #5428
2025-02-24 16:39:19 +01:00
30b3fa45f1 window_layouter: free-arrange mode
This patch adds the feature of moving and resizing windows by clicking
anywhere within a window while the global window-management key is held.
Depending on the position within the window, the click is interpreted as
click on the title (when clicking at inner 50% of the window, or as a
click on the border (when clicking at an area nearby the window
boundary).

This mode of interaction requires more flexibility of the handling of
key sequences. The formerly hard-wired handling of the drag and drop as
response to BTN_LEFT events does not suffice. Therefore, this patch
moves the driving of the drag-and-drop state to the config level by
introducing the actions "drag" and "drop"

Fixes #5403
2025-02-24 16:39:19 +01:00
7fc060438a window_layouter: handle drag/drop as actions
This patch moves the formerly hard-wired drag-and-drop handling
to the configuration level by introducing the actions "drag" and "drop".

To aid the robust handling of release events matching their
corresponding press events, the patch refines the policy-matching of the
current combination of keys against the hierarchy of <press> and
<release> nodes. If no policy for a concrete combination exists, a
release event also considers the policy of its matching <press> node.
This way, the regular drag-and-drop rules can be expressed as

  <press key="BTN_LEFT" action="drag">
     <release key="BTN_LEFT" action="drop"/>
  </press>

This also works when releasing BTN_LEFT while pressing additional keys,
for which no policy exists.

With this change, the layouter supports the matching of multiple key
sequences instead of only one, thereby supporting multiple actions at
once and allowing for decoupling different user interactions in the
configuration.

Issue #5403
2025-02-24 16:39:19 +01:00