mirror of
https://github.com/genodelabs/genode.git
synced 2025-04-10 21:01:49 +00:00
sculpt: allow for dynamic managed/system state
Until now, the /config/system ROM was not handled by the sculpt manager but solely managed by the user. Its main purpose was the ability to reset or power-down the machine by manually modifying the 'state' attribute. However, down the road, we'd like to enable the sculpt manager to drive this state, e.g., to implement the multi-staged loading of drivers, or to drive suspend-resume states. The support such scenarios, the 'system' state has been moved from /config/system to /config/managed/system.
This commit is contained in:
parent
2ccdbf1050
commit
f81f075670
@ -388,7 +388,7 @@ install_config {
|
||||
<service name="ROM" label_last="usb_policy">
|
||||
<child name="config_fs_rom" label="usb"/> </service>
|
||||
<service name="ROM" label_last="system">
|
||||
<child name="config_fs_rom" label="system"/> </service>
|
||||
<child name="config_fs_rom" label="managed/system"/> </service>
|
||||
<service name="ROM" label_last="modem.config">
|
||||
<child name="config_fs_rom" label="managed/modem"/> </service>
|
||||
<service name="ROM" label_last="audio.config">
|
||||
@ -720,7 +720,7 @@ set fd [open [managed_config_path depot_query] w]
|
||||
puts $fd "<query/>"
|
||||
close $fd
|
||||
|
||||
foreach config { fonts wifi runtime event_filter } {
|
||||
foreach config { fonts wifi runtime event_filter system } {
|
||||
set ingredient [single_ingredient $config "default"]
|
||||
if {$ingredient != ""} {
|
||||
set from [ingredient_path $config $ingredient]
|
||||
|
@ -239,6 +239,8 @@
|
||||
<child name="config_fs_report" label="managed -> nic_router"/> </service>
|
||||
<service name="Report" label="fb_drv_config">
|
||||
<child name="config_fs_report" label="managed -> fb_drv"/> </service>
|
||||
<service name="Report" label="system_config">
|
||||
<child name="config_fs_report" label="managed -> system"/> </service>
|
||||
<service name="Report" label="event_filter_config">
|
||||
<child name="config_fs_report" label="managed -> event_filter"/> </service>
|
||||
<service name="Report" label="installation_config">
|
||||
|
@ -91,6 +91,14 @@ struct Sculpt::Main : Input_event_handler,
|
||||
handle_input_event(ev); });
|
||||
}
|
||||
|
||||
Managed_config<Main> _system_config {
|
||||
_env, "system", "system", *this, &Main::_handle_system_config };
|
||||
|
||||
void _handle_system_config(Xml_node)
|
||||
{
|
||||
_system_config.try_generate_manually_managed();
|
||||
}
|
||||
|
||||
Signal_handler<Main> _gui_mode_handler {
|
||||
_env.ep(), *this, &Main::_handle_gui_mode };
|
||||
|
||||
|
@ -340,7 +340,7 @@ class Sculpt::Runtime_config
|
||||
_vimrc { _r, Type::ROM, "default vim configuration", "config -> vimrc" },
|
||||
_fonts { _r, Type::ROM, "system font configuration", "config -> managed/fonts" },
|
||||
_pf_info { _r, Type::ROM, "platform information", "platform_info" },
|
||||
_system { _r, Type::ROM, "system status", "config -> system" },
|
||||
_system { _r, Type::ROM, "system status", "config -> managed/system" },
|
||||
_report { _r, Type::REPORT, "system reports" },
|
||||
_shape { _r, Type::REPORT, "pointer shape", "shape", Service::Match_label::LAST },
|
||||
_copy { _r, Type::REPORT, "global clipboard", "clipboard", Service::Match_label::LAST },
|
||||
|
Loading…
x
Reference in New Issue
Block a user