Replace use of ram_fs by VFS server

Issue #3734
This commit is contained in:
Norman Feske
2020-04-20 14:00:57 +02:00
parent f0c4fc1e22
commit f14cc2edab
28 changed files with 178 additions and 120 deletions

View File

@ -7,9 +7,10 @@ set build_components {
drivers/framebuffer/intel drivers/framebuffer/intel
test/framebuffer test/framebuffer
server/report_rom server/report_rom
server/ram_fs server/vfs
server/fs_rom server/fs_rom
app/top app/top
lib/vfs/import
} }
source ${genode_dir}/repos/base/run/platform_drv.inc source ${genode_dir}/repos/base/run/platform_drv.inc
@ -96,17 +97,20 @@ append config {
</start> </start>
<start name="config_fs" priority="-1"> <start name="config_fs" priority="-1">
<binary name="ram_fs"/> <binary name="vfs"/>
<resource name="RAM" quantum="8M"/> <resource name="RAM" quantum="8M"/>
<provides> <service name="File_system"/> </provides> <provides> <service name="File_system"/> </provides>
<config> <config>
<content> <vfs>
<inline name="fb_drv.config"> <ram/>
<import>
<inline name="fb_drv.config">
<config ld_verbose="yes"> <config ld_verbose="yes">
<report connectors="yes"/> <report connectors="yes"/>
</config> </config>
</inline> </inline>
</content> </import>
</vfs>
<policy label_prefix="config_rom" root="/"/> <policy label_prefix="config_rom" root="/"/>
<policy label_prefix="intel_fb_controller" root="/" writeable="yes"/> <policy label_prefix="intel_fb_controller" root="/" writeable="yes"/>
</config> </config>
@ -159,7 +163,7 @@ install_config $config
# generic modules # generic modules
set boot_modules { set boot_modules {
core ld.lib.so init timer intel_fb_drv intel_fb_controller core ld.lib.so init timer intel_fb_drv intel_fb_controller
test-framebuffer report_rom ram_fs fs_rom test-framebuffer report_rom fs_rom vfs vfs.lib.so vfs_import.lib.so
top top
} }

View File

@ -6,7 +6,6 @@ _/pkg/backdrop
_/src/report_rom _/src/report_rom
_/src/clipboard _/src/clipboard
_/src/init _/src/init
_/src/ram_fs
_/src/fs_rom _/src/fs_rom
_/src/cached_fs_rom _/src/cached_fs_rom
_/src/fs_report _/src/fs_report

View File

@ -4,7 +4,6 @@ import_from_depot [depot_user]/src/[base_src] \
[depot_user]/pkg/[drivers_interactive_pkg] \ [depot_user]/pkg/[drivers_interactive_pkg] \
[depot_user]/src/report_rom \ [depot_user]/src/report_rom \
[depot_user]/src/fs_rom \ [depot_user]/src/fs_rom \
[depot_user]/src/ram_fs \
[depot_user]/src/vfs \ [depot_user]/src/vfs \
[depot_user]/src/nitpicker \ [depot_user]/src/nitpicker \
[depot_user]/src/init \ [depot_user]/src/init \
@ -125,8 +124,10 @@ install_config {
<start name="ram_fs"> <start name="ram_fs">
<resource name="RAM" quantum="8M"/> <resource name="RAM" quantum="8M"/>
<binary name="vfs"/>
<provides> <service name="File_system"/> </provides> <provides> <service name="File_system"/> </provides>
<config> <config>
<vfs> <ram/> </vfs>
<default-policy root="/" writeable="yes"/> <default-policy root="/" writeable="yes"/>
</config> </config>
</start> </start>

View File

@ -8,7 +8,6 @@ import_from_depot [depot_user]/src/[base_src] \
[depot_user]/src/report_rom \ [depot_user]/src/report_rom \
[depot_user]/src/fs_rom \ [depot_user]/src/fs_rom \
[depot_user]/src/fs_report \ [depot_user]/src/fs_report \
[depot_user]/src/ram_fs \
[depot_user]/src/nitpicker \ [depot_user]/src/nitpicker \
[depot_user]/src/init \ [depot_user]/src/init \
[depot_user]/src/libc \ [depot_user]/src/libc \
@ -34,6 +33,7 @@ import_from_depot [depot_user]/src/[base_src] \
[depot_user]/src/coreutils-minimal \ [depot_user]/src/coreutils-minimal \
[depot_user]/src/fs_utils \ [depot_user]/src/fs_utils \
[depot_user]/src/vfs_pipe \ [depot_user]/src/vfs_pipe \
[depot_user]/src/vfs_import \
[depot_user]/src/stdin2out \ [depot_user]/src/stdin2out \
[depot_user]/src/gpt_write \ [depot_user]/src/gpt_write \
[depot_user]/src/text_area \ [depot_user]/src/text_area \
@ -118,18 +118,21 @@ install_config {
</start> </start>
<start name="config_fs"> <start name="config_fs">
<binary name="ram_fs"/> <binary name="vfs"/>
<resource name="RAM" quantum="4M"/> <resource name="RAM" quantum="4M"/>
<provides> <service name="File_system"/> </provides> <provides> <service name="File_system"/> </provides>
<config> <config>
<content> <vfs>
<dir name="managed"> <ram/>
<rom name="fonts.config" as="fonts"/> <import>
<inline name="runtime"><config/></inline> <dir name="managed">
<inline name="depot_query"><query/></inline> <rom name="fonts" label="fonts.config"/>
</dir> <inline name="runtime"><config/></inline>
<inline name="deploy"></inline> <inline name="depot_query"><query/></inline>
</content> </dir>
<inline name="deploy"></inline>
</import>
</vfs>
<default-policy root="/" writeable="yes"/> <default-policy root="/" writeable="yes"/>
</config> </config>
</start> </start>
@ -146,11 +149,16 @@ install_config {
</start> </start>
<start name="report_fs"> <start name="report_fs">
<binary name="ram_fs"/> <binary name="vfs"/>
<resource name="RAM" quantum="4M"/> <resource name="RAM" quantum="4M"/>
<provides> <service name="File_system"/> </provides> <provides> <service name="File_system"/> </provides>
<config> <config>
<content> <inline name="log">See the core log for messages.</inline> </content> <vfs>
<ram/>
<import>
<inline name="log">See the core log for messages.</inline>
</import>
</vfs>
<policy label="ro" root="/"/> <policy label="ro" root="/"/>
<default-policy root="/" writeable="yes"/> <default-policy root="/" writeable="yes"/>
</config> </config>

View File

@ -149,23 +149,26 @@ install_config {
</start> </start>
<start name="report_fs"> <start name="report_fs">
<binary name="ram_fs"/> <binary name="vfs"/>
<resource name="RAM" quantum="16M"/> <resource name="RAM" quantum="16M"/>
<provides> <service name="File_system"/> </provides> <provides> <service name="File_system"/> </provides>
<config> <config>
<content> <vfs>
<inline name="log">### start ###</inline> <ram/>
<dir name="runtime"> <import>
<inline name="state"><empty/></inline> <inline name="log">### start ###</inline>
<dir name="wifi_drv"> <dir name="runtime">
<inline name="accesspoints"><empty/></inline> <inline name="state"><empty/></inline>
<inline name="state"> <empty/></inline> <dir name="wifi_drv">
<inline name="accesspoints"><empty/></inline>
<inline name="state"> <empty/></inline>
</dir>
<dir name="nic_router"> <inline name="state"> <empty/></inline> </dir>
<dir name="update"> <inline name="state"> <empty/></inline> </dir>
<dir name="depot_query"><inline name="blueprint"><empty/></inline> </dir>
</dir> </dir>
<dir name="nic_router"> <inline name="state"> <empty/></inline> </dir> </import>
<dir name="update"> <inline name="state"> <empty/></inline> </dir> </vfs>
<dir name="depot_query"><inline name="blueprint"><empty/></inline> </dir>
</dir>
</content>
<policy label="fs_report -> " root="/" writeable="yes"/> <policy label="fs_report -> " root="/" writeable="yes"/>
<policy label="log_terminal -> " root="/" writeable="yes"/> <policy label="log_terminal -> " root="/" writeable="yes"/>
<policy label="report_fs_rom -> " root="/"/> <policy label="report_fs_rom -> " root="/"/>

View File

@ -33,7 +33,6 @@ import_from_depot [depot_user]/src/[base_src] \
[depot_user]/src/libssh \ [depot_user]/src/libssh \
[depot_user]/src/platform_drv \ [depot_user]/src/platform_drv \
[depot_user]/src/posix \ [depot_user]/src/posix \
[depot_user]/src/ram_fs \
[depot_user]/src/fs_rom \ [depot_user]/src/fs_rom \
[depot_user]/src/rtc_drv \ [depot_user]/src/rtc_drv \
[depot_user]/src/ssh_terminal \ [depot_user]/src/ssh_terminal \
@ -90,8 +89,10 @@ set config {
<start name="ram_fs"> <start name="ram_fs">
<resource name="RAM" quantum="8M"/> <resource name="RAM" quantum="8M"/>
<binary name="vfs"/>
<provides> <service name="File_system"/> </provides> <provides> <service name="File_system"/> </provides>
<config> <config>
<vfs> <ram/> </vfs>
<default-policy root="/" writeable="yes"/> <default-policy root="/" writeable="yes"/>
</config> </config>
<route> <route>

View File

@ -350,8 +350,8 @@ example containing all of these variables:
! make run/depot_autopilot \ ! make run/depot_autopilot \
! > TEST_PKGS="test-libc_vfs test-log" \ ! > TEST_PKGS="test-libc_vfs test-log" \
! > TEST_SRCS="test-xml_generator test-xml_node" \ ! > TEST_SRCS="test-xml_generator test-xml_node" \
! > TEST_BUILDS="server/ram_fs test/libc_vfs" \ ! > TEST_BUILDS="server/vfs test/libc_vfs" \
! > TEST_MODULES="ram_fs test-libc_vfs vfs.lib.so" \ ! > TEST_MODULES="vfs test-libc_vfs vfs.lib.so" \
! > TEST_REPEAT="until_failed" \ ! > TEST_REPEAT="until_failed" \
! > KERNEL="nova" ! > KERNEL="nova"

View File

@ -18,9 +18,12 @@ void Sculpt::gen_ram_fs_start_content(Xml_generator &xml,
{ {
state.gen_start_node_content(xml); state.gen_start_node_content(xml);
xml.node("binary", [&] () { xml.attribute("name", "vfs"); });
gen_provides<::File_system::Session>(xml); gen_provides<::File_system::Session>(xml);
xml.node("config", [&] () { xml.node("config", [&] () {
xml.node("vfs", [&] () { xml.node("ram", [&] () { }); });
xml.node("default-policy", [&] () { xml.node("default-policy", [&] () {
xml.attribute("root", "/"); xml.attribute("root", "/");
xml.attribute("writeable", "yes"); xml.attribute("writeable", "yes");
@ -28,8 +31,9 @@ void Sculpt::gen_ram_fs_start_content(Xml_generator &xml,
}); });
xml.node("route", [&] () { xml.node("route", [&] () {
gen_parent_rom_route(xml, "ram_fs"); gen_parent_rom_route(xml, "vfs");
gen_parent_rom_route(xml, "ld.lib.so"); gen_parent_rom_route(xml, "ld.lib.so");
gen_parent_rom_route(xml, "vfs.lib.so");
gen_parent_route<Cpu_session> (xml); gen_parent_route<Cpu_session> (xml);
gen_parent_route<Pd_session> (xml); gen_parent_route<Pd_session> (xml);
gen_parent_route<Log_session> (xml); gen_parent_route<Log_session> (xml);

View File

@ -1,5 +1,4 @@
_/src/init _/src/init
_/src/test-libc_vfs _/src/test-libc_vfs
_/src/ram_fs
_/src/libc _/src/libc
_/src/vfs _/src/vfs

View File

@ -10,7 +10,7 @@
<rom label="ld.lib.so"/> <rom label="ld.lib.so"/>
<rom label="libc.lib.so"/> <rom label="libc.lib.so"/>
<rom label="vfs.lib.so"/> <rom label="vfs.lib.so"/>
<rom label="ram_fs"/> <rom label="vfs"/>
<rom label="test-libc_vfs"/> <rom label="test-libc_vfs"/>
</content> </content>
@ -28,13 +28,17 @@
<default caps="100"/> <default caps="100"/>
<start name="ram_fs"> <start name="ram_fs">
<resource name="RAM" quantum="12M"/> <resource name="RAM" quantum="12M"/>
<binary name="vfs"/>
<provides> <service name="File_system"/> </provides> <provides> <service name="File_system"/> </provides>
<config> <default-policy root="/" writeable="yes"/> </config> <config>
<vfs> <ram/> </vfs>
<default-policy root="/" writeable="yes"/>
</config>
</start> </start>
<start name="test-libc_vfs"> <start name="test-libc_vfs">
<resource name="RAM" quantum="4M"/> <resource name="RAM" quantum="4M"/>
<config> <config>
<iterations value="1"/>} <iterations value="1"/>
<write-read size="1M" buffer_size="8K"/> <write-read size="1M" buffer_size="8K"/>
<vfs> <vfs>
<dir name="tmp"> <fs/> </dir> <dir name="tmp"> <fs/> </dir>

View File

@ -4,7 +4,7 @@ import_from_depot [depot_user]/src/qt5_component \
[depot_user]/src/qt5_printsupport \ [depot_user]/src/qt5_printsupport \
[depot_user]/src/qt5_textedit \ [depot_user]/src/qt5_textedit \
[depot_user]/src/qt5_widgets \ [depot_user]/src/qt5_widgets \
[depot_user]/src/ram_fs [depot_user]/src/vfs
# #
# Build # Build
@ -41,8 +41,10 @@ append config [qt5_start_nodes feature]
append config { append config {
<start name="ram_fs"> <start name="ram_fs">
<resource name="RAM" quantum="10M"/> <resource name="RAM" quantum="10M"/>
<binary name="vfs"/>
<provides><service name="File_system"/></provides> <provides><service name="File_system"/></provides>
<config> <config>
<vfs> <ram/> </vfs>
<!-- constrain sessions according to their labels --> <!-- constrain sessions according to their labels -->
<policy label_prefix="textedit" root="/" writeable="yes" /> <policy label_prefix="textedit" root="/" writeable="yes" />
<policy label_prefix="textedit2" root="/" writeable="yes" /> <policy label_prefix="textedit2" root="/" writeable="yes" />

View File

@ -1,2 +1,2 @@
Scenario that emulates the report_rom server by combining the ram_fs, fs_rom, Scenario that emulates the report_rom server by combining the vfs/ram, fs_rom,
and fs_report servers and fs_report servers

View File

@ -1,6 +1,6 @@
_/src/init _/src/init
_/src/ram_fs
_/src/fs_rom _/src/fs_rom
_/src/fs_report _/src/fs_report
_/src/test-fs_report _/src/test-fs_report
_/src/vfs _/src/vfs
_/src/vfs_import

View File

@ -10,11 +10,12 @@
<content> <content>
<rom label="ld.lib.so"/> <rom label="ld.lib.so"/>
<rom label="ram_fs"/> <rom label="vfs"/>
<rom label="fs_report"/> <rom label="fs_report"/>
<rom label="fs_rom"/> <rom label="fs_rom"/>
<rom label="test-fs_report"/> <rom label="test-fs_report"/>
<rom label="vfs.lib.so"/> <rom label="vfs.lib.so"/>
<rom label="vfs_import.lib.so"/>
</content> </content>
<config> <config>
@ -34,15 +35,19 @@
<start name="ram_fs"> <start name="ram_fs">
<resource name="RAM" quantum="4M"/> <resource name="RAM" quantum="4M"/>
<binary name="vfs"/>
<provides> <service name="File_system"/> </provides> <provides> <service name="File_system"/> </provides>
<config> <config>
<content> <vfs>
<dir name="test-fs_report"> <ram/>
<inline name="devices"> <import>
<devices version="initial"/> <dir name="test-fs_report">
</inline> <inline name="devices">
</dir> <devices version="initial"/>
</content> </inline>
</dir>
</import>
</vfs>
<policy label_prefix="fs_report -> " root="/" writeable="yes"/> <policy label_prefix="fs_report -> " root="/" writeable="yes"/>
<policy label_prefix="fs_rom -> " root="/test-fs_report"/> <policy label_prefix="fs_rom -> " root="/test-fs_report"/>
<policy label_prefix="test-fs_report -> " root="/test-fs_report" writeable="yes"/> <policy label_prefix="test-fs_report -> " root="/test-fs_report" writeable="yes"/>

View File

@ -3,4 +3,4 @@ _/src/rom_logger
_/src/rom_to_file _/src/rom_to_file
_/src/dynamic_rom _/src/dynamic_rom
_/src/fs_rom _/src/fs_rom
_/src/ram_fs _/src/vfs

View File

@ -3,15 +3,16 @@
<requires> <timer/> </requires> <requires> <timer/> </requires>
<events> <events>
<timeout meaning="failed" sec="20" /> <timeout meaning="failed" sec="20"/>
<log meaning="succeeded">&lt;config iteration="4" /></log> <log meaning="succeeded">&lt;config iteration="4"/></log>
</events> </events>
<content> <content>
<rom label="ld.lib.so"/> <rom label="ld.lib.so"/>
<rom label="dynamic_rom"/> <rom label="dynamic_rom"/>
<rom label="fs_rom"/> <rom label="fs_rom"/>
<rom label="ram_fs"/> <rom label="vfs"/>
<rom label="vfs.lib.so"/>
<rom label="rom_logger"/> <rom label="rom_logger"/>
<rom label="rom_to_file"/> <rom label="rom_to_file"/>
</content> </content>
@ -34,8 +35,10 @@
<default caps="100"/> <default caps="100"/>
<start name="ram_fs"> <start name="ram_fs">
<resource name="RAM" quantum="10M"/> <resource name="RAM" quantum="10M"/>
<binary name="vfs"/>
<provides><service name="File_system"/></provides> <provides><service name="File_system"/></provides>
<config> <config>
<vfs> <ram/> </vfs>
<policy label_prefix="rom_to_file" root="/" writeable="yes"/> <policy label_prefix="rom_to_file" root="/" writeable="yes"/>
<policy label_prefix="fs_rom" root="/" writeable="no"/> <policy label_prefix="fs_rom" root="/" writeable="no"/>
</config> </config>
@ -46,21 +49,21 @@
<config verbose="yes"> <config verbose="yes">
<rom name="dynamic_rom"> <rom name="dynamic_rom">
<inline description="iteration 1"> <inline description="iteration 1">
<config iteration="1" /> <config iteration="1"/>
</inline> </inline>
<sleep milliseconds="2000" /> <sleep milliseconds="2000"/>
<inline description="iteration 2"> <inline description="iteration 2">
<config iteration="2" /> <config iteration="2"/>
</inline> </inline>
<sleep milliseconds="2000" /> <sleep milliseconds="2000"/>
<inline description="iteration 3"> <inline description="iteration 3">
<config iteration="3" /> <config iteration="3"/>
</inline> </inline>
<sleep milliseconds="2000" /> <sleep milliseconds="2000"/>
<inline description="iteration 4"> <inline description="iteration 4">
<config iteration="4" /> <config iteration="4"/>
</inline> </inline>
<sleep milliseconds="2000" /> <sleep milliseconds="2000"/>
</rom> </rom>
</config> </config>
</start> </start>

View File

@ -1,4 +1,3 @@
_/src/init _/src/init
_/src/vfs _/src/vfs
_/src/ram_fs
_/src/test-vfs_stress _/src/test-vfs_stress

View File

@ -10,7 +10,7 @@
<content> <content>
<rom label="ld.lib.so"/> <rom label="ld.lib.so"/>
<rom label="vfs.lib.so"/> <rom label="vfs.lib.so"/>
<rom label="ram_fs"/> <rom label="vfs"/>
<rom label="vfs_stress"/> <rom label="vfs_stress"/>
</content> </content>
@ -36,8 +36,10 @@
</start> </start>
<start name="ram_fs"> <start name="ram_fs">
<resource name="RAM" quantum="80M"/> <resource name="RAM" quantum="80M"/>
<binary name="vfs"/>
<provides><service name="File_system"/></provides> <provides><service name="File_system"/></provides>
<config> <config>
<vfs> <ram/> </vfs>
<default-policy root="/" writeable="yes"/> <default-policy root="/" writeable="yes"/>
</config> </config>
</start> </start>

View File

@ -4,7 +4,7 @@
* \author Stefan Kalkowski * \author Stefan Kalkowski
* \date 2014-01-06 * \date 2014-01-06
* *
* Note: originally taken from ram_fs server, and adapted to cache needs * Note: originally taken from vfs/ram, and adapted to cache needs
*/ */
/* /*

View File

@ -1,5 +1,5 @@
/* /*
* \brief Test for combining ram_fs, fs_rom, and fs_report * \brief Test for combining vfs/ram, fs_rom, and fs_report
* \author Norman Feske * \author Norman Feske
* \date 2017-06-28 * \date 2017-06-28
*/ */

View File

@ -1,4 +1,3 @@
TARGET = test-ram_fs_chunk TARGET = test-ram_fs_chunk
SRC_CC = main.cc SRC_CC = main.cc
INC_DIR += $(REP_DIR)/src/server/ram_fs LIBS = base
LIBS = base

View File

@ -5,5 +5,6 @@ _/src/libssl
_/src/libgetdns _/src/libgetdns
_/src/libcrypto _/src/libcrypto
_/src/posix _/src/posix
_/src/vfs
_/src/vfs_lxip _/src/vfs_lxip
_/src/vfs_jitterentropy _/src/vfs_jitterentropy

View File

@ -84,6 +84,7 @@ listen_addresses:
<rom label="stubby"/> <rom label="stubby"/>
<rom label="vfs_jitterentropy.lib.so"/> <rom label="vfs_jitterentropy.lib.so"/>
<rom label="lxip.lib.so"/> <rom label="lxip.lib.so"/>
<rom label="vfs.lib.so"/>
<rom label="vfs_lxip.lib.so"/> <rom label="vfs_lxip.lib.so"/>
</content> </content>

View File

@ -82,8 +82,8 @@ append_if $use_nic_bridge packages " [depot_user]/src/nic_bridge "
append_if $use_nic_router packages " [depot_user]/src/nic_router " append_if $use_nic_router packages " [depot_user]/src/nic_router "
append_if $use_usb_driver packages " [depot_user]/src/platform_drv " append_if $use_usb_driver packages " [depot_user]/src/platform_drv "
append_if $use_usb_driver packages " [depot_user]/src/usb_drv " append_if $use_usb_driver packages " [depot_user]/src/usb_drv "
append_if $use_wifi_driver packages " [depot_user]/src/ram_fs "
append_if $use_wifi_driver packages " [depot_user]/src/fs_rom " append_if $use_wifi_driver packages " [depot_user]/src/fs_rom "
append_if $use_wifi_driver packages " [depot_user]/src/vfs_import "
append_if $use_wifi_driver packages " [depot_user]/src/report_rom " append_if $use_wifi_driver packages " [depot_user]/src/report_rom "
append_if $use_wifi_driver packages " [depot_user]/src/wifi_drv " append_if $use_wifi_driver packages " [depot_user]/src/wifi_drv "
append_if $use_wifi_driver packages " [depot_user]/src/libcrypto " append_if $use_wifi_driver packages " [depot_user]/src/libcrypto "
@ -141,18 +141,21 @@ if { $use_wifi_driver } {
</start> </start>
<start name="config_fs"> <start name="config_fs">
<binary name="ram_fs"/> <binary name="vfs"/>
<resource name="RAM" quantum="4M"/> <resource name="RAM" quantum="4M"/>
<provides> <service name="File_system"/> </provides> <provides> <service name="File_system"/> </provides>
<config> <config>
<policy label_prefix="config_rom" root="/"/> <vfs>
<content> <ram/>
<inline name="wifi_config"> <import>
<inline name="wifi_config">
<wifi_config connected_scan_interval="0" scan_interval="10" rfkill="no" verbose="no" verbose_state="no">} <wifi_config connected_scan_interval="0" scan_interval="10" rfkill="no" verbose="no" verbose_state="no">}
append config "<network ssid=\"$wifi_ssid\" protection=\"WPA2\" passphrase=\"$wifi_psk\"/>" append config "<network ssid=\"$wifi_ssid\" protection=\"WPA2\" passphrase=\"$wifi_psk\"/>"
append config { </wifi_config> append config { </wifi_config>
</inline> </inline>
</content> </import>
</vfs>
<policy label_prefix="config_rom" root="/"/>
</config> </config>
</start> </start>

View File

@ -1,5 +1,10 @@
assert_spec x86 assert_spec x86
if {[have_spec linux]} {
puts "Platform is unsupported."
exit 0
}
create_boot_directory create_boot_directory
proc current_pkg { pkg } { return $pkg/[_current_depot_archive_version pkg $pkg] } proc current_pkg { pkg } { return $pkg/[_current_depot_archive_version pkg $pkg] }
@ -8,7 +13,6 @@ import_from_depot [depot_user]/src/[base_src] \
[depot_user]/pkg/[drivers_nic_pkg] \ [depot_user]/pkg/[drivers_nic_pkg] \
[depot_user]/src/report_rom \ [depot_user]/src/report_rom \
[depot_user]/src/fs_rom \ [depot_user]/src/fs_rom \
[depot_user]/src/ram_fs \
[depot_user]/src/vfs \ [depot_user]/src/vfs \
[depot_user]/src/init \ [depot_user]/src/init \
[depot_user]/src/rtc_drv \ [depot_user]/src/rtc_drv \
@ -105,8 +109,10 @@ install_config {
<start name="ram_fs"> <start name="ram_fs">
<resource name="RAM" quantum="8M"/> <resource name="RAM" quantum="8M"/>
<binary name="vfs"/>
<provides> <service name="File_system"/> </provides> <provides> <service name="File_system"/> </provides>
<config> <config>
<vfs> <ram/> </vfs>
<default-policy root="/" writeable="yes"/> <default-policy root="/" writeable="yes"/>
</config> </config>
</start> </start>

View File

@ -19,7 +19,7 @@ set build_components {
drivers/usb drivers/usb
server/log_terminal server/log_terminal
server/fs_rom server/fs_rom
server/ram_fs server/vfs lib/vfs/import
server/report_rom server/report_rom
app/usb_report_filter app/usb_report_filter
virtualbox5 virtualbox5
@ -73,26 +73,29 @@ append config {
</start> </start>
<start name="usb_config_fs" priority="-1"> <start name="usb_config_fs" priority="-1">
<binary name="ram_fs"/> <binary name="vfs"/>
<resource name="RAM" quantum="1M"/> <resource name="RAM" quantum="1M"/>
<provides><service name="File_system"/></provides> <provides><service name="File_system"/></provides>
<config verbose="yes"> <config verbose="yes">
<content> <vfs>
<inline name="usb_drv.config"> <ram/>
<import>
<inline name="usb_drv.config">
<config uhci="yes" ehci="yes" xhci="yes"> <config uhci="yes" ehci="yes" xhci="yes">
<raw> <raw>
<report devices="yes"/> <report devices="yes"/>
</raw> </raw>
</config> </config>
</inline> </inline>
<inline name="usb_report_filter.config"> <inline name="usb_report_filter.config">
<config> <config>
<!-- USB device whitelist --> <!-- USB device whitelist -->
<client label="virtualbox"/> <client label="virtualbox"/>
<device vendor_id="0x03eb" product_id="0x204d"/> <!-- 'Pro Micro' test device --> <device vendor_id="0x03eb" product_id="0x204d"/> <!-- 'Pro Micro' test device -->
</config> </config>
</inline> </inline>
</content> </import>
</vfs>
<policy label_prefix="usb_report_filter" root="/" writeable="yes" /> <policy label_prefix="usb_report_filter" root="/" writeable="yes" />
<policy label_prefix="usb_config_rom" root="/"/> <policy label_prefix="usb_config_rom" root="/"/>
</config> </config>
@ -250,12 +253,12 @@ set boot_modules {
usb_drv usb_drv
usb_report_filter usb_report_filter
fs_rom fs_rom
ram_fs vfs vfs.lib.so vfs_import.lib.so
report_rom report_rom
virtualbox5-nova virtualbox5-nova
usb_hid.iso usb_hid.iso
vm_genode_usb_hid.vbox vm_genode_usb_hid.vbox
ld.lib.so libc.lib.so vfs.lib.so libm.lib.so libc_pipe.lib.so ld.lib.so libc.lib.so libm.lib.so libc_pipe.lib.so
libiconv.lib.so stdcxx.lib.so libiconv.lib.so stdcxx.lib.so
qemu-usb.lib.so qemu-usb.lib.so
} }

View File

@ -103,9 +103,9 @@ catch { exec dd if=/dev/urandom of=bin/test.bin bs=4096 count=8160 }
# #
set build_components { set build_components {
server/input_merger server/input_merger
server/ram_fs server/report_rom server/fs_rom server/vfs server/report_rom server/fs_rom server/vfs
server/tcp_terminal drivers/nic server/tcp_terminal drivers/nic
lib/vfs/lwip lib/vfs/pipe lib/vfs/lwip lib/vfs/pipe lib/vfs/import
} }
# #
@ -115,10 +115,10 @@ foreach pkg {bash coreutils} {
lappend_if [expr ![file exists bin/$pkg]] build_components noux-pkg/$pkg } lappend_if [expr ![file exists bin/$pkg]] build_components noux-pkg/$pkg }
set boot_modules { set boot_modules {
ram_fs vfs fs_rom vfs fs_rom
posix.lib.so bash.tar coreutils.tar posix.lib.so bash.tar coreutils.tar
tcp_terminal vfs_lwip.lib.so vfs_pipe.lib.so ipxe_nic_drv report_rom tcp_terminal vfs_lwip.lib.so vfs_pipe.lib.so vfs_import.lib.so
input_merger ipxe_nic_drv report_rom input_merger
test.bin template.bat test.bin template.bat
} }
@ -145,23 +145,27 @@ set config_of_app {
</start> </start>
<start name="ram_fs_from" priority="-1"> <start name="ram_fs_from" priority="-1">
<binary name="ram_fs"/> <binary name="vfs"/>
<resource name="RAM" quantum="64M"/> <resource name="RAM" quantum="64M"/>
<provides><service name="File_system"/></provides> <provides><service name="File_system"/></provides>
<config> <config>
<content> <vfs>
<rom name="test.bin"/> <ram/>
<rom name="template.bat"/> <import>
</content> <rom name="test.bin"/>
<rom name="template.bat"/>
</import>
</vfs>
<default-policy root="/" writeable="no"/> <default-policy root="/" writeable="no"/>
</config> </config>
</start> </start>
<start name="ram_fs_to" priority="-1"> <start name="ram_fs_to" priority="-1">
<binary name="ram_fs"/> <binary name="vfs"/>
<resource name="RAM" quantum="64M"/> <resource name="RAM" quantum="64M"/>
<provides><service name="File_system"/></provides> <provides><service name="File_system"/></provides>
<config> <config>
<vfs> <ram/> </vfs>
<default-policy root="/" writeable="yes"/> <default-policy root="/" writeable="yes"/>
</config> </config>
</start> </start>

View File

@ -44,7 +44,7 @@ lappend_if [expr $use_ps2] build_components drivers/input
lappend_if [expr $use_usb] build_components drivers/usb lappend_if [expr $use_usb] build_components drivers/usb
lappend_if [expr $use_usb] build_components app/usb_report_filter lappend_if [expr $use_usb] build_components app/usb_report_filter
lappend_if [have_spec x86] build_components drivers/rtc lappend_if [have_spec x86] build_components drivers/rtc
lappend_if [expr $use_ram_fs || $use_usb] build_components server/ram_fs lappend_if [expr $use_ram_fs || $use_usb] build_components lib/vfs/import
lappend_if [expr $use_cpu_load] build_components app/trace_subject_reporter lappend_if [expr $use_cpu_load] build_components app/trace_subject_reporter
lappend_if [expr $use_cpu_load] build_components app/cpu_load_display lappend_if [expr $use_cpu_load] build_components app/cpu_load_display
lappend_if [expr $use_cpu_load] build_components app/top lappend_if [expr $use_cpu_load] build_components app/top
@ -157,21 +157,26 @@ append_if [expr $use_rumpfs] config {
</start>} </start>}
append_if [expr $use_ram_fs] config { append_if [expr $use_ram_fs] config {
<start name="ram_fs" priority="-1" caps="1800">} <start name="ram_fs" priority="-1" caps="1800">
<binary name="vfs"/>}
append_if [expr $use_ram_fs] config " append_if [expr $use_ram_fs] config "
<resource name=\"RAM\" quantum=\"[expr $use_vms * 8 * 128]M\"/>" <resource name=\"RAM\" quantum=\"[expr $use_vms * 8 * 128]M\"/>"
append_if [expr $use_ram_fs] config { append_if [expr $use_ram_fs] config {
<provides><service name="File_system"/></provides> <provides><service name="File_system"/></provides>
<config> <config>
<content>} <vfs>
<ram/>
<import>}
for { set i 1} { $i <= ${use_vms} } { incr i} { for { set i 1} { $i <= ${use_vms} } { incr i} {
append_if [expr $use_ram_fs] config " append_if [expr $use_ram_fs] config "
<dir name=\"ram${i}\"> <dir name=\"ram${i}\">
<rom name=\"${overlay_image}\"/> <rom name=\"${overlay_image}\"/>
</dir>" </dir>"
} }
append_if [expr $use_ram_fs] config { append_if [expr $use_ram_fs] config {
</content> </import>
</vfs>
<!-- constrain sessions according to their labels -->} <!-- constrain sessions according to their labels -->}
for { set i 1} { $i <= ${use_vms} } { incr i} { for { set i 1} { $i <= ${use_vms} } { incr i} {
append_if [expr $use_ram_fs] config " append_if [expr $use_ram_fs] config "
@ -251,20 +256,22 @@ append_if [expr $use_cpu_load] config {
append_if [expr $use_usb] config { append_if [expr $use_usb] config {
<start name="usb_config_fs" priority="-1"> <start name="usb_config_fs" priority="-1">
<binary name="ram_fs"/> <binary name="vfs"/>
<resource name="RAM" quantum="1M"/> <resource name="RAM" quantum="2M"/>
<provides><service name="File_system"/></provides> <provides><service name="File_system"/></provides>
<config verbose="yes"> <config verbose="yes">
<content> <vfs>
<inline name="usb_drv.config"> <ram/>
<import>
<inline name="usb_drv.config">
<config uhci="yes" ohci="yes" ehci="yes" xhci="yes"> <config uhci="yes" ohci="yes" ehci="yes" xhci="yes">
<hid/> <hid/>
<raw> <raw>
<report devices="yes"/> <report devices="yes"/>
</raw> </raw>
</config> </config>
</inline> </inline>
<inline name="usb_report_filter.config"> <inline name="usb_report_filter.config">
<config> <config>
<!-- USB device whitelist --> <!-- USB device whitelist -->
<client label="vbox1"/> <client label="vbox1"/>
@ -288,8 +295,9 @@ append_if [expr $use_usb] config {
<device vendor_id="0x0984" product_id="0x0066"/> <!-- lenovo DVDRW --> <device vendor_id="0x0984" product_id="0x0066"/> <!-- lenovo DVDRW -->
<device vendor_id="0x174c" product_id="0x5106"/> <!-- delock SATA --> <device vendor_id="0x174c" product_id="0x5106"/> <!-- delock SATA -->
</config> </config>
</inline> </inline>
</content> </import>
</vfs>
<policy label_prefix="usb_report_filter" root="/" writeable="yes"/> <policy label_prefix="usb_report_filter" root="/" writeable="yes"/>
<policy label_prefix="usb_config_rom" root="/"/> <policy label_prefix="usb_config_rom" root="/"/>
</config> </config>
@ -374,7 +382,7 @@ append config {
install_config $config install_config $config
append boot_modules { append boot_modules {
part_block ahci_drv fs_rom part_block ahci_drv fs_rom vfs
libc.lib.so vfs.lib.so libm.lib.so libc.lib.so vfs.lib.so libm.lib.so
libc_pipe.lib.so libc_pipe.lib.so
libiconv.lib.so stdcxx.lib.so libiconv.lib.so stdcxx.lib.so
@ -384,10 +392,9 @@ append boot_modules {
lappend_if [expr $use_rumpfs] boot_modules rump.lib.so lappend_if [expr $use_rumpfs] boot_modules rump.lib.so
lappend_if [expr $use_rumpfs] boot_modules rump_fs.lib.so lappend_if [expr $use_rumpfs] boot_modules rump_fs.lib.so
lappend_if [expr $use_rumpfs] boot_modules vfs_rump.lib.so lappend_if [expr $use_rumpfs] boot_modules vfs_rump.lib.so
lappend_if [expr $use_rumpfs] boot_modules vfs
lappend_if [expr $use_serial] boot_modules log_terminal lappend_if [expr $use_serial] boot_modules log_terminal
lappend_if [expr $use_vbox5] boot_modules $virtualbox5_binary lappend_if [expr $use_vbox5] boot_modules $virtualbox5_binary
lappend_if [expr $use_ram_fs || $use_usb] boot_modules ram_fs lappend_if [expr $use_ram_fs || $use_usb] boot_modules vfs_import.lib.so
lappend_if [expr $use_ram_fs && !$use_overlay_from_disk] boot_modules $overlay_image lappend_if [expr $use_ram_fs && !$use_overlay_from_disk] boot_modules $overlay_image
lappend_if [expr $use_cpu_load] boot_modules trace_subject_reporter lappend_if [expr $use_cpu_load] boot_modules trace_subject_reporter
lappend_if [expr $use_cpu_load] boot_modules cpu_load_display lappend_if [expr $use_cpu_load] boot_modules cpu_load_display