mirror of
https://github.com/genodelabs/genode.git
synced 2025-05-09 12:02:57 +00:00
file-system session: root dir via session label
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 commit is contained in:
parent
ba97a676ad
commit
2c8beb462f
@ -49,8 +49,8 @@ install_config {
|
||||
<config>
|
||||
<policy label_prefix="fs_rom_config" root="/lx_fs_notify" writeable="no"/>
|
||||
<policy label_prefix="fs_rom_test" root="/lx_fs_notify/test" writeable="no"/>
|
||||
<policy label_suffix="templates" root="/lx_fs_notify/templates" writeable="yes"/>
|
||||
<policy label_suffix="test" root="/lx_fs_notify/test" writeable="yes"/>
|
||||
<policy label_suffix="templates -> /" root="/lx_fs_notify/templates" writeable="yes"/>
|
||||
<policy label_suffix="test -> /" root="/lx_fs_notify/test" writeable="yes"/>
|
||||
</config>
|
||||
</start>
|
||||
|
||||
@ -117,8 +117,8 @@ set init_run_fwrite_test {
|
||||
<log/>
|
||||
<null/>
|
||||
</dir>
|
||||
<dir name="templates"> <fs label="templates"/> </dir>
|
||||
<dir name="test"> <fs label="test"/> </dir>
|
||||
<dir name="templates"> <fs label="templates -> /"/> </dir>
|
||||
<dir name="test"> <fs label="test -> /"/> </dir>
|
||||
</vfs>
|
||||
<arg value="test-file_writer"/>
|
||||
<arg value="--fwrite"/>
|
||||
@ -153,8 +153,8 @@ set init_run_write_test {
|
||||
<log/>
|
||||
<null/>
|
||||
</dir>
|
||||
<dir name="templates"> <fs label="templates"/> </dir>
|
||||
<dir name="test"> <fs label="test"/> </dir>
|
||||
<dir name="templates"> <fs label="templates -> /"/> </dir>
|
||||
<dir name="test"> <fs label="test -> /"/> </dir>
|
||||
</vfs>
|
||||
<arg value="test-file_writer"/>
|
||||
<arg value="--write"/>
|
||||
|
@ -60,7 +60,7 @@
|
||||
</config>
|
||||
<route>
|
||||
<service name="File_system">
|
||||
<parent label="used"/>
|
||||
<parent identity="used"/>
|
||||
</service>
|
||||
<any-service> <parent/> </any-service>
|
||||
</route>
|
||||
@ -74,7 +74,7 @@
|
||||
</config>
|
||||
<route>
|
||||
<service name="File_system">
|
||||
<parent label="used"/>
|
||||
<parent identity="used"/>
|
||||
</service>
|
||||
<any-service> <parent/> </any-service>
|
||||
</route>
|
||||
@ -101,10 +101,10 @@
|
||||
<service name="ROM" label_suffix="installation">
|
||||
<child name="report_rom" label="depot_download -> installation"/>
|
||||
</service>
|
||||
<service name="File_system" label="depot">
|
||||
<service name="File_system" label_prefix="depot ->">
|
||||
<child name="depot_rw"/>
|
||||
</service>
|
||||
<service name="File_system" label="public">
|
||||
<service name="File_system" label_prefix="public ->">
|
||||
<child name="public_rw"/>
|
||||
</service>
|
||||
<service name="Report">
|
||||
@ -118,13 +118,13 @@
|
||||
<config>
|
||||
<vfs>
|
||||
<dir name="config">
|
||||
<fs label="config"/>
|
||||
<fs label="config -> /"/>
|
||||
</dir>
|
||||
</vfs>
|
||||
</config>
|
||||
<route>
|
||||
<service name="File_system" label="config">
|
||||
<parent label="system_config"/>
|
||||
<service name="File_system" label_prefix="config ->">
|
||||
<parent identity="system_config"/>
|
||||
</service>
|
||||
<service name="Report">
|
||||
<child name="report_rom"/>
|
||||
|
@ -86,17 +86,17 @@
|
||||
<service name="File_system"/>
|
||||
</provides>
|
||||
<config>
|
||||
<vfs> <dir name="tresor"> <fs label="tresor"/> </dir> </vfs>
|
||||
<vfs> <dir name="tresor"> <fs label="tresor -> /"/> </dir> </vfs>
|
||||
</config>
|
||||
<route>
|
||||
<service name="ROM" label="ui_config"> <child name="report_rom"/> </service>
|
||||
<service name="Report" label="ui_report"> <child name="report_rom"/> </service>
|
||||
<service name="File_system" label="tresor_trust_anchor_vfs -> storage_dir"> <parent label="trust_anchor"/> </service>
|
||||
<service name="File_system" label="tresor_init -> "> <parent label="data"/> </service>
|
||||
<service name="File_system" label="tresor"> <parent label="data"/> </service>
|
||||
<service name="File_system" label="image_fs_query -> "> <parent label="data"/> </service>
|
||||
<service name="File_system" label="tresor_vfs -> tresor_fs"> <parent label="data"/> </service>
|
||||
<service name="File_system" label="truncate_file -> tresor"> <parent label="data"/> </service>
|
||||
<service name="File_system" label_prefix="tresor_trust_anchor_vfs -> storage_dir"> <parent identity="trust_anchor"/> </service>
|
||||
<service name="File_system" label_prefix="tresor_init -> "> <parent identity="data"/> </service>
|
||||
<service name="File_system" label_prefix="tresor ->"> <parent identity="data"/> </service>
|
||||
<service name="File_system" label_prefix="image_fs_query -> "> <parent identity="data"/> </service>
|
||||
<service name="File_system" label_prefix="tresor_vfs -> tresor_fs"> <parent identity="data"/> </service>
|
||||
<service name="File_system" label_prefix="truncate_file -> tresor"> <parent identity="data"/> </service>
|
||||
<service name="Timer"> <parent/> </service>
|
||||
<service name="PD"> <parent/> </service>
|
||||
<service name="ROM"> <parent/> </service>
|
||||
@ -111,7 +111,7 @@
|
||||
<route>
|
||||
<service name="ROM" label="ui_report"> <child name="report_rom"/> </service>
|
||||
<service name="Report" label="ui_config"> <child name="report_rom"/> </service>
|
||||
<service name="File_system" label_last="fonts"> <parent label="fonts"/> </service>
|
||||
<service name="File_system" label_last="fonts -> /"> <parent identity="fonts"/> </service>
|
||||
<service name="Gui"> <parent/> </service>
|
||||
<service name="Timer"> <parent/> </service>
|
||||
<service name="PD"> <parent/> </service>
|
||||
|
@ -85,7 +85,7 @@
|
||||
<ram/>
|
||||
</dir>
|
||||
</vfs>
|
||||
<policy label="file_vault -> data" root="/data" writeable="yes"/>
|
||||
<policy label_prefix="file_vault -> data" root="/data" writeable="yes"/>
|
||||
</config>
|
||||
<route>
|
||||
<service name="PD"> <parent/> </service>
|
||||
@ -104,7 +104,7 @@
|
||||
<ram/>
|
||||
</dir>
|
||||
</vfs>
|
||||
<policy label="file_vault -> trust_anchor" root="/trust_anchor" writeable="yes"/>
|
||||
<policy label_prefix="file_vault -> trust_anchor" root="/trust_anchor" writeable="yes"/>
|
||||
</config>
|
||||
<route>
|
||||
<service name="PD"> <parent/> </service>
|
||||
@ -118,20 +118,21 @@
|
||||
<config>
|
||||
<vfs>
|
||||
<dir name="tresor">
|
||||
<fs label="tresor"/>
|
||||
<fs label="tresor -> /"/>
|
||||
</dir>
|
||||
</vfs>
|
||||
</config>
|
||||
<route>
|
||||
<service name="ROM" label="ui_config"> <child name="dynamic_rom" label="file_vault_ui_config"/> </service>
|
||||
<service name="Report"> label="ui_report" <child name="report_rom"/> </service>
|
||||
<service name="File_system" label="tresor_trust_anchor_vfs -> storage_dir"> <child name="trust_anchor_fs" label="file_vault -> trust_anchor"/> </service>
|
||||
<service name="File_system" label="tresor_init -> "> <child name="data_fs" label="file_vault -> data"/> </service>
|
||||
<service name="File_system" label="tresor"> <child name="data_fs" label="file_vault -> data"/> </service>
|
||||
<service name="File_system" label="fs_query -> "> <child name="data_fs" label="file_vault -> data"/> </service>
|
||||
<service name="File_system" label="image_fs_query -> "> <child name="data_fs" label="file_vault -> data"/> </service>
|
||||
<service name="File_system" label="tresor_vfs -> tresor_fs"> <child name="data_fs" label="file_vault -> data"/> </service>
|
||||
<service name="File_system" label="truncate_file -> tresor"> <child name="data_fs" label="file_vault -> data"/> </service>
|
||||
<service name="Report"> <child name="report_rom"/> </service>
|
||||
<service name="File_system" label_prefix="tresor_trust_anchor_vfs -> storage_dir">
|
||||
<child name="trust_anchor_fs" identity="file_vault -> trust_anchor"/> </service>
|
||||
<service name="File_system" label_prefix="tresor_init ->"> <child name="data_fs" identity="file_vault -> data"/> </service>
|
||||
<service name="File_system" label_prefix="tresor ->"> <child name="data_fs" identity="file_vault -> data"/> </service>
|
||||
<service name="File_system" label_prefix="fs_query ->"> <child name="data_fs" identity="file_vault -> data"/> </service>
|
||||
<service name="File_system" label_prefix="image_fs_query ->"> <child name="data_fs" identity="file_vault -> data"/> </service>
|
||||
<service name="File_system" label_prefix="tresor_vfs -> tresor_fs"> <child name="data_fs" identity="file_vault -> data"/> </service>
|
||||
<service name="File_system" label_prefix="truncate_file -> tresor"> <child name="data_fs" identity="file_vault -> data"/> </service>
|
||||
<service name="Timer"> <parent/> </service>
|
||||
<service name="PD"> <parent/> </service>
|
||||
<service name="ROM"> <parent/> </service>
|
||||
|
@ -85,7 +85,7 @@
|
||||
<ram/>
|
||||
</dir>
|
||||
</vfs>
|
||||
<policy label="file_vault -> data" root="/data" writeable="yes"/>
|
||||
<policy label_prefix="file_vault -> data" root="/data" writeable="yes"/>
|
||||
</config>
|
||||
<route>
|
||||
<service name="PD"> <parent/> </service>
|
||||
@ -104,7 +104,7 @@
|
||||
<ram/>
|
||||
</dir>
|
||||
</vfs>
|
||||
<policy label="file_vault -> trust_anchor" root="/trust_anchor" writeable="yes"/>
|
||||
<policy label_prefix="file_vault -> trust_anchor" root="/trust_anchor" writeable="yes"/>
|
||||
</config>
|
||||
<route>
|
||||
<service name="PD"> <parent/> </service>
|
||||
@ -118,20 +118,21 @@
|
||||
<config jitterentropy_available="no">
|
||||
<vfs>
|
||||
<dir name="tresor">
|
||||
<fs label="tresor"/>
|
||||
<fs label="tresor -> /"/>
|
||||
</dir>
|
||||
</vfs>
|
||||
</config>
|
||||
<route>
|
||||
<service name="ROM" label="ui_config"> <child name="dynamic_rom" label="file_vault_ui_config"/> </service>
|
||||
<service name="Report"> label="ui_report" <child name="report_rom"/> </service>
|
||||
<service name="File_system" label="tresor_trust_anchor_vfs -> storage_dir"> <child name="trust_anchor_fs" label="file_vault -> trust_anchor"/> </service>
|
||||
<service name="File_system" label="tresor_init -> "> <child name="data_fs" label="file_vault -> data"/> </service>
|
||||
<service name="File_system" label="tresor"> <child name="data_fs" label="file_vault -> data"/> </service>
|
||||
<service name="File_system" label="fs_query -> "> <child name="data_fs" label="file_vault -> data"/> </service>
|
||||
<service name="File_system" label="image_fs_query -> "> <child name="data_fs" label="file_vault -> data"/> </service>
|
||||
<service name="File_system" label="tresor_vfs -> tresor_fs"> <child name="data_fs" label="file_vault -> data"/> </service>
|
||||
<service name="File_system" label="truncate_file -> tresor"> <child name="data_fs" label="file_vault -> data"/> </service>
|
||||
<service name="Report"> <child name="report_rom"/> </service>
|
||||
<service name="File_system" label_prefix="tresor_trust_anchor_vfs -> storage_dir">
|
||||
<child name="trust_anchor_fs" identity="file_vault -> trust_anchor"/> </service>
|
||||
<service name="File_system" label_prefix="tresor_init ->"> <child name="data_fs" identity="file_vault -> data"/> </service>
|
||||
<service name="File_system" label_prefix="tresor ->"> <child name="data_fs" identity="file_vault -> data"/> </service>
|
||||
<service name="File_system" label_prefix="fs_query ->"> <child name="data_fs" identity="file_vault -> data"/> </service>
|
||||
<service name="File_system" label_prefix="image_fs_query ->"> <child name="data_fs" identity="file_vault -> data"/> </service>
|
||||
<service name="File_system" label_prefix="tresor_vfs -> tresor_fs"> <child name="data_fs" identity="file_vault -> data"/> </service>
|
||||
<service name="File_system" label_prefix="truncate_file -> tresor"> <child name="data_fs" identity="file_vault -> data"/> </service>
|
||||
<service name="Timer"> <parent/> </service>
|
||||
<service name="PD"> <parent/> </service>
|
||||
<service name="ROM"> <parent/> </service>
|
||||
|
@ -27,8 +27,8 @@
|
||||
<route>
|
||||
<service name="ROM" label="layout">
|
||||
<parent label="touch_keyboard_layout.config"/> </service>
|
||||
<service name="File_system" label="fonts">
|
||||
<parent label="fonts"/> </service>
|
||||
<service name="File_system" label_prefix="fonts ->">
|
||||
<parent identity="fonts"/> </service>
|
||||
<any-service> <parent/> </any-service>
|
||||
</route>
|
||||
</start>
|
||||
|
@ -19,7 +19,7 @@
|
||||
|
||||
<!-- example, must be refined and enabled -->
|
||||
<config period_ms="5000" enable="no">
|
||||
<vfs> <fs label="target"/> </vfs>
|
||||
<vfs> <fs label="target -> /"/> </vfs>
|
||||
|
||||
<default-policy policy="ctf0">
|
||||
<ctf/>
|
||||
|
@ -33,7 +33,7 @@
|
||||
<provides> <service name="Report"/> </provides>
|
||||
<config> <vfs> <fs/> </vfs> </config>
|
||||
<route>
|
||||
<service name="File_system"> <parent label="recall"/> </service>
|
||||
<service name="File_system"> <parent identity="recall"/> </service>
|
||||
<any-service> <parent/> </any-service>
|
||||
</route>
|
||||
</start>
|
||||
@ -42,7 +42,7 @@
|
||||
<provides> <service name="ROM"/> </provides>
|
||||
<config/>
|
||||
<route>
|
||||
<service name="File_system"> <parent label="recall"/> </service>
|
||||
<service name="File_system"> <parent identity="recall"/> </service>
|
||||
<any-service> <parent/> </any-service>
|
||||
</route>
|
||||
</start>
|
||||
|
@ -61,7 +61,7 @@
|
||||
<provides> <service name="File_system"/> </provides>
|
||||
<config> <default-policy path="/" writeable="no"/> </config>
|
||||
<route>
|
||||
<service name="File_system"> <parent label="depot"/> </service>
|
||||
<service name="File_system"> <parent identity="depot"/> </service>
|
||||
<any-service> <parent/> </any-service>
|
||||
</route>
|
||||
</start>
|
||||
@ -71,7 +71,7 @@
|
||||
<provides> <service name="File_system"/> </provides>
|
||||
<config> <default-policy path="/" writeable="no"/> </config>
|
||||
<route>
|
||||
<service name="File_system"> <parent label="public"/> </service>
|
||||
<service name="File_system"> <parent identity="public"/> </service>
|
||||
<any-service> <parent/> </any-service>
|
||||
</route>
|
||||
</start>
|
||||
@ -99,11 +99,11 @@
|
||||
<route>
|
||||
<service name="ROM" label="config"> <child name="report_rom"/> </service>
|
||||
<service name="Report"> <child name="report_rom"/> </service>
|
||||
<service name="File_system" label="depot"> <child name="depot_ro"/> </service>
|
||||
<service name="File_system" label="depot_rw"> <parent label="depot"/> </service>
|
||||
<service name="File_system" label="public"> <child name="public_ro"/> </service>
|
||||
<service name="File_system" label="public_rw"> <parent label="public"/> </service>
|
||||
<service name="File_system" label="tcpip"> <child name="tcpip"/> </service>
|
||||
<service name="File_system" label_prefix="depot ->"> <child name="depot_ro"/> </service>
|
||||
<service name="File_system" label_prefix="depot_rw ->"> <parent identity="depot"/> </service>
|
||||
<service name="File_system" label_prefix="public ->"> <child name="public_ro"/> </service>
|
||||
<service name="File_system" label_prefix="public_rw ->"> <parent identity="public"/> </service>
|
||||
<service name="File_system" label_prefix="tcpip ->"> <child name="tcpip"/> </service>
|
||||
<any-service> <parent/> <any-child/> </any-service>
|
||||
</route>
|
||||
</start>
|
||||
|
@ -27,7 +27,7 @@
|
||||
<null/>
|
||||
</dir>
|
||||
<dir name="vm">
|
||||
<fs label="target"/>
|
||||
<fs label="target -> /"/>
|
||||
</dir>
|
||||
<inline name=".profile">
|
||||
cp /machine.vbox /disk0.vmdk /vm
|
||||
@ -38,8 +38,8 @@ cp /machine.vbox /disk0.vmdk /vm
|
||||
<default-policy root="/" writeable="yes"/>
|
||||
</config>
|
||||
<route>
|
||||
<service name="File_system" label="target">
|
||||
<parent label="target"/> </service>
|
||||
<service name="File_system" label_prefix="target ->">
|
||||
<parent identity="target"/> </service>
|
||||
<any-service> <parent/> </any-service>
|
||||
</route>
|
||||
</start>
|
||||
@ -82,7 +82,7 @@ cp /machine.vbox /disk0.vmdk /vm
|
||||
<vfs> <dir name="fonts"> <fs/> </dir> </vfs>
|
||||
</config>
|
||||
<route>
|
||||
<service name="File_system"> <parent label="fonts"/> </service>
|
||||
<service name="File_system"> <parent identity="fonts"/> </service>
|
||||
<any-service> <parent/> </any-service>
|
||||
</route>
|
||||
</start>
|
||||
@ -126,7 +126,7 @@ cp /machine.vbox /disk0.vmdk /vm
|
||||
</config>
|
||||
<route>
|
||||
<service name="File_system" label="target">
|
||||
<parent label="target"/> </service>
|
||||
<parent label="target -> /"/> </service>
|
||||
<service name="LOG"> <parent/> </service>
|
||||
<service name="Report"> <child name="report"/> </service>
|
||||
<any-service> <parent/> </any-service>
|
||||
|
@ -335,10 +335,10 @@ proc prepare_to_run_genode { } {
|
||||
<dir name="depot"> <tar name="depot.tar"/> </dir>
|
||||
<dir name="gcov_data"> <ram/> </dir>
|
||||
</vfs>
|
||||
<policy label="depot_query -> depot" root="/depot" />
|
||||
<policy label="fs_rom -> " root="/depot" />
|
||||
<policy label="dynamic -> gcov -> gcov -> depot" root="/depot" />
|
||||
<policy label_suffix=" -> gcov_data" root="/gcov_data" writeable="yes" />
|
||||
<policy label_prefix="depot_query -> depot" root="/depot" />
|
||||
<policy label_prefix="fs_rom ->" root="/depot" />
|
||||
<policy label_prefix="dynamic -> gcov -> gcov -> depot" root="/depot" />
|
||||
<policy label_suffix=" -> gcov_data -> /" root="/gcov_data" writeable="yes" />
|
||||
</config>
|
||||
</start>
|
||||
|
||||
@ -348,7 +348,7 @@ proc prepare_to_run_genode { } {
|
||||
|
||||
<start name="depot_query" priority="-1" ram="2M">
|
||||
<config query="rom">
|
||||
<vfs> <dir name="depot"> <fs label="depot"/> </dir> </vfs>
|
||||
<vfs> <dir name="depot"> <fs label="depot -> /"/> </dir> </vfs>
|
||||
</config>
|
||||
<route>
|
||||
<service name="ROM" label="query"> <child name="report_rom"/> </service>
|
||||
@ -383,8 +383,8 @@ proc prepare_to_run_genode { } {
|
||||
<service name="Timer"> <parent/> </service>
|
||||
<service name="RM"> <parent/> </service>
|
||||
<service name="TRACE"> <parent/> </service>
|
||||
<service name="File_system" label="gcov -> depot"> <parent/> </service>
|
||||
<service name="File_system" label_suffix="gcov_data"> <parent/> </service>
|
||||
<service name="File_system" label="gcov -> depot -> /"> <parent/> </service>
|
||||
<service name="File_system" label_suffix="gcov_data -> /"> <parent/> </service>
|
||||
</common_routes>
|
||||
|
||||
<previous-results time_sec="} [expr ($previous_time_ms + 999) / 1000] {"
|
||||
|
@ -95,8 +95,8 @@ install_config {
|
||||
<provides> <service name="File_system"/> </provides>
|
||||
<config>
|
||||
<vfs> <tar name="depot.tar"/> </vfs>
|
||||
<policy label="depot_query -> depot" root="/" />
|
||||
<policy label="fs_rom -> " root="/" />
|
||||
<policy label_prefix="depot_query -> depot ->" root="/" />
|
||||
<policy label_prefix="fs_rom ->" root="/" />
|
||||
</config>
|
||||
</start>
|
||||
|
||||
@ -110,7 +110,7 @@ install_config {
|
||||
|
||||
<start name="depot_query" ram="2M">
|
||||
<config query="rom">
|
||||
<vfs> <dir name="depot"> <fs label="depot"/> </dir> </vfs>
|
||||
<vfs> <dir name="depot"> <fs label="depot -> /"/> </dir> </vfs>
|
||||
</config>
|
||||
<route>
|
||||
<service name="ROM" label="query"> <child name="report_rom"/> </service>
|
||||
@ -173,7 +173,7 @@ install_config {
|
||||
<service name="ROM" label="rules"> <child name="wm"/> </service>
|
||||
<service name="Report"> <child name="wm"/> </service>
|
||||
<service name="Gui"> <child name="wm"/> </service>
|
||||
<service name="File_system" label="recall"> <child name="recall_fs"/> </service>
|
||||
<service name="File_system" label_prefix="recall ->"> <child name="recall_fs"/> </service>
|
||||
</route>
|
||||
</start>
|
||||
|
||||
@ -216,7 +216,7 @@ install_config {
|
||||
<start name="system_shell" pkg="} [depot_user]/pkg/[current_pkg system_shell] {">
|
||||
<route>
|
||||
<service name="Gui"> <child name="wm"/> </service>
|
||||
<service name="File_system" label="fonts"> <child name="fonts_fs"/> </service>
|
||||
<service name="File_system" label_prefix="fonts ->"> <child name="fonts_fs"/> </service>
|
||||
<service name="File_system"> <parent/> </service>
|
||||
<service name="Report" label="clipboard"> <parent label="clipboard"/> </service>
|
||||
<service name="ROM" label="clipboard"> <parent label="clipboard"/> </service>
|
||||
|
@ -116,8 +116,8 @@ append config {
|
||||
</dir>
|
||||
<dir name="public"> <ram/> </dir>
|
||||
</vfs>
|
||||
<policy label="depot_download -> depot" root="/depot" writeable="yes"/>
|
||||
<policy label="depot_download -> public" root="/public" writeable="yes"/>
|
||||
<policy label_prefix="depot_download -> depot ->" root="/depot" writeable="yes"/>
|
||||
<policy label_prefix="depot_download -> public ->" root="/public" writeable="yes"/>
|
||||
</config>
|
||||
</start>
|
||||
|
||||
|
@ -68,8 +68,8 @@ install_config {
|
||||
</dir>
|
||||
</dir>
|
||||
</vfs>
|
||||
<policy label="depot_query -> depot" root="/" />
|
||||
<policy label="fs_rom -> " root="/" />
|
||||
<policy label_prefix="depot_query -> depot ->" root="/" />
|
||||
<policy label_prefix="fs_rom ->" root="/" />
|
||||
</config>
|
||||
</start>
|
||||
|
||||
@ -79,7 +79,7 @@ install_config {
|
||||
|
||||
<start name="depot_query" ram="2M">
|
||||
<config query="rom">
|
||||
<vfs> <dir name="depot"> <fs label="depot"/> </dir> </vfs>
|
||||
<vfs> <dir name="depot"> <fs label="depot -> /"/> </dir> </vfs>
|
||||
</config>
|
||||
<route>
|
||||
<service name="ROM" label="query"> <child name="report_rom"/> </service>
|
||||
|
@ -56,7 +56,7 @@ install_config {
|
||||
<start name="lx_fs" ld="no" ram="100M">
|
||||
<provides> <service name="File_system"/> </provides>
|
||||
<config>
|
||||
<policy label="depot_remove -> " root="/depot" writeable="yes"/>
|
||||
<policy label_prefix="depot_remove ->" root="/depot" writeable="yes"/>
|
||||
</config>
|
||||
</start>
|
||||
|
||||
|
@ -191,20 +191,21 @@ append config {
|
||||
<config jitterentropy_available="} [jent_avail_attr] {">
|
||||
<vfs>
|
||||
<dir name="tresor">
|
||||
<fs label="tresor"/>
|
||||
<fs label="tresor -> /"/>
|
||||
</dir>
|
||||
</vfs>
|
||||
</config>
|
||||
<route>
|
||||
<service name="ROM" label="ui_config"> <child name="dynamic_rom" label="file_vault_ui_config"/> </service>
|
||||
<service name="Report" label="ui_report"> <child name="report_rom"/> </service>
|
||||
<service name="File_system" label="tresor_trust_anchor_vfs -> storage_dir"> <child name="trust_anchor_fs" label="file_vault -> trust_anchor"/> </service>
|
||||
<service name="File_system" label="tresor_init -> "> <child name="data_fs" label="file_vault -> data"/> </service>
|
||||
<service name="File_system" label="tresor"> <child name="data_fs" label="file_vault -> data"/> </service>
|
||||
<service name="File_system" label="fs_query -> "> <child name="data_fs" label="file_vault -> data"/> </service>
|
||||
<service name="File_system" label="image_fs_query -> "> <child name="data_fs" label="file_vault -> data"/> </service>
|
||||
<service name="File_system" label="tresor_vfs -> tresor_fs"> <child name="data_fs" label="file_vault -> data"/> </service>
|
||||
<service name="File_system" label="truncate_file -> tresor"> <child name="data_fs" label="file_vault -> data"/> </service>
|
||||
<service name="File_system" label_prefix="tresor_trust_anchor_vfs -> storage_dir">
|
||||
<child name="trust_anchor_fs" identity="file_vault -> trust_anchor"/> </service>
|
||||
<service name="File_system" label_prefix="tresor_init ->"> <child name="data_fs" identity="file_vault -> data"/> </service>
|
||||
<service name="File_system" label_prefix="tresor ->"> <child name="data_fs" identity="file_vault -> data"/> </service>
|
||||
<service name="File_system" label_prefix="fs_query ->"> <child name="data_fs" identity="file_vault -> data"/> </service>
|
||||
<service name="File_system" label_prefix="image_fs_query ->"> <child name="data_fs" identity="file_vault -> data"/> </service>
|
||||
<service name="File_system" label_prefix="tresor_vfs -> tresor_fs"> <child name="data_fs" identity="file_vault -> data"/> </service>
|
||||
<service name="File_system" label_prefix="truncate_file -> tresor"> <child name="data_fs" identity="file_vault -> data"/> </service>
|
||||
<service name="Timer"> <child name="timer"/> </service>
|
||||
<service name="PD"> <parent/> </service>
|
||||
<service name="ROM"> <parent/> </service>
|
||||
|
@ -216,8 +216,8 @@ append config {
|
||||
<env key="PATH" value="/bin"/>
|
||||
</config>
|
||||
<route>
|
||||
<service name="File_system" label="shell"> <child name="vfs"/> </service>
|
||||
<service name="File_system" label="file_vault"> <parent/> </service>
|
||||
<service name="File_system" label="shell"> <child name="vfs" label="/"/> </service>
|
||||
<service name="File_system" label="file_vault"> <parent label="bash -> file_vault -> /"/> </service>
|
||||
<service name="ROM" label_suffix=".lib.so"> <parent/> </service>
|
||||
<service name="ROM" label_last="/bin/bash"> <child name="fs_rom"/> </service>
|
||||
<service name="ROM" label_prefix="/bin"> <child name="fs_rom"/> </service>
|
||||
@ -269,7 +269,7 @@ if {[have_board linux]} {
|
||||
<service name="File_system"/>
|
||||
</provides>
|
||||
<config>
|
||||
<policy label="file_vault -> data"
|
||||
<policy label_prefix="file_vault -> data"
|
||||
root="/} [file tail [lx_fs_dir]] {/data"
|
||||
writeable="yes"/>
|
||||
</config>
|
||||
@ -288,7 +288,7 @@ if {[have_board linux]} {
|
||||
<service name="File_system"/>
|
||||
</provides>
|
||||
<config>
|
||||
<policy label="file_vault -> trust_anchor"
|
||||
<policy label_prefix="file_vault -> trust_anchor"
|
||||
root="/} [file tail [lx_fs_dir]] {/trust_anchor"
|
||||
writeable="yes"/>
|
||||
</config>
|
||||
@ -315,7 +315,7 @@ if {[have_board linux]} {
|
||||
<ram/>
|
||||
</dir>
|
||||
</vfs>
|
||||
<policy label="file_vault -> data" root="/data" writeable="yes"/>
|
||||
<policy label_prefix="file_vault -> data" root="/data" writeable="yes"/>
|
||||
</config>
|
||||
<route>
|
||||
<service name="PD"> <parent/> </service>
|
||||
@ -334,7 +334,7 @@ if {[have_board linux]} {
|
||||
<ram/>
|
||||
</dir>
|
||||
</vfs>
|
||||
<policy label="file_vault -> trust_anchor" root="/trust_anchor" writeable="yes"/>
|
||||
<policy label_prefix="file_vault -> trust_anchor" root="/trust_anchor" writeable="yes"/>
|
||||
</config>
|
||||
<route>
|
||||
<service name="PD"> <parent/> </service>
|
||||
@ -354,20 +354,21 @@ append config {
|
||||
<config jitterentropy_available="} [jent_avail_attr] {">
|
||||
<vfs>
|
||||
<dir name="tresor">
|
||||
<fs label="tresor"/>
|
||||
<fs label="tresor -> /"/>
|
||||
</dir>
|
||||
</vfs>
|
||||
</config>
|
||||
<route>
|
||||
<service name="ROM" label="ui_config"> <child name="dynamic_rom" label="file_vault_ui_config"/> </service>
|
||||
<service name="Report" label="ui_report"> <child name="report_rom"/> </service>
|
||||
<service name="File_system" label="tresor_trust_anchor_vfs -> storage_dir"> <child name="trust_anchor_fs" label="file_vault -> trust_anchor"/> </service>
|
||||
<service name="File_system" label="tresor_init -> "> <child name="data_fs" label="file_vault -> data"/> </service>
|
||||
<service name="File_system" label="tresor"> <child name="data_fs" label="file_vault -> data"/> </service>
|
||||
<service name="File_system" label="fs_query -> "> <child name="data_fs" label="file_vault -> data"/> </service>
|
||||
<service name="File_system" label="image_fs_query -> "> <child name="data_fs" label="file_vault -> data"/> </service>
|
||||
<service name="File_system" label="tresor_vfs -> tresor_fs"> <child name="data_fs" label="file_vault -> data"/> </service>
|
||||
<service name="File_system" label="truncate_file -> tresor"> <child name="data_fs" label="file_vault -> data"/> </service>
|
||||
<service name="File_system" label_prefix="tresor_trust_anchor_vfs -> storage_dir">
|
||||
<child name="trust_anchor_fs" identity="file_vault -> trust_anchor"/> </service>
|
||||
<service name="File_system" label_prefix="tresor_init ->"> <child name="data_fs" identity="file_vault -> data"/> </service>
|
||||
<service name="File_system" label_prefix="tresor ->"> <child name="data_fs" identity="file_vault -> data"/> </service>
|
||||
<service name="File_system" label_prefix="fs_query ->"> <child name="data_fs" identity="file_vault -> data"/> </service>
|
||||
<service name="File_system" label_prefix="image_fs_query ->"> <child name="data_fs" identity="file_vault -> data"/> </service>
|
||||
<service name="File_system" label_prefix="tresor_vfs -> tresor_fs"> <child name="data_fs" identity="file_vault -> data"/> </service>
|
||||
<service name="File_system" label_prefix="truncate_file -> tresor"> <child name="data_fs" identity="file_vault -> data"/> </service>
|
||||
<service name="Timer"> <child name="timer"/> </service>
|
||||
<service name="PD"> <parent/> </service>
|
||||
<service name="ROM"> <parent/> </service>
|
||||
@ -381,7 +382,7 @@ append config {
|
||||
<binary name="init"/>
|
||||
<route>
|
||||
<service name="ROM" label="config"> <child label="dynamic_init_config" name="dynamic_rom"/> </service>
|
||||
<service name="File_system" label="bash -> file_vault"> <child name="file_vault"/> </service>
|
||||
<service name="File_system" label_prefix="bash -> file_vault ->"> <child name="file_vault"/> </service>
|
||||
<service name="Timer"> <child name="timer"/> </service>
|
||||
<service name="PD"> <parent/> </service>
|
||||
<service name="ROM"> <parent/> </service>
|
||||
|
@ -165,7 +165,7 @@ append_if [have_board linux] config {
|
||||
<service name="File_system"/>
|
||||
</provides>
|
||||
<config>
|
||||
<policy label="file_vault -> data" root="/file_vault_gui_dir/data" writeable="yes"/>
|
||||
<policy label_prefix="file_vault -> data" root="/file_vault_gui_dir/data" writeable="yes"/>
|
||||
</config>
|
||||
<route>
|
||||
<service name="Timer"> <child name="timer"/> </service>
|
||||
@ -182,7 +182,7 @@ append_if [have_board linux] config {
|
||||
<service name="File_system"/>
|
||||
</provides>
|
||||
<config>
|
||||
<policy label="file_vault -> trust_anchor" root="/file_vault_gui_dir/trust_anchor" writeable="yes"/>
|
||||
<policy label_prefix="file_vault -> trust_anchor" root="/file_vault_gui_dir/trust_anchor" writeable="yes"/>
|
||||
</config>
|
||||
<route>
|
||||
<service name="Timer"> <child name="timer"/> </service>
|
||||
@ -200,7 +200,7 @@ append_if [expr ![have_board linux]] config {
|
||||
<provides><service name="File_system"/></provides>
|
||||
<config>
|
||||
<vfs> <dir name="data"> <ram/> </dir> </vfs>
|
||||
<policy label="file_vault -> data" root="/data" writeable="yes"/>
|
||||
<policy label_prefix="file_vault -> data" root="/data" writeable="yes"/>
|
||||
</config>
|
||||
<route>
|
||||
<service name="PD"> <parent/> </service>
|
||||
@ -215,7 +215,7 @@ append_if [expr ![have_board linux]] config {
|
||||
<provides><service name="File_system"/></provides>
|
||||
<config>
|
||||
<vfs> <dir name="trust_anchor"> <ram/> </dir> </vfs>
|
||||
<policy label="file_vault -> trust_anchor" root="/trust_anchor" writeable="yes"/>
|
||||
<policy label_prefix="file_vault -> trust_anchor" root="/trust_anchor" writeable="yes"/>
|
||||
</config>
|
||||
<route>
|
||||
<service name="PD"> <parent/> </service>
|
||||
@ -243,17 +243,18 @@ append config {
|
||||
|
||||
<start name="file_vault" caps="1200" ram="100M">
|
||||
<config jitterentropy_available="} [jent_avail_attr] {">
|
||||
<vfs> <dir name="tresor"> <fs label="tresor"/> </dir> </vfs>
|
||||
<vfs> <dir name="tresor"> <fs label="tresor -> /"/> </dir> </vfs>
|
||||
</config>
|
||||
<route>
|
||||
<service name="ROM" label="ui_config"> <child name="report_rom"/> </service>
|
||||
<service name="Report" label="ui_report"> <child name="report_rom"/> </service>
|
||||
<service name="File_system" label="tresor_trust_anchor_vfs -> storage_dir"> <child name="trust_anchor_fs" label="file_vault -> trust_anchor"/> </service>
|
||||
<service name="File_system" label="tresor_init -> "> <child name="data_fs" label="file_vault -> data"/> </service>
|
||||
<service name="File_system" label="tresor"> <child name="data_fs" label="file_vault -> data"/> </service>
|
||||
<service name="File_system" label="image_fs_query -> "> <child name="data_fs" label="file_vault -> data"/> </service>
|
||||
<service name="File_system" label="tresor_vfs -> tresor_fs"> <child name="data_fs" label="file_vault -> data"/> </service>
|
||||
<service name="File_system" label="truncate_file -> tresor"> <child name="data_fs" label="file_vault -> data"/> </service>
|
||||
<service name="File_system" label_prefix="tresor_trust_anchor_vfs -> storage_dir">
|
||||
<child name="trust_anchor_fs" identity="file_vault -> trust_anchor"/> </service>
|
||||
<service name="File_system" label_prefix="tresor_init ->"> <child name="data_fs" identity="file_vault -> data"/> </service>
|
||||
<service name="File_system" label_prefix="tresor ->"> <child name="data_fs" identity="file_vault -> data"/> </service>
|
||||
<service name="File_system" label_prefix="image_fs_query ->"> <child name="data_fs" identity="file_vault -> data"/> </service>
|
||||
<service name="File_system" label_prefix="tresor_vfs -> tresor_fs"> <child name="data_fs" identity="file_vault -> data"/> </service>
|
||||
<service name="File_system" label_prefix="truncate_file -> tresor"> <child name="data_fs" identity="file_vault -> data"/> </service>
|
||||
<service name="Timer"> <child name="timer"/> </service>
|
||||
<service name="PD"> <parent/> </service>
|
||||
<service name="ROM"> <parent/> </service>
|
||||
@ -265,7 +266,7 @@ append config {
|
||||
|
||||
<start name="file_vault_gui" caps="400" ram="8M">
|
||||
<route>
|
||||
<service name="File_system" label_last="fonts"> <child name="fonts_fs"/> </service>
|
||||
<service name="File_system"> <child name="fonts_fs"/> </service>
|
||||
<service name="Gui"> <child name="nitpicker"/> </service>
|
||||
<service name="ROM" label="ui_report"> <child name="report_rom"/> </service>
|
||||
<service name="Report" label="ui_config"> <child name="report_rom"/> </service>
|
||||
|
@ -306,7 +306,7 @@ install_config {
|
||||
<vfs>
|
||||
<tar name="menu_view_styles.tar" />
|
||||
<dir name="dev"> <log/> </dir>
|
||||
<dir name="fonts"> <fs label="fonts"/> </dir>
|
||||
<dir name="fonts"> <fs label="fonts -> /"/> </dir>
|
||||
</vfs>
|
||||
<dialog name="dialog" xpos="200" ypos="150"/>
|
||||
<dialog name="fixed_dialog" xpos="400" ypos="50" width="400"/>
|
||||
@ -314,7 +314,7 @@ install_config {
|
||||
<route>
|
||||
<service name="ROM" label="dialog"> <child name="dynamic_rom" /> </service>
|
||||
<service name="Report" label="hover"> <child name="report_rom"/> </service>
|
||||
<service name="File_system" label="fonts"> <child name="fonts_fs"/> </service>
|
||||
<service name="File_system" label="fonts -> /"> <child name="fonts_fs"/> </service>
|
||||
<any-service> <parent/> <any-child/> </any-service>
|
||||
</route>
|
||||
</start>
|
||||
|
@ -347,8 +347,8 @@ install_config {
|
||||
<ram/>
|
||||
<import> <tar name="initial_config.tar"/> </import>
|
||||
</vfs>
|
||||
<policy label="config_fs_rom -> " root="/" />
|
||||
<policy label="rw" root="/" writeable="yes" />
|
||||
<policy label_prefix="config_fs_rom ->" root="/"/>
|
||||
<policy label_prefix="rw ->" root="/" writeable="yes"/>
|
||||
</config>
|
||||
</start>
|
||||
|
||||
@ -386,10 +386,10 @@ install_config {
|
||||
</dir>
|
||||
</import>
|
||||
</vfs>
|
||||
<policy label="fs_report -> " root="/" writeable="yes"/>
|
||||
<policy label="log_terminal -> " root="/" writeable="yes"/>
|
||||
<policy label="report_fs_rom -> " root="/"/>
|
||||
<policy label="ro" root="/"/>
|
||||
<policy label_prefix="fs_report ->" root="/" writeable="yes"/>
|
||||
<policy label_prefix="log_terminal ->" root="/" writeable="yes"/>
|
||||
<policy label_prefix="report_fs_rom ->" root="/"/>
|
||||
<policy label_prefix="ro ->" root="/"/>
|
||||
</config>
|
||||
</start>
|
||||
|
||||
@ -637,12 +637,10 @@ install_config {
|
||||
<service name="Report"> <child name="fs_report"/> </service>
|
||||
<service name="Gui"> <child name="nitpicker"/> </service>
|
||||
<service name="Timer"> <child name="timer"/> </service>
|
||||
<service name="File_system" label="config">
|
||||
<child name="config_fs" label="rw"/> </service>
|
||||
<service name="File_system" label="report">
|
||||
<child name="report_fs" label="ro"/> </service>
|
||||
<service name="File_system" label="report">
|
||||
<child name="report_fs" label="ro"/> </service>
|
||||
<service name="File_system" label_prefix="config ->">
|
||||
<child name="config_fs" identity="rw"/> </service>
|
||||
<service name="File_system" label_prefix="report ->">
|
||||
<child name="report_fs" identity="ro"/> </service>
|
||||
<any-service> <parent/> </any-service>
|
||||
</route>
|
||||
</start>
|
||||
@ -670,10 +668,10 @@ install_config {
|
||||
<child name="report_rom"/> </service>
|
||||
<service name="ROM" label="clicked">
|
||||
<child name="report_rom"/> </service>
|
||||
<service name="File_system" label="config">
|
||||
<child name="config_fs" label="rw"/> </service>
|
||||
<service name="File_system" label="report">
|
||||
<child name="report_fs" label="ro"/> </service>
|
||||
<service name="File_system" label_prefix="config ->">
|
||||
<child name="config_fs" identity="rw"/> </service>
|
||||
<service name="File_system" label_prefix="report ->">
|
||||
<child name="report_fs" identity="ro"/> </service>
|
||||
<service name="Platform" label_prefix="acpica">
|
||||
<child name="drivers" label="acpica"/> </service>
|
||||
<service name="Platform"> <child name="drivers"/> </service>
|
||||
@ -700,8 +698,8 @@ install_config {
|
||||
<child name="leitzentrale"/> </service>
|
||||
<service name="ROM" label_prefix="leitzentrale ->">
|
||||
<child name="leitzentrale"/> </service>
|
||||
<service name="File_system" label="leitzentrale -> fonts">
|
||||
<child name="leitzentrale" label="fonts"/> </service>
|
||||
<service name="File_system" label_prefix="leitzentrale -> fonts ->">
|
||||
<child name="leitzentrale" identity="fonts"/> </service>
|
||||
<service name="Report"> <child name="fs_report"/> </service>
|
||||
<service name="LOG" label="unlogged"> <parent/> </service>
|
||||
} [log_route] [driver_routes] {
|
||||
|
@ -105,12 +105,12 @@ install_config {
|
||||
<start name="text_area.1" caps="250" ram="8M">
|
||||
<binary name="text_area"/>
|
||||
<config path="/data/drivers.config" max_lines="20" min_width="500" min_height="300" watch="yes">
|
||||
<vfs> <dir name="data"> <fs label="data"/> </dir> </vfs>
|
||||
<vfs> <dir name="data"> <fs label="data -> /"/> </dir> </vfs>
|
||||
</config>
|
||||
<route>
|
||||
<service name="ROM" label="hover"> <child name="report_rom"/> </service>
|
||||
<service name="File_system" label="fonts"> <child name="fonts_fs"/> </service>
|
||||
<service name="File_system" label="data"> <child name="data_fs"/> </service>
|
||||
<service name="File_system" label_prefix="fonts ->"> <child name="fonts_fs"/> </service>
|
||||
<service name="File_system" label_prefix="data ->"> <child name="data_fs"/> </service>
|
||||
<any-service> <parent/> <any-child/> </any-service>
|
||||
</route>
|
||||
</start>
|
||||
@ -121,13 +121,13 @@ install_config {
|
||||
max_lines="10" min_width="600">
|
||||
<report saved="yes"/>
|
||||
<save version="1"/>
|
||||
<vfs> <dir name="data"> <fs label="data"/> </dir> </vfs>
|
||||
<vfs> <dir name="data"> <fs label="data -> /"/> </dir> </vfs>
|
||||
</config>
|
||||
<route>
|
||||
<service name="Report"> <child name="report_rom"/> </service>
|
||||
<service name="ROM" label="clipboard"> <child name="report_rom"/> </service>
|
||||
<service name="File_system" label="fonts"> <child name="fonts_fs"/> </service>
|
||||
<service name="File_system" label="data"> <child name="data_fs"/> </service>
|
||||
<service name="File_system" label_prefix="fonts ->"> <child name="fonts_fs"/> </service>
|
||||
<service name="File_system" label_prefix="data ->"> <child name="data_fs"/> </service>
|
||||
<any-service> <parent/> <any-child/> </any-service>
|
||||
</route>
|
||||
</start>
|
||||
|
@ -190,7 +190,7 @@ append config {
|
||||
<fs buffer_size="1M"/>
|
||||
<tresor_crypto_aes_cbc name="crypto"/>
|
||||
<dir name="trust_anchor">
|
||||
<fs label="trust_anchor"/>
|
||||
<fs label="trust_anchor -> /"/>
|
||||
</dir>
|
||||
</vfs>
|
||||
|
||||
@ -898,7 +898,7 @@ append config {
|
||||
</config>
|
||||
|
||||
<route>
|
||||
<service name="File_system" label_last="trust_anchor"> <child name="trust_anchor_fs"/> </service>
|
||||
<service name="File_system" label="trust_anchor -> /"> <child name="trust_anchor_fs"/> </service>
|
||||
<service name="File_system"> <child name="block_io_fs"/> </service>
|
||||
<service name="Terminal"> <child name="log_terminal"/> </service>
|
||||
<service name="Timer"> <child name="timer"/> </service>
|
||||
|
@ -67,7 +67,7 @@ append config {
|
||||
|
||||
<start name="tresor_init_trust_anchor" ram="4M">
|
||||
<config passphrase="foobar" trust_anchor_dir="/trust_anchor">
|
||||
<vfs> <dir name="trust_anchor"> <fs label="ta"/> </dir> </vfs>
|
||||
<vfs> <dir name="trust_anchor"> <fs label="ta -> /"/> </dir> </vfs>
|
||||
</config>
|
||||
<route>
|
||||
<service name="PD"> <parent/> </service>
|
||||
@ -88,7 +88,7 @@ append config {
|
||||
<fs buffer_size="1M"/>
|
||||
<tresor_crypto_aes_cbc name="crypto"/>
|
||||
<dir name="trust_anchor">
|
||||
<fs label="ta"/>
|
||||
<fs label="ta -> /"/>
|
||||
</dir>
|
||||
</vfs>
|
||||
|
||||
@ -112,7 +112,7 @@ append config {
|
||||
<vfs>
|
||||
<fs buffer_size="1M"/>
|
||||
<tresor_crypto_aes_cbc name="crypto"/>
|
||||
<dir name="trust_anchor"> <fs label="ta"/> </dir>
|
||||
<dir name="trust_anchor"> <fs label="ta -> /"/> </dir>
|
||||
</vfs>
|
||||
</config>
|
||||
<route>
|
||||
@ -125,7 +125,7 @@ append config {
|
||||
|
||||
</config>
|
||||
<route>
|
||||
<service name="File_system" label_last="ta"> <child name="vfs"/> </service>
|
||||
<service name="File_system" label_suffix="ta -> /"> <child name="vfs"/> </service>
|
||||
<service name="File_system"> <child name="lx_fs"/> </service>
|
||||
<service name="PD"> <parent/> </service>
|
||||
<service name="ROM"> <parent/> </service>
|
||||
|
@ -108,7 +108,7 @@ append config {
|
||||
<config passphrase="foobar" trust_anchor_dir="/trust_anchor">
|
||||
<vfs>
|
||||
<dir name="trust_anchor">
|
||||
<fs label="tresor_trust_anchor"/>
|
||||
<fs label="tresor_trust_anchor -> /"/>
|
||||
</dir>
|
||||
</vfs>
|
||||
</config>
|
||||
@ -122,10 +122,10 @@ append config {
|
||||
<trust-anchor path="/trust_anchor"/>
|
||||
|
||||
<vfs>
|
||||
<fs label="tresor_block_io" buffer_size="1M"/>
|
||||
<fs label="tresor_block_io -> /" buffer_size="1M"/>
|
||||
<tresor_crypto_aes_cbc name="crypto"/>
|
||||
<dir name="trust_anchor">
|
||||
<fs label="tresor_trust_anchor"/>
|
||||
<fs label="tresor_trust_anchor -> /"/>
|
||||
</dir>
|
||||
</vfs>
|
||||
|
||||
@ -162,9 +162,9 @@ append config {
|
||||
<provides><service name="File_system"/></provides>
|
||||
<config>
|
||||
<vfs>
|
||||
<fs buffer_size="1M" label="tresor_block_io"/>
|
||||
<fs buffer_size="1M" label="tresor_block_io -> /"/>
|
||||
<tresor_crypto_aes_cbc name="tresor_crypto"/>
|
||||
<dir name="ta"> <fs buffer_size="1M" label="tresor_trust_anchor"/> </dir>
|
||||
<dir name="ta"> <fs buffer_size="1M" label="tresor_trust_anchor -> /"/> </dir>
|
||||
<dir name="dev">
|
||||
<tresor name="tresor" debug="no" verbose="yes"
|
||||
block="/} [tresor_image_name] {"
|
||||
@ -235,8 +235,8 @@ append config {
|
||||
<env key="PATH" value="/bin"/>
|
||||
</config>
|
||||
<route>
|
||||
<service name="File_system" label="shell"> <child name="vfs"/> </service>
|
||||
<service name="File_system" label="tresor"> <child name="vfs_tresor"/> </service>
|
||||
<service name="File_system" label="shell"> <child name="vfs" label="/"/> </service>
|
||||
<service name="File_system" label="tresor"> <child name="vfs_tresor" label="/"/> </service>
|
||||
<service name="ROM" label_suffix=".lib.so"> <parent/> </service>
|
||||
<service name="ROM" label_last="/bin/bash"> <child name="vfs_rom"/> </service>
|
||||
<service name="ROM" label_prefix="/bin"> <child name="vfs_rom"/> </service>
|
||||
@ -250,8 +250,8 @@ append config {
|
||||
</config>
|
||||
<route>
|
||||
<service name="Terminal"> <child name="log_terminal"/> </service>
|
||||
<service name="File_system" label_suffix="tresor_block_io"> <child name="lx_fs"/> </service>
|
||||
<service name="File_system" label_suffix="tresor_trust_anchor"> <child name="vfs_tresor_trust_anchor"/> </service>
|
||||
<service name="File_system" label_suffix="tresor_block_io -> /"> <child name="lx_fs"/> </service>
|
||||
<service name="File_system" label_suffix="tresor_trust_anchor -> /"> <child name="vfs_tresor_trust_anchor"/> </service>
|
||||
<service name="Timer"> <child name="timer"/> </service>
|
||||
<any-service> <parent/> </any-service>
|
||||
</route>
|
||||
|
@ -35,7 +35,8 @@
|
||||
<service name="ROM" label="rules"> <child name="wm"/> </service>
|
||||
<service name="Report"> <child name="wm"/> </service>
|
||||
<service name="Gui"> <child name="wm"/> </service>
|
||||
<service name="File_system" label="recall"> <child name="recall_fs"/> </service>
|
||||
<service name="File_system" label_prefix="recall ->">
|
||||
<child name="recall_fs"/> </service>
|
||||
</route>
|
||||
</start>
|
||||
|
||||
|
@ -21,7 +21,7 @@
|
||||
<service name="ROM" label="hover"> <child name="wm"/> </service>
|
||||
<service name="ROM" label="decorator_margins"> <child name="wm"/> </service>
|
||||
<service name="Report"> <child name="wm"/> </service>
|
||||
<service name="File_system" label="recall"> <child name="recall_fs"/> </service>
|
||||
<service name="File_system" label_prefix="recall ->"> <child name="recall_fs"/> </service>
|
||||
</route>
|
||||
</start>
|
||||
|
||||
@ -68,8 +68,8 @@
|
||||
<service name="Play"> <child name="mixer"/> </service>
|
||||
<service name="Record"> <child name="mixer"/> </service>
|
||||
<service name="Capture"> <child name="black_hole"/> </service>
|
||||
<service name="File_system" label="config"> <child name="ram_fs"/> </service>
|
||||
<service name="File_system" label="downloads"> <child name="ram_fs"/> </service>
|
||||
<service name="File_system" label_prefix="config ->"> <child name="ram_fs"/> </service>
|
||||
<service name="File_system" label_prefix="downloads ->"> <child name="ram_fs"/> </service>
|
||||
<service name="Gui"> <child name="wm"/> </service>
|
||||
<service name="Report" label="falkon -> shape"> <child name="wm"/> </service>
|
||||
<service name="Report" label="clipboard"> <child name="wm"/> </service>
|
||||
|
@ -14,10 +14,10 @@
|
||||
<start name="system_shell" priority="-2" pkg="system_shell">
|
||||
<route>
|
||||
<service name="Gui"> <child name="wm"/> </service>
|
||||
<service name="File_system" label="config"> <parent label="config"/> </service>
|
||||
<service name="File_system" label="report"> <parent label="report"/> </service>
|
||||
<service name="File_system" label="target"> <child name="default_fs_rw"/> </service>
|
||||
<service name="File_system" label="fonts"> <child name="fonts_fs"/> </service>
|
||||
<service name="File_system" label_prefix="config ->"> <parent identity="config"/> </service>
|
||||
<service name="File_system" label_prefix="report ->"> <parent identity="report"/> </service>
|
||||
<service name="File_system" label_prefix="target ->"> <child name="default_fs_rw"/> </service>
|
||||
<service name="File_system" label_prefix="fonts ->"> <child name="fonts_fs"/> </service>
|
||||
<service name="ROM" label="vimrc"> <parent label="config -> vimrc"/> </service>
|
||||
<service name="ROM" label="clipboard"> <child name="wm"/> </service>
|
||||
<service name="Report" label="clipboard"> <child name="wm"/> </service>
|
||||
@ -33,7 +33,7 @@
|
||||
<service name="ROM" label="hover"> <child name="wm"/> </service>
|
||||
<service name="ROM" label="decorator_margins"> <child name="wm"/> </service>
|
||||
<service name="Report"> <child name="wm"/> </service>
|
||||
<service name="File_system" label="recall">
|
||||
<service name="File_system" label_prefix="recall ->">
|
||||
<child name="recall_fs"/>
|
||||
</service>
|
||||
</route>
|
||||
|
@ -1,10 +1,10 @@
|
||||
<launcher pkg="system_shell">
|
||||
<route>
|
||||
<service name="Gui"> <parent label="focus"/> </service>
|
||||
<service name="File_system" label="fonts"> <child name="fonts_fs"/> </service>
|
||||
<service name="File_system" label="target"> <child name="default_fs_rw"/> </service>
|
||||
<service name="File_system" label="config"> <parent label="config"/> </service>
|
||||
<service name="File_system" label="report"> <parent label="report"/> </service>
|
||||
<service name="File_system" label_prefix="fonts ->"> <child name="fonts_fs"/> </service>
|
||||
<service name="File_system" label_prefix="target ->"> <child name="default_fs_rw"/> </service>
|
||||
<service name="File_system" label_prefix="config ->"> <parent identity="config"/> </service>
|
||||
<service name="File_system" label_prefix="report ->"> <parent identity="report"/> </service>
|
||||
<service name="Report" label="clipboard"> <parent label="clipboard"/> </service>
|
||||
<service name="ROM" label="clipboard"> <parent label="clipboard"/> </service>
|
||||
<service name="ROM" label="vimrc"> <parent label="config -> vimrc"/> </service>
|
||||
|
@ -1,10 +1,10 @@
|
||||
<launcher pkg="dbg_download" priority="-2">
|
||||
<route>
|
||||
<service name="File_system" label="system_config">
|
||||
<parent label="config"/>
|
||||
<service name="File_system" label_prefix="system_config ->">
|
||||
<parent identity="config"/>
|
||||
</service>
|
||||
<service name="File_system" label="used">
|
||||
<child name="default_fs_rw"/>
|
||||
<service name="File_system" label_prefix="used ->">
|
||||
<child identity="default_fs_rw"/>
|
||||
</service>
|
||||
<service name="ROM" label="build_info">
|
||||
<parent label="build_info"/>
|
||||
|
@ -1,9 +1,9 @@
|
||||
<launcher pkg="report_dump">
|
||||
|
||||
<route>
|
||||
<service name="File_system" label="report">
|
||||
<service name="File_system" label_prefix="report ->">
|
||||
<parent label="report"/> </service>
|
||||
<service name="File_system" label="target">
|
||||
<service name="File_system" label_prefix="target ->">
|
||||
<child name="default_fs_rw"/> </service>
|
||||
<service name="Rtc">
|
||||
<child name="system_clock-dummy"/> </service>
|
||||
|
@ -1,10 +1,10 @@
|
||||
<launcher pkg="system_shell" priority="-2">
|
||||
<route>
|
||||
<service name="Gui"> <child name="wm"/> </service>
|
||||
<service name="File_system" label="fonts"> <child name="fonts_fs"/> </service>
|
||||
<service name="File_system" label="target"> <child name="default_fs_rw"/> </service>
|
||||
<service name="File_system" label="config"> <parent label="config"/> </service>
|
||||
<service name="File_system" label="report"> <parent label="report"/> </service>
|
||||
<service name="File_system" label_prefix="fonts ->"> <child name="fonts_fs"/> </service>
|
||||
<service name="File_system" label_prefix="target ->"> <child name="default_fs_rw"/> </service>
|
||||
<service name="File_system" label_prefix="config ->"> <parent identity="config"/> </service>
|
||||
<service name="File_system" label_prefix="report ->"> <parent identity="report"/> </service>
|
||||
<service name="Report" label="clipboard"> <parent label="clipboard"/> </service>
|
||||
<service name="ROM" label="clipboard"> <parent label="clipboard"/> </service>
|
||||
<service name="ROM" label="vimrc"> <parent label="config -> vimrc"/> </service>
|
||||
|
@ -2,6 +2,6 @@
|
||||
<route>
|
||||
<service name="Gui"> <parent label="touch_keyboard"/> </service>
|
||||
<service name="Event"> <parent label="global"/> </service>
|
||||
<service name="File_system" label="fonts"> <child name="fonts_fs"/> </service>
|
||||
<service name="File_system" label_prefix="fonts ->"> <child name="fonts_fs"/> </service>
|
||||
</route>
|
||||
</launcher>
|
||||
|
@ -200,7 +200,7 @@
|
||||
<provides> <service name="Report"/> </provides>
|
||||
<config> <vfs> <fs/> </vfs> </config>
|
||||
<route>
|
||||
<service name="File_system"> <parent label="config"/> </service>
|
||||
<service name="File_system"> <parent identity="config"/> </service>
|
||||
<any-service> <parent/> </any-service>
|
||||
</route>
|
||||
</start>
|
||||
@ -287,11 +287,11 @@
|
||||
<libc stdin="/report/log" stdout="/dev/terminal"/>
|
||||
<vfs>
|
||||
<dir name="dev"> <terminal/> </dir>
|
||||
<dir name="report"> <fs label="report"/> </dir>
|
||||
<dir name="report"> <fs label="report -> /"/> </dir>
|
||||
</vfs>
|
||||
</config>
|
||||
<route>
|
||||
<service name="File_system"> <parent label="report"/> </service>
|
||||
<service name="File_system"> <parent identity="report"/> </service>
|
||||
<any-service> <child name="log_terminal"/> <parent/> </any-service>
|
||||
</route>
|
||||
</start>
|
||||
|
@ -107,7 +107,7 @@
|
||||
<provides> <service name="Report"/> </provides>
|
||||
<config> <vfs> <fs/> </vfs> </config>
|
||||
<route>
|
||||
<service name="File_system"> <parent label="config"/> </service>
|
||||
<service name="File_system"> <parent identity="config"/> </service>
|
||||
<any-service> <parent/> </any-service>
|
||||
</route>
|
||||
</start>
|
||||
|
@ -36,7 +36,7 @@ void Depot_download_manager::gen_chroot_start_content(Xml_generator &xml,
|
||||
xml.node("service", [&] () {
|
||||
xml.attribute("name", File_system::Session::service_name());
|
||||
xml.node("parent", [&] () {
|
||||
xml.attribute("label", "depot_rw"); });
|
||||
xml.attribute("identity", "depot_rw"); });
|
||||
});
|
||||
gen_parent_unscoped_rom_route(xml, "chroot");
|
||||
gen_parent_unscoped_rom_route(xml, "ld.lib.so");
|
||||
|
@ -30,7 +30,7 @@ void Depot_download_manager::gen_depot_query_start_content(Xml_generator &xml,
|
||||
xml.node("dir", [&] () {
|
||||
xml.attribute("name", "depot");
|
||||
xml.node("fs", [&] () {
|
||||
xml.attribute("label", "depot"); });
|
||||
xml.attribute("label", "depot -> /"); });
|
||||
});
|
||||
});
|
||||
|
||||
@ -119,7 +119,7 @@ void Depot_download_manager::gen_depot_query_start_content(Xml_generator &xml,
|
||||
xml.node("service", [&] () {
|
||||
xml.attribute("name", File_system::Session::service_name());
|
||||
xml.node("parent", [&] () {
|
||||
xml.attribute("label", "depot"); });
|
||||
xml.attribute("identity", "depot"); });
|
||||
});
|
||||
gen_parent_unscoped_rom_route(xml, "depot_query");
|
||||
gen_parent_unscoped_rom_route(xml, "ld.lib.so");
|
||||
|
@ -37,7 +37,7 @@ void Depot_download_manager::gen_extract_start_content(Xml_generator &xml,
|
||||
xml.attribute("name", "public");
|
||||
xml.node("fs", [&] () {
|
||||
xml.attribute("buffer_size", 144u << 10);
|
||||
xml.attribute("label", "public"); });
|
||||
xml.attribute("label", "public -> /"); });
|
||||
});
|
||||
xml.node("dir", [&] () {
|
||||
xml.attribute("name", "depot");
|
||||
@ -45,7 +45,7 @@ void Depot_download_manager::gen_extract_start_content(Xml_generator &xml,
|
||||
xml.attribute("name", user);
|
||||
xml.node("fs", [&] () {
|
||||
xml.attribute("buffer_size", 144u << 10);
|
||||
xml.attribute("label", user_path); });
|
||||
xml.attribute("label", Path(user_path, " -> /")); });
|
||||
});
|
||||
});
|
||||
xml.node("dir", [&] () {
|
||||
@ -75,13 +75,13 @@ void Depot_download_manager::gen_extract_start_content(Xml_generator &xml,
|
||||
xml.node("route", [&] () {
|
||||
xml.node("service", [&] () {
|
||||
xml.attribute("name", File_system::Session::service_name());
|
||||
xml.attribute("label", "public");
|
||||
xml.attribute("label_prefix", "public ->");
|
||||
xml.node("parent", [&] () {
|
||||
xml.attribute("label", "public"); });
|
||||
xml.attribute("identity", "public"); });
|
||||
});
|
||||
xml.node("service", [&] () {
|
||||
xml.attribute("name", File_system::Session::service_name());
|
||||
xml.attribute("label", user_path);
|
||||
xml.attribute("label_prefix", Path(user_path, " ->"));
|
||||
xml.node("child", [&] () {
|
||||
xml.attribute("name", user_path); });
|
||||
});
|
||||
|
@ -41,7 +41,7 @@ void Depot_download_manager::gen_fetchurl_start_content(Xml_generator &xml,
|
||||
xml.attribute("name", "download");
|
||||
xml.node("fs", [&] {
|
||||
xml.attribute("buffer_size", 144u << 10);
|
||||
xml.attribute("label", "download"); });
|
||||
xml.attribute("label", "download -> /"); });
|
||||
});
|
||||
xml.node("dir", [&] {
|
||||
xml.attribute("name", "dev");
|
||||
@ -64,7 +64,7 @@ void Depot_download_manager::gen_fetchurl_start_content(Xml_generator &xml,
|
||||
xml.node("pipe", [&] { });
|
||||
});
|
||||
xml.node("fs", [&] {
|
||||
xml.attribute("label", "tcpip"); });
|
||||
xml.attribute("label", "tcpip -> /"); });
|
||||
});
|
||||
|
||||
import.for_each_download([&] (Archive::Path const &path) {
|
||||
@ -93,15 +93,15 @@ void Depot_download_manager::gen_fetchurl_start_content(Xml_generator &xml,
|
||||
xml.node("route", [&] {
|
||||
xml.node("service", [&] {
|
||||
xml.attribute("name", File_system::Session::service_name());
|
||||
xml.attribute("label", "download");
|
||||
xml.attribute("label_prefix", "download ->");
|
||||
xml.node("parent", [&] {
|
||||
xml.attribute("label", "public_rw"); });
|
||||
xml.attribute("identity", "public_rw"); });
|
||||
});
|
||||
xml.node("service", [&] {
|
||||
xml.attribute("name", File_system::Session::service_name());
|
||||
xml.attribute("label", "tcpip");
|
||||
xml.attribute("label_prefix", "tcpip ->");
|
||||
xml.node("parent", [&] {
|
||||
xml.attribute("label", "tcpip"); });
|
||||
xml.attribute("identity", "tcpip"); });
|
||||
});
|
||||
gen_parent_unscoped_rom_route(xml, "fetchurl");
|
||||
gen_parent_unscoped_rom_route(xml, "ld.lib.so");
|
||||
|
@ -34,13 +34,13 @@ void Depot_download_manager::gen_verify_start_content(Xml_generator &xml,
|
||||
xml.attribute("name", "public");
|
||||
xml.node("fs", [&] () {
|
||||
xml.attribute("buffer_size", 144u << 10);
|
||||
xml.attribute("label", "public"); });
|
||||
xml.attribute("label", "public -> /"); });
|
||||
});
|
||||
xml.node("dir", [&] () {
|
||||
xml.attribute("name", "depot");
|
||||
xml.node("fs", [&] () {
|
||||
xml.attribute("buffer_size", 144u << 10);
|
||||
xml.attribute("label", "depot"); });
|
||||
xml.attribute("label", "depot -> /"); });
|
||||
});
|
||||
xml.node("dir", [&] () {
|
||||
xml.attribute("name", "dev");
|
||||
@ -66,15 +66,15 @@ void Depot_download_manager::gen_verify_start_content(Xml_generator &xml,
|
||||
xml.node("route", [&] () {
|
||||
xml.node("service", [&] () {
|
||||
xml.attribute("name", File_system::Session::service_name());
|
||||
xml.attribute("label", "public");
|
||||
xml.attribute("label_prefix", "public ->");
|
||||
xml.node("parent", [&] () {
|
||||
xml.attribute("label", "public"); });
|
||||
xml.attribute("identity", "public"); });
|
||||
});
|
||||
xml.node("service", [&] () {
|
||||
xml.attribute("name", File_system::Session::service_name());
|
||||
xml.attribute("label", "depot");
|
||||
xml.attribute("label_prefix", "depot ->");
|
||||
xml.node("parent", [&] () {
|
||||
xml.attribute("label", "depot"); });
|
||||
xml.attribute("identity", "depot"); });
|
||||
});
|
||||
gen_parent_unscoped_rom_route(xml, "verify");
|
||||
gen_parent_unscoped_rom_route(xml, "ld.lib.so");
|
||||
|
@ -43,7 +43,7 @@ an example File Vault configuration with default values:
|
||||
! <config jitterentropy_available="yes">
|
||||
! <vfs>
|
||||
! <dir name="tresor">
|
||||
! <fs label="tresor"/>
|
||||
! <fs label="tresor -> /"/>
|
||||
! </dir>
|
||||
! </vfs>
|
||||
! </config>
|
||||
|
@ -44,7 +44,7 @@ namespace File_vault {
|
||||
void gen_child_route(Xml_generator &xml, char const *child, char const *service, char const *label = "")
|
||||
{
|
||||
gen_route(xml, service, label, [&] { gen_named_node(xml, "child", child, [] { }); });
|
||||
};
|
||||
}
|
||||
|
||||
void gen_parent_route(Xml_generator &xml, char const *service, char const *src_label = "", char const *dst_label = "")
|
||||
{
|
||||
@ -77,10 +77,11 @@ namespace File_vault {
|
||||
gen_parent_route(xml, "LOG");
|
||||
}
|
||||
|
||||
void gen_vfs_policy(Xml_generator &xml, char const *label, char const *root, bool writeable)
|
||||
void gen_vfs_policy(Xml_generator &xml, char const *label_prefix,
|
||||
char const *root, bool writeable)
|
||||
{
|
||||
xml.node("policy", [&] {
|
||||
xml.attribute("label", label);
|
||||
xml.attribute("label_prefix ", label_prefix);
|
||||
xml.attribute("root", root);
|
||||
xml.attribute("writeable", writeable ? "yes" : "no");
|
||||
});
|
||||
@ -186,13 +187,13 @@ namespace File_vault {
|
||||
xml.node("vfs", [&] {
|
||||
xml.node("fs", [&] {
|
||||
xml.attribute("buffer_size", "1M");
|
||||
xml.attribute("label", "tresor_fs");
|
||||
xml.attribute("label", "tresor_fs -> /");
|
||||
});
|
||||
gen_named_node(xml, "tresor_crypto_aes_cbc", "crypto", [] { });
|
||||
gen_named_node(xml, "dir", "trust_anchor", [&] {
|
||||
xml.node("fs", [&] {
|
||||
xml.attribute("buffer_size", "1M");
|
||||
xml.attribute("label", "trust_anchor");
|
||||
xml.attribute("label", "trust_anchor -> /");
|
||||
});
|
||||
});
|
||||
gen_named_node(xml, "dir", "dev", [&] {
|
||||
@ -214,8 +215,8 @@ namespace File_vault {
|
||||
gen_vfs_policy(xml, "sync_to_tresor_vfs_init -> ", "/dev", true);
|
||||
});
|
||||
xml.node("route", [&] {
|
||||
gen_child_route(xml, "tresor_trust_anchor_vfs", "File_system", "trust_anchor");
|
||||
gen_parent_route(xml, "File_system", "tresor_fs");
|
||||
gen_child_route(xml, "tresor_trust_anchor_vfs", "File_system", "trust_anchor -> /");
|
||||
gen_parent_route(xml, "File_system", "tresor_fs -> /");
|
||||
gen_common_routes(xml);
|
||||
});
|
||||
});
|
||||
@ -231,7 +232,7 @@ namespace File_vault {
|
||||
gen_named_node(xml, "dir", "storage_dir", [&] {
|
||||
xml.node("fs", [&] {
|
||||
xml.attribute("buffer_size", "1M");
|
||||
xml.attribute("label", "storage_dir");
|
||||
xml.attribute("label", "storage_dir -> /");
|
||||
});
|
||||
});
|
||||
gen_named_node(xml, "dir", "dev", [&] {
|
||||
@ -251,7 +252,7 @@ namespace File_vault {
|
||||
gen_vfs_policy(xml, "tresor_vfs -> trust_anchor", "/dev/tresor_trust_anchor", true);
|
||||
});
|
||||
xml.node("route", [&] {
|
||||
gen_parent_route(xml, "File_system", "storage_dir");
|
||||
gen_parent_route(xml, "File_system", "storage_dir -> /");
|
||||
gen_common_routes(xml);
|
||||
});
|
||||
});
|
||||
@ -291,7 +292,7 @@ namespace File_vault {
|
||||
xml.attribute("path", path);
|
||||
xml.node("vfs", [&] {
|
||||
gen_named_node(xml, "dir", "tresor", [&] {
|
||||
xml.node("fs", [&] { xml.attribute("label", "tresor"); }); }); });
|
||||
xml.node("fs", [&] { xml.attribute("label", "tresor -> /"); }); }); });
|
||||
});
|
||||
xml.node("route", [&] {
|
||||
gen_parent_route(xml, "File_system");
|
||||
@ -358,10 +359,10 @@ namespace File_vault {
|
||||
xml.attribute("trust_anchor_dir", "/trust_anchor");
|
||||
xml.node("vfs", [&] {
|
||||
gen_named_node(xml, "dir", "trust_anchor", [&] {
|
||||
xml.node("fs", [&] { xml.attribute("label", "trust_anchor"); }); }); });
|
||||
xml.node("fs", [&] { xml.attribute("label", "trust_anchor -> /"); }); }); });
|
||||
});
|
||||
xml.node("route", [&] {
|
||||
gen_child_route(xml, "tresor_trust_anchor_vfs", "File_system", "trust_anchor");
|
||||
gen_child_route(xml, "tresor_trust_anchor_vfs", "File_system", "trust_anchor -> /");
|
||||
gen_common_routes(xml);
|
||||
});
|
||||
});
|
||||
@ -382,12 +383,12 @@ namespace File_vault {
|
||||
xml.node("fs", [&] { xml.attribute("buffer_size", "1M"); });
|
||||
gen_named_node(xml, "tresor_crypto_aes_cbc", "crypto", [] { });
|
||||
gen_named_node(xml, "dir", "trust_anchor", [&] {
|
||||
xml.node("fs", [&] { xml.attribute("label", "trust_anchor"); }); });
|
||||
xml.node("fs", [&] { xml.attribute("label", "trust_anchor -> /"); }); });
|
||||
});
|
||||
sb_config.generate_xml(xml);
|
||||
});
|
||||
xml.node("route", [&] {
|
||||
gen_child_route(xml, "tresor_trust_anchor_vfs", "File_system", "trust_anchor");
|
||||
gen_child_route(xml, "tresor_trust_anchor_vfs", "File_system", "trust_anchor -> /");
|
||||
gen_parent_route(xml, "File_system");
|
||||
gen_common_routes(xml);
|
||||
});
|
||||
|
@ -200,7 +200,7 @@ void Distant_runtime::gen_start_nodes(Xml_generator &xml) const
|
||||
xml.node("dir", [&] {
|
||||
xml.attribute("name", "fonts");
|
||||
xml.node("fs", [&] {
|
||||
xml.attribute("label", "fonts");
|
||||
xml.attribute("label", "fonts -> /");
|
||||
});
|
||||
});
|
||||
});
|
||||
@ -234,9 +234,9 @@ void Distant_runtime::gen_start_nodes(Xml_generator &xml) const
|
||||
});
|
||||
|
||||
gen_service_node<::File_system::Session>(xml, [&] {
|
||||
xml.attribute("label", "fonts");
|
||||
xml.attribute("label_prefix", "fonts ->");
|
||||
xml.node("parent", [&] {
|
||||
xml.attribute("label", "leitzentrale -> fonts"); }); });
|
||||
xml.attribute("identity", "leitzentrale -> fonts"); }); });
|
||||
});
|
||||
});
|
||||
}
|
||||
|
@ -105,11 +105,11 @@ struct Sculpt::File_browser_state : Noncopyable
|
||||
|
||||
if (browsed_fs == "config") {
|
||||
xml.node("parent", [&] {
|
||||
xml.attribute("label", "config"); });
|
||||
xml.attribute("identity", "config"); });
|
||||
}
|
||||
else if (browsed_fs == "report") {
|
||||
xml.node("parent", [&] {
|
||||
xml.attribute("label", "report"); });
|
||||
xml.attribute("identity", "report"); });
|
||||
}
|
||||
else {
|
||||
xml.node("child", [&] {
|
||||
@ -181,19 +181,19 @@ struct Sculpt::File_browser_state : Noncopyable
|
||||
xml.attribute("label", "leitzentrale -> editor"); }); });
|
||||
|
||||
gen_service_node<::File_system::Session>(xml, [&] {
|
||||
xml.attribute("label", "fonts");
|
||||
xml.attribute("label_prefix", "fonts ->");
|
||||
xml.node("parent", [&] {
|
||||
xml.attribute("label", "leitzentrale -> fonts"); }); });
|
||||
xml.attribute("identity", "leitzentrale -> fonts"); }); });
|
||||
|
||||
gen_service_node<::File_system::Session>(xml, [&] {
|
||||
|
||||
if (browsed_fs == "config") {
|
||||
xml.node("parent", [&] {
|
||||
xml.attribute("label", "config"); });
|
||||
xml.attribute("identity", "config"); });
|
||||
}
|
||||
else if (browsed_fs == "report") {
|
||||
xml.node("parent", [&] {
|
||||
xml.attribute("label", "report"); });
|
||||
xml.attribute("identity", "report"); });
|
||||
}
|
||||
else {
|
||||
xml.node("child", [&] {
|
||||
|
@ -146,10 +146,17 @@ struct Sculpt::Route : List_model<Route>::Element
|
||||
|
||||
if (required_label.valid()) {
|
||||
|
||||
if (selected_service->match_label == Service::Match_label::LAST)
|
||||
switch (selected_service->match_label) {
|
||||
case Service::Match_label::LAST:
|
||||
xml.attribute("label_last", required_label);
|
||||
else
|
||||
break;
|
||||
case Service::Match_label::FS:
|
||||
xml.attribute("label_prefix", Label(required_label, " ->"));
|
||||
break;
|
||||
case Service::Match_label::EXACT:
|
||||
xml.attribute("label", required_label);
|
||||
break;
|
||||
}
|
||||
}
|
||||
|
||||
selected_service->gen_xml(xml);
|
||||
|
@ -312,8 +312,8 @@ class Sculpt::Runtime_config
|
||||
_event { _r, Type::EVENT, "filtered input events" },
|
||||
_lz_capture{ _r, Type::CAPTURE, "management GUI", "leitzentrale" },
|
||||
_capture { _r, Type::CAPTURE, "system GUI", "global" },
|
||||
_config_fs { _r, Type::FILE_SYSTEM, "writeable system configuration", "config" },
|
||||
_report_fs { _r, Type::FILE_SYSTEM, "read-only system reports", "report" },
|
||||
_config_fs { _r, Type::FILE_SYSTEM, "writeable system configuration", "config", Service::Match_label::FS },
|
||||
_report_fs { _r, Type::FILE_SYSTEM, "read-only system reports", "report", Service::Match_label::FS },
|
||||
_capslock { _r, Type::ROM, "global capslock state", "capslock" },
|
||||
_vimrc { _r, Type::ROM, "default vim configuration", "config -> vimrc" },
|
||||
_fonts { _r, Type::ROM, "system font configuration", "config -> managed/fonts" },
|
||||
|
@ -30,13 +30,13 @@ struct Sculpt::Service
|
||||
RM, IO_MEM, IO_PORT, IRQ, REPORT, ROM, TERMINAL, TRACE, USB, RTC, I2C,
|
||||
PLATFORM, PIN_STATE, PIN_CONTROL, VM, PD, UPLINK, PLAY, RECORD, UNDEFINED };
|
||||
|
||||
enum class Match_label { EXACT, LAST };
|
||||
enum class Match_label { EXACT, LAST, FS };
|
||||
|
||||
Start_name server { }; /* invalid for parent service */
|
||||
Type type;
|
||||
Label label;
|
||||
Info info;
|
||||
Match_label match_label { Match_label::EXACT };
|
||||
Match_label match_label;
|
||||
|
||||
/**
|
||||
* Return name attribute value of <service name="..."> node
|
||||
@ -81,13 +81,18 @@ struct Sculpt::Service
|
||||
* Constructor for child service
|
||||
*/
|
||||
Service(Start_name const &server, Type type, Label const &label)
|
||||
: server(server), type(type), label(label), info(Subst("_", " ", server)) { }
|
||||
:
|
||||
server(server), type(type), label(label), info(Subst("_", " ", server)),
|
||||
match_label(type == Type::FILE_SYSTEM ? Match_label::FS : Match_label::EXACT)
|
||||
{ }
|
||||
|
||||
/**
|
||||
* Constructor for default_fs_rw
|
||||
*/
|
||||
Service(Start_name const &server, Type type, Label const &label, Info const &info)
|
||||
: server(server), type(type), label(label), info(info) { }
|
||||
:
|
||||
server(server), type(type), label(label), info(info), match_label(Match_label::FS)
|
||||
{ }
|
||||
|
||||
/**
|
||||
* Constructor for parent service
|
||||
@ -109,6 +114,9 @@ struct Sculpt::Service
|
||||
|
||||
if (label.valid() && match_label == Match_label::EXACT)
|
||||
xml.attribute("label", label);
|
||||
|
||||
if (label.valid() && match_label == Match_label::FS)
|
||||
xml.attribute("identity", label);
|
||||
});
|
||||
}
|
||||
};
|
||||
|
@ -39,8 +39,8 @@ void Sculpt::gen_fs_tool_start_content(Xml_generator &xml, Fs_tool_version versi
|
||||
xml.attribute("buffer_size", buffer_size); }); });
|
||||
};
|
||||
|
||||
gen_fs("rw", "target", "1M");
|
||||
gen_fs("config", "config", "128K");
|
||||
gen_fs("rw", "target -> /", "1M");
|
||||
gen_fs("config", "config -> /", "128K");
|
||||
});
|
||||
|
||||
operations.gen_fs_tool_config(xml);
|
||||
@ -49,7 +49,7 @@ void Sculpt::gen_fs_tool_start_content(Xml_generator &xml, Fs_tool_version versi
|
||||
xml.node("route", [&] {
|
||||
|
||||
gen_service_node<::File_system::Session>(xml, [&] {
|
||||
xml.attribute("label", "target");
|
||||
xml.attribute("label_prefix", "target ->");
|
||||
gen_named_node(xml, "child", "default_fs_rw"); });
|
||||
|
||||
gen_parent_rom_route(xml, "fs_tool");
|
||||
@ -61,7 +61,7 @@ void Sculpt::gen_fs_tool_start_content(Xml_generator &xml, Fs_tool_version versi
|
||||
gen_parent_route<Rom_session> (xml);
|
||||
|
||||
gen_service_node<::File_system::Session>(xml, [&] {
|
||||
xml.attribute("label", "config");
|
||||
xml.node("parent", [&] { xml.attribute("label", "config"); }); });
|
||||
xml.attribute("label_prefix", "config ->");
|
||||
xml.node("parent", [&] { xml.attribute("identity", "config"); }); });
|
||||
});
|
||||
}
|
||||
|
@ -80,7 +80,7 @@ static void gen_vfs_start(Xml_generator &xml,
|
||||
gen_named_node(xml, "dir", label, [&] {
|
||||
xml.node("fs", [&] {
|
||||
xml.attribute("buffer_size", 272u << 10);
|
||||
xml.attribute("label", label); }); }); };
|
||||
xml.attribute("label", prefixed_label(label, String<8>("/"))); }); }); };
|
||||
|
||||
fs_dir("config");
|
||||
fs_dir("report");
|
||||
@ -111,13 +111,13 @@ static void gen_vfs_start(Xml_generator &xml,
|
||||
xml.node("route", [&] {
|
||||
|
||||
gen_service_node<::File_system::Session>(xml, [&] {
|
||||
xml.attribute("label", "config");
|
||||
xml.node("parent", [&] { xml.attribute("label", "config"); });
|
||||
xml.attribute("label_prefix", "config ->");
|
||||
xml.node("parent", [&] { xml.attribute("identity", "config"); });
|
||||
});
|
||||
|
||||
gen_service_node<::File_system::Session>(xml, [&] {
|
||||
xml.attribute("label", "report");
|
||||
xml.node("parent", [&] { xml.attribute("label", "report"); });
|
||||
xml.attribute("label_prefix", "report ->");
|
||||
xml.node("parent", [&] { xml.attribute("identity", "report"); });
|
||||
});
|
||||
|
||||
gen_service_node<Terminal::Session>(xml, [&] {
|
||||
@ -242,18 +242,13 @@ void Sculpt::gen_inspect_view(Xml_generator &xml,
|
||||
xml.node("route", [&] {
|
||||
|
||||
gen_service_node<::File_system::Session>(xml, [&] {
|
||||
xml.attribute("label", "config");
|
||||
xml.node("parent", [&] { xml.attribute("label", "config"); });
|
||||
xml.attribute("label_prefix", "config ->");
|
||||
xml.node("parent", [&] { xml.attribute("identity", "config"); });
|
||||
});
|
||||
|
||||
gen_service_node<::File_system::Session>(xml, [&] {
|
||||
xml.attribute("label", "report");
|
||||
xml.node("parent", [&] { xml.attribute("label", "report"); });
|
||||
});
|
||||
|
||||
gen_service_node<::File_system::Session>(xml, [&] {
|
||||
xml.attribute("label", "report");
|
||||
xml.node("parent", [&] { xml.attribute("label", "report"); });
|
||||
xml.attribute("label_prefix", "report ->");
|
||||
xml.node("parent", [&] { xml.attribute("identity", "report"); });
|
||||
});
|
||||
|
||||
gen_parent_rom_route(xml, "ld.lib.so");
|
||||
@ -283,16 +278,13 @@ void Sculpt::gen_inspect_view(Xml_generator &xml,
|
||||
|
||||
for_each_inspected_storage_target(devices, [&] (Storage_target const &target) {
|
||||
gen_service_node<::File_system::Session>(xml, [&] {
|
||||
xml.attribute("label_last", target.label());
|
||||
gen_named_node(xml, "child", target.fs());
|
||||
});
|
||||
});
|
||||
xml.attribute("label_prefix", Session_label("vfs -> ", target.label(), " ->"));
|
||||
gen_named_node(xml, "child", target.fs()); }); });
|
||||
|
||||
if (ram_fs_state.inspected)
|
||||
gen_service_node<::File_system::Session>(xml, [&] {
|
||||
xml.attribute("label_last", "ram");
|
||||
gen_named_node(xml, "child", "ram_fs");
|
||||
});
|
||||
xml.attribute("label_prefix", "vfs -> ram ->");
|
||||
gen_named_node(xml, "child", "ram_fs"); });
|
||||
|
||||
gen_service_node<Gui::Session>(xml, [&] {
|
||||
xml.node("parent", [&] {
|
||||
|
@ -49,6 +49,6 @@ void Sculpt::gen_launcher_query_start_content(Xml_generator &xml)
|
||||
|
||||
gen_service_node<::File_system::Session>(xml, [&] {
|
||||
xml.node("parent", [&] {
|
||||
xml.attribute("label", "config"); }); });
|
||||
xml.attribute("identity", "config"); }); });
|
||||
});
|
||||
}
|
||||
|
@ -58,10 +58,10 @@ void Sculpt::gen_prepare_vfs_start(Xml_generator &xml)
|
||||
});
|
||||
|
||||
gen_named_node(xml, "dir", "rw", [&] {
|
||||
xml.node("fs", [&] { xml.attribute("label", "target"); }); });
|
||||
xml.node("fs", [&] { xml.attribute("label", "target -> /"); }); });
|
||||
|
||||
gen_named_node(xml, "dir", "config", [&] {
|
||||
xml.node("fs", [&] { xml.attribute("label", "config"); }); });
|
||||
xml.node("fs", [&] { xml.attribute("label", "config -> /"); }); });
|
||||
|
||||
gen_named_node(xml, "rom", "VERSION");
|
||||
});
|
||||
@ -184,7 +184,7 @@ void Sculpt::gen_prepare_start_content(Xml_generator &xml, Prepare_version versi
|
||||
xml.node("route", [&] {
|
||||
|
||||
gen_service_node<::File_system::Session>(xml, [&] {
|
||||
xml.attribute("label", "vfs -> target");
|
||||
xml.attribute("label_prefix", "vfs -> target ->");
|
||||
gen_named_node(xml, "child", "default_fs_rw"); });
|
||||
|
||||
gen_parent_rom_route(xml, "ld.lib.so");
|
||||
@ -203,7 +203,7 @@ void Sculpt::gen_prepare_start_content(Xml_generator &xml, Prepare_version versi
|
||||
gen_parent_route<Timer::Session> (xml);
|
||||
|
||||
gen_service_node<::File_system::Session>(xml, [&] {
|
||||
xml.attribute("label", "vfs -> config");
|
||||
xml.node("parent", [&] { xml.attribute("label", "config"); }); });
|
||||
xml.attribute("label_prefix", "vfs -> config ->");
|
||||
xml.node("parent", [&] { xml.attribute("identity", "config"); }); });
|
||||
});
|
||||
}
|
||||
|
@ -24,14 +24,14 @@ void Sculpt::gen_update_start_content(Xml_generator &xml)
|
||||
xml.node("route", [&] {
|
||||
|
||||
using Label = String<32>;
|
||||
auto gen_fs = [&] (Label const &label, Label const &server) {
|
||||
auto gen_fs = [&] (Label const &label_prefix, Label const &server) {
|
||||
gen_service_node<::File_system::Session>(xml, [&] {
|
||||
xml.attribute("label", label);
|
||||
xml.attribute("label_prefix", label_prefix);
|
||||
gen_named_node(xml, "child", server); }); };
|
||||
|
||||
/* connect file-system sessions to chroot instances */
|
||||
gen_fs("depot", "depot_rw");
|
||||
gen_fs("public", "public_rw");
|
||||
gen_fs("depot ->", "depot_rw");
|
||||
gen_fs("public ->", "public_rw");
|
||||
|
||||
gen_parent_rom_route(xml, "ld.lib.so");
|
||||
gen_parent_rom_route(xml, "vfs.lib.so");
|
||||
|
@ -316,9 +316,9 @@ void Sandboxed_runtime::Menu_view_state::gen_start_node(Xml_generator &xml, View
|
||||
|
||||
xml.node("service", [&] () {
|
||||
xml.attribute("name", "File_system");
|
||||
xml.attribute("label", "fonts");
|
||||
xml.attribute("label_prefix", "fonts ->");
|
||||
xml.node("parent", [&] () {
|
||||
xml.attribute("label", "fonts"); });
|
||||
xml.attribute("identity", "fonts"); });
|
||||
});
|
||||
|
||||
auto parent_route = [&] (auto const &service)
|
||||
|
@ -39,8 +39,8 @@
|
||||
<arg value="--demangled-names"/>
|
||||
<vfs>
|
||||
<dir name="dev"> <log/> </dir>
|
||||
<fs label="depot"/>
|
||||
<fs label="gcov_data"/>
|
||||
<fs label="depot -> /"/>
|
||||
<fs label="gcov_data -> /"/>
|
||||
</vfs>
|
||||
<libc stdout="/dev/log" stderr="/dev/log"/>
|
||||
</config>
|
||||
|
@ -39,8 +39,8 @@
|
||||
<fifo name="downstream"/>
|
||||
</pipe>
|
||||
</vfs>
|
||||
<policy label="fifo-pipe-test -> in" root="/.upstream/in" writeable="yes"/>
|
||||
<policy label="fifo-pipe-test -> out" root="/.downstream/out" writeable="no"/>
|
||||
<policy label_prefix="fifo-pipe-test -> in ->" root="/.upstream/in" writeable="yes"/>
|
||||
<policy label_prefix="fifo-pipe-test -> out ->" root="/.downstream/out" writeable="no"/>
|
||||
<default-policy root="/" writeable="yes"/>
|
||||
</config>
|
||||
</start>
|
||||
@ -70,8 +70,8 @@
|
||||
<config type="echo">
|
||||
<vfs>
|
||||
<dir name="dev">
|
||||
<fs label="downstream"/>
|
||||
<fs label="upstream"/>
|
||||
<fs label="downstream -> /"/>
|
||||
<fs label="upstream -> /"/>
|
||||
<log/>
|
||||
</dir>
|
||||
</vfs>
|
||||
@ -85,7 +85,7 @@
|
||||
</config>
|
||||
</inline>
|
||||
</vfs>
|
||||
<policy label="fs_rom -> " root="/" writeable="no"/>
|
||||
<policy label_prefix="fs_rom ->" root="/" writeable="no"/>
|
||||
</config>
|
||||
</start>
|
||||
|
||||
@ -118,10 +118,10 @@
|
||||
</dir>
|
||||
<dir name="dev">
|
||||
<dir name="send-pipe">
|
||||
<fs label="in"/>
|
||||
<fs label="in -> /"/>
|
||||
</dir>
|
||||
<dir name="receive-pipe">
|
||||
<fs label="out"/>
|
||||
<fs label="out -> /"/>
|
||||
</dir>
|
||||
<log/>
|
||||
</dir>
|
||||
|
@ -5,7 +5,7 @@
|
||||
<inline name="rtc">2018-01-01 00:01</inline>
|
||||
</dir>
|
||||
<dir name="pipe"> <pipe/> </dir>
|
||||
<dir name="edit"> <fs label="rw"/> </dir>
|
||||
<dir name="edit"> <fs label="rw -> /"/> </dir>
|
||||
<tar name="qt5_dejavusans.tar"/>
|
||||
<tar name="qt5_libqgenode.tar"/>
|
||||
</vfs>
|
||||
|
@ -10,8 +10,8 @@ multiple archives one at a time:
|
||||
! <libc stdout="/dev/log" stderr="/dev/log" rtc="/dev/null"
|
||||
! update_mtime="no"/>
|
||||
! <vfs>
|
||||
! <dir name="download"> <fs label="download"/> </dir>
|
||||
! <dir name="content"> <fs label="content" writeable="yes"/> </dir>
|
||||
! <dir name="download"> <fs label="download -> /"/> </dir>
|
||||
! <dir name="content"> <fs label="content -> /" writeable="yes"/> </dir>
|
||||
! <dir name="dev"> <log/> <null/> </dir>
|
||||
! </vfs>
|
||||
! <extract archive="/download/foo.zip" to="/content/foo123/" strip="1"/>
|
||||
|
@ -46,7 +46,7 @@ Use the socket plugin of an other vfs (store file in a directory):
|
||||
! <inline name="random">01234567890123456789</inline>
|
||||
! </dir>
|
||||
! <fs name="tcpip"/>
|
||||
! <dir name="download"> <fs label="download"/> </dir>
|
||||
! <dir name="download"> <fs label="download -> /"/> </dir>
|
||||
! </vfs>
|
||||
! <fetch url="http://genode.org/about/LICENSE"
|
||||
! path="/download/LICENSE" retry="3"/>
|
||||
|
@ -52,7 +52,7 @@ struct Gcov_env
|
||||
* VFS.
|
||||
*/
|
||||
|
||||
File_system::Connection fs { env, fs_alloc, "gcov_data" };
|
||||
File_system::Connection fs { env, fs_alloc, "gcov_data -> /" };
|
||||
seek_off_t seek_offset { 0 };
|
||||
|
||||
Io_signal_handler<Gcov_env> _fs_signal_handler {
|
||||
|
@ -58,22 +58,19 @@ struct File_system::Connection : Genode::Connection<Session>, Session_client
|
||||
*
|
||||
* \param tx_buffer_alloc allocator used for managing the
|
||||
* transmission buffer
|
||||
* \param label session label
|
||||
* \param root root directory of session
|
||||
* \param label session label and client-preferred root directory
|
||||
* \param writeable session is writeable
|
||||
* \param tx_buf_size size of transmission buffer in bytes
|
||||
*/
|
||||
Connection(Genode::Env &env,
|
||||
Genode::Range_allocator &tx_block_alloc,
|
||||
Label const &label = Label(),
|
||||
char const *root = "/",
|
||||
Label const &label = Label("/"),
|
||||
bool writeable = true,
|
||||
size_t tx_buf_size = DEFAULT_TX_BUF_SIZE)
|
||||
:
|
||||
Genode::Connection<Session>(env, label,
|
||||
Ram_quota { 8*1024*sizeof(long) + tx_buf_size },
|
||||
Args("root=\"", root, "\", "
|
||||
"writeable=", writeable, ", "
|
||||
Args("writeable=", writeable, ", "
|
||||
"tx_buf_size=", tx_buf_size)),
|
||||
Session_client(cap(), tx_block_alloc, env.rm())
|
||||
{ }
|
||||
|
@ -34,7 +34,7 @@
|
||||
<provides> <service name="Report"/> </provides>
|
||||
<config> <vfs> <fs/> </vfs> </config>
|
||||
<route>
|
||||
<service name="File_system"> <parent label="recall"/> </service>
|
||||
<service name="File_system"> <parent identity="recall"/> </service>
|
||||
<any-service> <parent/> </any-service>
|
||||
</route>
|
||||
</start>
|
||||
@ -43,7 +43,7 @@
|
||||
<provides> <service name="ROM"/> </provides>
|
||||
<config/>
|
||||
<route>
|
||||
<service name="File_system"> <parent label="recall"/> </service>
|
||||
<service name="File_system"> <parent identity="recall"/> </service>
|
||||
<any-service> <parent/> </any-service>
|
||||
</route>
|
||||
</start>
|
||||
|
@ -47,7 +47,7 @@ install_config {
|
||||
|
||||
<start name="lx_fs" ld="no" caps="100" ram="4M">
|
||||
<provides> <service name="File_system"/> </provides>
|
||||
<config> <policy label="test-internet_checksum -> " root="/} $lx_fs_root {" writeable="yes"/> </config>
|
||||
<config> <policy label_prefix="test-internet_checksum -> " root="/} $lx_fs_root {" writeable="yes"/> </config>
|
||||
<route> <any-service> <parent/> </any-service> </route>
|
||||
</start>
|
||||
|
||||
|
@ -45,7 +45,7 @@ install_config {
|
||||
<service name="File_system"/>
|
||||
</provides>
|
||||
<config>
|
||||
<policy label="import_showcase -> " root="/" writeable="yes"/>
|
||||
<policy label_prefix="import_showcase ->" root="/" writeable="yes"/>
|
||||
</config>
|
||||
<route>
|
||||
<any-service> <parent/> <any-child/> </any-service>
|
||||
|
@ -49,8 +49,8 @@ install_config {
|
||||
</inline>
|
||||
</import>
|
||||
</vfs>
|
||||
<policy label="fs_report -> " root="/" writeable="yes"/>
|
||||
<policy label="report_fs_rom -> " root="/"/>
|
||||
<policy label_prefix="fs_report ->" root="/" writeable="yes"/>
|
||||
<policy label_prefix="report_fs_rom ->" root="/"/>
|
||||
</config>
|
||||
</start>
|
||||
|
||||
|
@ -34,9 +34,6 @@ class Vfs::Fs_file_system : public File_system, private Remote_io
|
||||
using Label_string = Genode::String<64>;
|
||||
Label_string _label;
|
||||
|
||||
using Root_string = Genode::String<::File_system::MAX_NAME_LEN>;
|
||||
Root_string _root;
|
||||
|
||||
::File_system::Connection _fs;
|
||||
|
||||
bool _write_would_block = false;
|
||||
@ -568,13 +565,17 @@ class Vfs::Fs_file_system : public File_system, private Remote_io
|
||||
Fs_file_system(Vfs::Env &env, Genode::Xml_node config)
|
||||
:
|
||||
_env(env),
|
||||
_label(config.attribute_value("label", Label_string())),
|
||||
_root( config.attribute_value("root", Root_string())),
|
||||
_label(config.attribute_value("label", Label_string("/"))),
|
||||
_fs(_env.env(), _fs_packet_alloc,
|
||||
_label.string(), _root.string(),
|
||||
_label,
|
||||
config.attribute_value("writeable", true),
|
||||
buffer_size(config))
|
||||
{
|
||||
if (config.has_attribute("root")) {
|
||||
Genode::warning("vfs: <fs> node uses deprecated 'root' attribute.");
|
||||
Genode::warning(" Append the root dir to the label instead.");
|
||||
}
|
||||
|
||||
_fs.sigh(_signal_handler);
|
||||
}
|
||||
|
||||
|
@ -290,7 +290,7 @@ struct Cached_fs_rom::Main final : Genode::Session_request_handler
|
||||
Heap heap { env.pd(), env.rm() };
|
||||
|
||||
Allocator_avl fs_tx_block_alloc { &heap };
|
||||
File_system::Connection fs { env, fs_tx_block_alloc, "", "/", false, 4*1024*1024 };
|
||||
File_system::Connection fs { env, fs_tx_block_alloc, "/", false, 4*1024*1024 };
|
||||
|
||||
Session_requests_rom session_requests { env, *this };
|
||||
|
||||
|
@ -64,7 +64,7 @@ struct Chroot::Main
|
||||
* File-system session for creating new chroot directories
|
||||
*/
|
||||
File_system::Connection fs {
|
||||
env, fs_tx_block_alloc, "", "/", true, 1 };
|
||||
env, fs_tx_block_alloc, "/", true, 1 };
|
||||
|
||||
Attached_rom_dataspace session_requests { env, "session_requests" };
|
||||
|
||||
@ -118,7 +118,7 @@ struct Chroot::Main
|
||||
/* Use a chroot path from policy and label sub-directories */
|
||||
Prefix const prefix = policy.attribute_value("path_prefix", Prefix());
|
||||
root_path.import(prefix.string());
|
||||
root_path.append(path_from_label<Path>(label.string()).string());
|
||||
root_path.append(path_from_label<Path>(label.prefix().string()).string());
|
||||
} else if (policy.has_attribute("path")) {
|
||||
/* Use a chroot path from policy */
|
||||
root_path.import(policy.attribute_value("path", Prefix()).string());
|
||||
@ -127,14 +127,23 @@ struct Chroot::Main
|
||||
root_path = path_from_label<Path>(label.string());
|
||||
}
|
||||
|
||||
/* extract and append the session argument */
|
||||
/* append client-provided path */
|
||||
{
|
||||
char tmp[PATH_MAX_LEN];
|
||||
Arg_string::find_arg(args.string(), "root").string(tmp, sizeof(tmp), "/");
|
||||
root_path.append_element(tmp);
|
||||
Session_label const client_root_path = label.last_element();
|
||||
bool root_path_valid = true;
|
||||
if (client_root_path.string()[0] != '/') {
|
||||
warning(label, ": last label element should start with /");
|
||||
root_path_valid = false;
|
||||
}
|
||||
|
||||
if (client_root_path.string()[min(1ul, client_root_path.length()) - 1] != '/') {
|
||||
warning(label, ": last label element should end with /");
|
||||
root_path_valid = false;
|
||||
}
|
||||
if (!root_path_valid)
|
||||
throw Service_denied();
|
||||
root_path.append(client_root_path.string());
|
||||
root_path.remove_trailing('/');
|
||||
}
|
||||
|
||||
char const *new_root = root_path.base();
|
||||
|
||||
@ -179,7 +188,11 @@ struct Chroot::Main
|
||||
Arg_string::set_arg(new_args, ARGS_MAX_LEN, "writeable", writeable);
|
||||
}
|
||||
|
||||
Arg_string::set_arg_string(new_args, ARGS_MAX_LEN, "root", new_root);
|
||||
/* replace last label element by new root path */
|
||||
Session_label const rewritten_label =
|
||||
prefixed_label(label.prefix(), Session_label(root_path.string(), "/"));
|
||||
|
||||
Arg_string::set_arg_string(new_args, ARGS_MAX_LEN, "label", rewritten_label.string());
|
||||
|
||||
return env.session("File_system", id, new_args, affinity);
|
||||
}
|
||||
|
@ -923,13 +923,20 @@ class Vfs_server::Root : public Genode::Root_component<Session_component>,
|
||||
|
||||
/* apply client's root offset. */
|
||||
{
|
||||
char tmp[MAX_PATH_LEN] { };
|
||||
Arg_string::find_arg(args, "root").string(tmp, sizeof(tmp), "/");
|
||||
if (Genode::strcmp("/", tmp, sizeof(tmp))) {
|
||||
session_root.append("/");
|
||||
session_root.append(tmp);
|
||||
session_root.remove_trailing('/');
|
||||
Session_label const client_root_path = label.last_element();
|
||||
bool root_path_valid = true;
|
||||
if (client_root_path.string()[0] != '/') {
|
||||
warning(label, ": last label element should start with /");
|
||||
root_path_valid = false;
|
||||
}
|
||||
if (client_root_path.string()[min(1ul, client_root_path.length()) - 1] != '/') {
|
||||
warning(label, ": last label element should end with /");
|
||||
root_path_valid = false;
|
||||
}
|
||||
if (!root_path_valid)
|
||||
throw Service_denied();
|
||||
session_root.append(client_root_path.string());
|
||||
session_root.remove_trailing('/');
|
||||
}
|
||||
|
||||
/* check if the session root exists */
|
||||
|
@ -14,14 +14,14 @@ component:
|
||||
! <config>
|
||||
!
|
||||
! <vfs>
|
||||
! <fs buffer_size="2M" label="backend"/>
|
||||
! <fs buffer_size="2M" label="backend -> /"/>
|
||||
! </vfs>
|
||||
!
|
||||
! <policy label_prefix="client"
|
||||
! file="/vfs_block.img" block_size="512" writeable="yes"/>
|
||||
! </config>
|
||||
! <route>
|
||||
! <service name="File_system" label="backend">
|
||||
! <service name="File_system" label_prefix="backend ->">
|
||||
! <child name="fs_provider"/> </service>
|
||||
! <any-service> <parent/> </any-service>
|
||||
! </route>
|
||||
|
@ -36,7 +36,7 @@ struct Fs_packet::Main
|
||||
|
||||
Heap _heap { _env.pd(), _env.rm() };
|
||||
Allocator_avl _avl_alloc { &_heap };
|
||||
File_system::Connection _fs { _env, _avl_alloc, "", "/", false, 4<<10 };
|
||||
File_system::Connection _fs { _env, _avl_alloc, "/", false, 4<<10 };
|
||||
|
||||
File_system::Session::Tx::Source &_tx { *_fs.tx() };
|
||||
|
||||
|
@ -19,7 +19,7 @@
|
||||
<service name="ROM" label="hover"> <child name="wm"/> </service>
|
||||
<service name="ROM" label="decorator_margins"> <child name="wm"/> </service>
|
||||
<service name="Report"> <child name="wm"/> </service>
|
||||
<service name="File_system" label="recall">
|
||||
<service name="File_system" label_prefix="recall ->">
|
||||
<child name="recall_fs"/>
|
||||
</service>
|
||||
</route>
|
||||
@ -62,7 +62,7 @@
|
||||
|
||||
<start name="fs_rom" priority="-2" pkg="jschlatow/pkg/fs_rom/2024-10-07">
|
||||
<route>
|
||||
<service name="File_system"> <parent label="report"/> </service>
|
||||
<service name="File_system"> <parent identity="report"/> </service>
|
||||
</route>
|
||||
</start>
|
||||
|
||||
|
@ -36,7 +36,7 @@ dir-listing.activate = "enable"
|
||||
</inline>
|
||||
</dir>
|
||||
</dir>
|
||||
<dir name="webroot"> <fs label="webroot"/> </dir>
|
||||
<dir name="webroot"> <fs label="webroot -> /"/> </dir>
|
||||
<dir name="tmp"> <ram/> </dir>
|
||||
</vfs>
|
||||
<libc stdin="/dev/null" stdout="/dev/log" stderr="/dev/log"
|
||||
|
@ -49,8 +49,8 @@
|
||||
<default-policy root="/" writeable="yes"/>
|
||||
</config>
|
||||
<route>
|
||||
<service name="File_system" label="target"> <parent label="target"/> </service>
|
||||
<service name="File_system" label="report"> <parent label="report"/> </service>
|
||||
<service name="File_system" label="target"> <parent label="target -> /"/> </service>
|
||||
<service name="File_system" label="report"> <parent label="report -> /"/> </service>
|
||||
<any-service> <parent/> </any-service>
|
||||
</route>
|
||||
</start>
|
||||
|
@ -68,8 +68,8 @@
|
||||
</config>
|
||||
<route>
|
||||
<service name="Audio_out"> <parent/> </service>
|
||||
<service name="File_system" label="shared"> <parent label="shared"/> </service>
|
||||
<service name="File_system"> <parent label="vm"/> </service>
|
||||
<service name="File_system" label="shared"> <parent label="shared -> /"/> </service>
|
||||
<service name="File_system"> <parent label="vm -> /"/> </service>
|
||||
<service name="ROM" label="capslock"> <parent label="capslock"/> </service>
|
||||
<service name="ROM" label="platform_info">
|
||||
<parent label="platform_info"/> </service>
|
||||
|
@ -29,10 +29,10 @@
|
||||
<oss name="dsp" min_ofrag_size="8192" min_ifrag_size="8192"/>
|
||||
</dir>
|
||||
<dir name="pipe"> <pipe/> </dir>
|
||||
<dir name="shared"> <fs label="shared" writeable="yes"/> </dir>
|
||||
<dir name="shared"> <fs label="shared -> /" writeable="yes"/> </dir>
|
||||
<rom name="VBoxSharedClipboard.so"/>
|
||||
<rom name="VBoxSharedFolders.so"/>
|
||||
<fs label="vm" writeable="yes"/>
|
||||
<fs label="vm -> /" writeable="yes"/>
|
||||
</vfs>
|
||||
<libc stdout="/dev/log" stderr="/dev/log" rtc="/dev/rtc" pipe="/pipe">
|
||||
<pthread placement="single-cpu"/>
|
||||
|
@ -28,10 +28,10 @@
|
||||
<oss name="dsp" min_ofrag_size="8192" min_ifrag_size="8192"/>
|
||||
</dir>
|
||||
<dir name="pipe"> <pipe/> </dir>
|
||||
<dir name="shared"> <fs label="shared" writeable="yes"/> </dir>
|
||||
<dir name="shared"> <fs label="shared -> /" writeable="yes"/> </dir>
|
||||
<rom name="VBoxSharedClipboard.so"/>
|
||||
<rom name="VBoxSharedFolders.so"/>
|
||||
<fs label="vm" writeable="yes"/>
|
||||
<fs label="vm -> /" writeable="yes"/>
|
||||
</vfs>
|
||||
<libc stdout="/dev/log" stderr="/dev/log" rtc="/dev/rtc" pipe="/pipe">
|
||||
<pthread placement="single-cpu"/>
|
||||
|
@ -41,7 +41,7 @@
|
||||
<default-policy root="/" writeable="no"/>
|
||||
</config>
|
||||
<route>
|
||||
<service name="File_system" label="depot">
|
||||
<service name="File_system" label_prefix="depot ->">
|
||||
<child name="depot_ro"/>
|
||||
</service>
|
||||
<any-service> <parent/> </any-service>
|
||||
@ -56,10 +56,10 @@
|
||||
</vfs>
|
||||
</config>
|
||||
<route>
|
||||
<service name="File_system" label="config">
|
||||
<parent label="system_config"/>
|
||||
<service name="File_system" label_prefix="config ->">
|
||||
<parent identity="system_config"/>
|
||||
</service>
|
||||
<service name="File_system" label="debug">
|
||||
<service name="File_system" label_prefix="debug ->">
|
||||
<child name="vfs"/>
|
||||
</service>
|
||||
<service name="ROM" label="build_info">
|
||||
|
@ -22,7 +22,7 @@
|
||||
<vfs> <dir name="fonts"> <fs/> </dir> </vfs>
|
||||
</config>
|
||||
<route>
|
||||
<service name="File_system"> <parent label="fonts"/> </service>
|
||||
<service name="File_system"> <parent identity="fonts"/> </service>
|
||||
<service name="Gui"> <parent label="terminal"/> </service>
|
||||
<service name="Report" label="clipboard"> <parent label="clipboard"/> </service>
|
||||
<service name="ROM" label="clipboard"> <parent label="clipboard"/> </service>
|
||||
@ -55,9 +55,9 @@
|
||||
<default-policy root="/" writeable="yes"/>
|
||||
</config>
|
||||
<route>
|
||||
<service name="File_system" label="target"> <parent label="target"/> </service>
|
||||
<service name="File_system" label="config"> <parent label="config"/> </service>
|
||||
<service name="File_system" label="report"> <parent label="report"/> </service>
|
||||
<service name="File_system" label="target"> <parent label="target -> /"/> </service>
|
||||
<service name="File_system" label="config"> <parent label="config -> /"/> </service>
|
||||
<service name="File_system" label="report"> <parent label="report -> /"/> </service>
|
||||
<service name="ROM" label="vimrc"> <parent label="vimrc"/> </service>
|
||||
<service name="Terminal"> <child name="terminal"/> </service>
|
||||
<any-service> <parent/> </any-service>
|
||||
|
@ -28,15 +28,15 @@
|
||||
<log/>
|
||||
<rtc/>
|
||||
</dir>
|
||||
<dir name="shared"> <fs label="shared" writeable="yes"/> </dir>
|
||||
<dir name="shared"> <fs label="shared -> /" writeable="yes"/> </dir>
|
||||
<fs writeable="yes"/>
|
||||
</vfs>
|
||||
<libc stdout="/dev/log" stderr="/dev/log" rtc="/dev/rtc"/>
|
||||
</config>
|
||||
<route>
|
||||
<service name="Audio_out"> <parent/> </service>
|
||||
<service name="File_system" label="shared"> <parent label="shared"/> </service>
|
||||
<service name="File_system"> <parent label="vm"/> </service>
|
||||
<service name="File_system" label_prefix="shared ->"> <parent identity="shared"/> </service>
|
||||
<service name="File_system"> <parent identity="vm"/> </service>
|
||||
<service name="ROM" label="capslock"> <parent label="capslock"/> </service>
|
||||
<service name="ROM" label="platform_info">
|
||||
<parent label="platform_info"/> </service>
|
||||
|
@ -207,8 +207,8 @@ set config_of_app {
|
||||
<tar name="coreutils.tar"/>
|
||||
<tar name="bash.tar"/>
|
||||
|
||||
<dir name="from"> <fs label="share_from"/> </dir>
|
||||
<dir name="to"> <fs label="share_to"/> </dir>
|
||||
<dir name="from"> <fs label="share_from -> /"/> </dir>
|
||||
<dir name="to"> <fs label="share_to -> /"/> </dir>
|
||||
|
||||
<dir name="tmp"> <ram/> </dir>
|
||||
<dir name="dev">
|
||||
@ -222,10 +222,10 @@ set config_of_app {
|
||||
<default-policy root="/" writeable="yes"/>
|
||||
</config>
|
||||
<route>
|
||||
<service name="File_system" label="share_from">
|
||||
<service name="File_system" label_prefix="share_from ->">
|
||||
<child name="ram_fs_from"/>
|
||||
</service>
|
||||
<service name="File_system" label="share_to">
|
||||
<service name="File_system" label_prefix="share_to ->">
|
||||
<child name="ram_fs_to"/>
|
||||
</service>
|
||||
<any-service> <parent/> <any-child/> </any-service>
|
||||
@ -342,11 +342,11 @@ append config_of_app {
|
||||
<rom name="} $vbox_file {"/>}
|
||||
|
||||
append_if [expr $use_ram_fs] config_of_app {
|
||||
<dir name="ram"> <fs label="from_ram_fs"/> </dir>}
|
||||
<dir name="ram"> <fs label="from_ram_fs -> /"/> </dir>}
|
||||
|
||||
append config_of_app {
|
||||
<dir name="from"> <fs label="share_ram_fs_from"/> </dir>
|
||||
<dir name="to"> <fs label="share_ram_fs_to"/> </dir>
|
||||
<dir name="from"> <fs label="share_ram_fs_from -> /"/> </dir>
|
||||
<dir name="to"> <fs label="share_ram_fs_to -> /"/> </dir>
|
||||
<fs/>
|
||||
</vfs>
|
||||
</config>
|
||||
@ -354,15 +354,15 @@ append config_of_app {
|
||||
<service name="Report"> <child name="report_rom"/> </service>}
|
||||
|
||||
append_if [expr $use_ram_fs] config_of_app {
|
||||
<service name="File_system" label="from_ram_fs">
|
||||
<service name="File_system" label_prefix="from_ram_fs ->">
|
||||
<child name="ram_fs"/>
|
||||
</service>}
|
||||
|
||||
append config_of_app {
|
||||
<service name="File_system" label="share_ram_fs_from">
|
||||
<service name="File_system" label_prefix="share_ram_fs_from ->">
|
||||
<child name="ram_fs_from"/>
|
||||
</service>
|
||||
<service name="File_system" label="share_ram_fs_to">
|
||||
<service name="File_system" label_prefix="share_ram_fs_to ->">
|
||||
<child name="ram_fs_to"/>
|
||||
</service>
|
||||
<service name="File_system"> <child name="rump_fs"/> </service>
|
||||
|
@ -276,7 +276,7 @@ for { set i 1} { $i <= $use_vms } { incr i} {
|
||||
<dir name="pipe"> <pipe/> </dir>}
|
||||
|
||||
append_if [expr $use_ram_fs] config_of_app {
|
||||
<dir name="ram"> <fs label="from_ram_fs"/> </dir>}
|
||||
<dir name="ram"> <fs label="from_ram_fs -> /"/> </dir>}
|
||||
|
||||
append config_of_app "
|
||||
<rom name=\"${vbox_file}\"/>"
|
||||
@ -295,7 +295,7 @@ for { set i 1} { $i <= $use_vms } { incr i} {
|
||||
<service name="Gui"> <child name="wm"/> </service>}
|
||||
|
||||
append_if [expr $use_ram_fs] config_of_app {
|
||||
<service name="File_system" label="from_ram_fs"> <child name="ram_fs"/> </service>}
|
||||
<service name="File_system" label_prefix="from_ram_fs ->"> <child name="ram_fs"/> </service>}
|
||||
|
||||
append_if [expr $use_rumpfs] config_of_app {
|
||||
<service name="File_system"> <child name="rump_fs"/> </service>}
|
||||
|
Loading…
x
Reference in New Issue
Block a user