* 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
* 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
- 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()
Fixgenodelabs/genode#5450
Renaming 'get_cmd_switch' and 'get_cmd_arg' to 'have_cmd_arg' and
'cmd_arg' respectively blends in nicely with the now omnipresent pattern
with 'have_[spec|board|installed|include]'.
This commit deprecates 'get_cmd_switch' and 'get_cmd_arg', which will be
removed in a later commit.
Issue #5432
This procedure is useful for run scripts that depend for example on a
board support package that is provided only for certain boards, possibly
by a third-party repo.
Issue #5432
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
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
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
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
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
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