mirror of
https://github.com/mmueller41/genode.git
synced 2026-01-21 12:32:56 +01: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:
committed by
Christian Helmuth
parent
2ccdbf1050
commit
f81f075670
@@ -388,7 +388,7 @@ install_config {
|
|||||||
<service name="ROM" label_last="usb_policy">
|
<service name="ROM" label_last="usb_policy">
|
||||||
<child name="config_fs_rom" label="usb"/> </service>
|
<child name="config_fs_rom" label="usb"/> </service>
|
||||||
<service name="ROM" label_last="system">
|
<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">
|
<service name="ROM" label_last="modem.config">
|
||||||
<child name="config_fs_rom" label="managed/modem"/> </service>
|
<child name="config_fs_rom" label="managed/modem"/> </service>
|
||||||
<service name="ROM" label_last="audio.config">
|
<service name="ROM" label_last="audio.config">
|
||||||
@@ -720,7 +720,7 @@ set fd [open [managed_config_path depot_query] w]
|
|||||||
puts $fd "<query/>"
|
puts $fd "<query/>"
|
||||||
close $fd
|
close $fd
|
||||||
|
|
||||||
foreach config { fonts wifi runtime event_filter } {
|
foreach config { fonts wifi runtime event_filter system } {
|
||||||
set ingredient [single_ingredient $config "default"]
|
set ingredient [single_ingredient $config "default"]
|
||||||
if {$ingredient != ""} {
|
if {$ingredient != ""} {
|
||||||
set from [ingredient_path $config $ingredient]
|
set from [ingredient_path $config $ingredient]
|
||||||
|
|||||||
@@ -239,6 +239,8 @@
|
|||||||
<child name="config_fs_report" label="managed -> nic_router"/> </service>
|
<child name="config_fs_report" label="managed -> nic_router"/> </service>
|
||||||
<service name="Report" label="fb_drv_config">
|
<service name="Report" label="fb_drv_config">
|
||||||
<child name="config_fs_report" label="managed -> fb_drv"/> </service>
|
<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">
|
<service name="Report" label="event_filter_config">
|
||||||
<child name="config_fs_report" label="managed -> event_filter"/> </service>
|
<child name="config_fs_report" label="managed -> event_filter"/> </service>
|
||||||
<service name="Report" label="installation_config">
|
<service name="Report" label="installation_config">
|
||||||
|
|||||||
@@ -91,6 +91,14 @@ struct Sculpt::Main : Input_event_handler,
|
|||||||
handle_input_event(ev); });
|
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 {
|
Signal_handler<Main> _gui_mode_handler {
|
||||||
_env.ep(), *this, &Main::_handle_gui_mode };
|
_env.ep(), *this, &Main::_handle_gui_mode };
|
||||||
|
|
||||||
|
|||||||
@@ -340,7 +340,7 @@ class Sculpt::Runtime_config
|
|||||||
_vimrc { _r, Type::ROM, "default vim configuration", "config -> vimrc" },
|
_vimrc { _r, Type::ROM, "default vim configuration", "config -> vimrc" },
|
||||||
_fonts { _r, Type::ROM, "system font configuration", "config -> managed/fonts" },
|
_fonts { _r, Type::ROM, "system font configuration", "config -> managed/fonts" },
|
||||||
_pf_info { _r, Type::ROM, "platform information", "platform_info" },
|
_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" },
|
_report { _r, Type::REPORT, "system reports" },
|
||||||
_shape { _r, Type::REPORT, "pointer shape", "shape", Service::Match_label::LAST },
|
_shape { _r, Type::REPORT, "pointer shape", "shape", Service::Match_label::LAST },
|
||||||
_copy { _r, Type::REPORT, "global clipboard", "clipboard", Service::Match_label::LAST },
|
_copy { _r, Type::REPORT, "global clipboard", "clipboard", Service::Match_label::LAST },
|
||||||
|
|||||||
Reference in New Issue
Block a user