genode/repos/gems/src/app/sculpt_manager/runtime.h
Norman Feske 25ee872703 sculpt: separate launchers from deploy config
The most important route of each launcher is at the top of routes and
will be used to layout the graph topology of the runtime view.

By caching the state reports generated by the runtime init, the sculpt
manager becomes able to quickly check for the presence of components. So
we can apply routing-dependency checks not only prior starting
components but also while components are running.

Fixes #2938
Fixes #2912
2018-08-28 17:10:55 +02:00

77 lines
2.3 KiB
C++

/*
* \brief Utilities for generating runtime configurations
* \author Norman Feske
* \date 2018-05-18
*/
/*
* Copyright (C) 2018 Genode Labs GmbH
*
* This file is part of the Genode OS framework, which is distributed
* under the terms of the GNU Affero General Public License version 3.
*/
#ifndef _RUNTIME_H_
#define _RUNTIME_H_
#include <xml.h>
#include <model/ram_fs_state.h>
#include <model/storage_devices.h>
#include <model/storage_target.h>
#include <model/nic_target.h>
namespace Sculpt {
struct Runtime_config_generator : Interface
{
virtual void generate_runtime_config() = 0;
};
struct Runtime_info : Interface
{
/**
* Return true if specified child is present in the runtime subsystem
*/
virtual bool present_in_runtime(Start_name const &) const = 0;
};
void gen_chroot_start_content(Xml_generator &, Start_name const &,
Path const &, Writeable);
void gen_depot_query_start_content(Xml_generator &);
void gen_launcher_query_start_content(Xml_generator &);
struct File_browser_version { unsigned value; };
void gen_file_browser(Xml_generator &, Storage_devices const &,
Ram_fs_state const &, File_browser_version);
void gen_fs_start_content(Xml_generator &, Storage_target const &,
File_system::Type);
void gen_fs_rom_start_content(Xml_generator &, Start_name const &,
Start_name const &, Start_name const &,
Ram_quota, Cap_quota);
void gen_gpt_relabel_start_content(Xml_generator &, Storage_device const &);
void gen_gpt_expand_start_content (Xml_generator &, Storage_device const &);
void gen_nic_drv_start_content(Xml_generator &);
void gen_wifi_drv_start_content(Xml_generator &);
void gen_nic_router_start_content(Xml_generator &);
void gen_nic_router_uplink(Xml_generator &, char const *);
struct Prepare_version { unsigned value; };
void gen_prepare_start_content(Xml_generator &, Prepare_version);
void gen_ram_fs_start_content(Xml_generator &, Ram_fs_state const &);
void gen_update_start_content(Xml_generator &);
void gen_fsck_ext2_start_content(Xml_generator &, Storage_target const &);
void gen_mkfs_ext2_start_content(Xml_generator &, Storage_target const &);
void gen_resize2fs_start_content(Xml_generator &, Storage_target const &);
}
#endif /* _RUNTIME_H_ */