mirror of
https://github.com/genodelabs/genode.git
synced 2024-12-22 15:02:25 +00:00
sculpt: minor graph improvements
- Omit showing routes to uninteresting ROMs obtained from the parent, i.e., the binaries requested by the sculpt-managed subsystems. - Change the routes for the inspect subsystem such that the inspect-noux instance is anchored at the config node (critical!) and the nit_fb instance anchored at the used GUI.
This commit is contained in:
parent
6ee7049736
commit
ac37991b34
@ -181,14 +181,7 @@ struct Sculpt::Graph
|
||||
if (show_details) {
|
||||
component.for_each_secondary_dep([&] (Start_name const &dep) {
|
||||
|
||||
/*
|
||||
* Connections to depot_rom do not reveal any
|
||||
* interesting information but create a lot of
|
||||
* noise.
|
||||
*/
|
||||
bool const blacklisted = (dep == "depot_rom")
|
||||
|| (dep == "dynamic_depot_rom");
|
||||
if (blacklisted)
|
||||
if (Runtime_state::blacklisted_from_graph(dep))
|
||||
return;
|
||||
|
||||
xml.node("dep", [&] () {
|
||||
|
@ -83,7 +83,20 @@ class Sculpt::Runtime_config
|
||||
}
|
||||
|
||||
if (service == "ROM") {
|
||||
bool const interesting_rom = !dst_label.valid();
|
||||
|
||||
/*
|
||||
* ROM sessions for plain binaries (e.g, as requested by
|
||||
* the sculpt-managed inspect or part_block instances) are
|
||||
* not interesting for the graph. Non-sculpt-managed
|
||||
* subsystems can only be connected to the few ROMs
|
||||
* whitelisted in the 'Parent_services' definition below.
|
||||
*/
|
||||
bool const interesting_rom =
|
||||
dst_label.valid() &&
|
||||
(strcmp("config", dst_label.string(), 5) == 0 ||
|
||||
dst_label == "platform_info" ||
|
||||
dst_label == "capslock");
|
||||
|
||||
if (interesting_rom) {
|
||||
result = "info";
|
||||
return;
|
||||
|
@ -261,6 +261,15 @@ class Sculpt::Runtime_state : public Runtime_info
|
||||
return result;
|
||||
}
|
||||
|
||||
static bool blacklisted_from_graph(Start_name const &name)
|
||||
{
|
||||
/*
|
||||
* Connections to depot_rom do not reveal any interesting
|
||||
* information but create a lot of noise.
|
||||
*/
|
||||
return name == "depot_rom" || name == "dynamic_depot_rom";
|
||||
}
|
||||
|
||||
void toggle_selection(Start_name const &name, Runtime_config const &config)
|
||||
{
|
||||
_children.for_each([&] (Child &child) {
|
||||
@ -293,9 +302,10 @@ class Sculpt::Runtime_state : public Runtime_info
|
||||
|
||||
/* tag all dependencies as part of the TCB */
|
||||
config.for_each_dependency(name_of_updated, [&] (Start_name const &dep) {
|
||||
_children.for_each([&] (Child &child) {
|
||||
if (child.name == dep)
|
||||
child.info.tcb = true; }); });
|
||||
if (!blacklisted_from_graph(dep))
|
||||
_children.for_each([&] (Child &child) {
|
||||
if (child.name == dep)
|
||||
child.info.tcb = true; }); });
|
||||
}
|
||||
}
|
||||
|
||||
|
@ -46,15 +46,16 @@ void Sculpt::gen_nit_fb_start(Xml_generator &xml, Rom_name const &name)
|
||||
xml.node("config", [&] () { });
|
||||
|
||||
xml.node("route", [&] () {
|
||||
|
||||
gen_service_node<Nitpicker::Session>(xml, [&] () {
|
||||
xml.node("parent", [&] () {
|
||||
xml.attribute("label", String<64>("leitzentrale -> ", name)); }); });
|
||||
|
||||
gen_parent_rom_route(xml, "nit_fb");
|
||||
gen_parent_rom_route(xml, "ld.lib.so");
|
||||
gen_parent_route<Cpu_session> (xml);
|
||||
gen_parent_route<Pd_session> (xml);
|
||||
gen_parent_route<Log_session> (xml);
|
||||
|
||||
gen_service_node<Nitpicker::Session>(xml, [&] () {
|
||||
xml.node("parent", [&] () {
|
||||
xml.attribute("label", String<64>("leitzentrale -> ", name)); }); });
|
||||
});
|
||||
}
|
||||
|
||||
@ -159,6 +160,11 @@ void Sculpt::gen_noux_start(Xml_generator &xml, Rom_name const &name,
|
||||
|
||||
xml.node("route", [&] () {
|
||||
|
||||
gen_service_node<::File_system::Session>(xml, [&] () {
|
||||
xml.attribute("label", "config");
|
||||
xml.node("parent", [&] () { xml.attribute("label", "config"); });
|
||||
});
|
||||
|
||||
gen_service_node<Terminal::Session>(xml, [&] () {
|
||||
gen_named_node(xml, "child", terminal_name); });
|
||||
|
||||
@ -181,11 +187,6 @@ void Sculpt::gen_noux_start(Xml_generator &xml, Rom_name const &name,
|
||||
gen_parent_route<Log_session> (xml);
|
||||
gen_parent_route<Timer::Session> (xml);
|
||||
|
||||
gen_service_node<::File_system::Session>(xml, [&] () {
|
||||
xml.attribute("label", "config");
|
||||
xml.node("parent", [&] () { xml.attribute("label", "config"); });
|
||||
});
|
||||
|
||||
gen_service_node<::File_system::Session>(xml, [&] () {
|
||||
xml.attribute("label", "report");
|
||||
xml.node("parent", [&] () { xml.attribute("label", "report"); });
|
||||
|
Loading…
Reference in New Issue
Block a user