drivers_managed-pc: simplification

This patch removes the former use of ram_fs, fs_rom, and fs_report from
the subsystem and uses a report_rom instead. The fs-based reporting was
introduced to accommodate automatically instantiated usb_block drivers,
which turned out to be impractical for the sculpt scenario.
This commit is contained in:
Norman Feske
2017-12-14 11:37:46 +01:00
committed by Christian Helmuth
parent 95a2fc7167
commit 5d6f97cc1d
4 changed files with 56 additions and 81 deletions

View File

@ -7,10 +7,10 @@ _/src/vesa_drv
_/src/intel_fb_drv _/src/intel_fb_drv
_/src/boot_fb_drv _/src/boot_fb_drv
_/src/ahci_drv _/src/ahci_drv
_/src/fs_report _/src/report_rom
_/src/fs_rom
_/src/ram_fs
_/src/input_filter _/src/input_filter
_/src/init _/src/init
_/src/driver_manager _/src/driver_manager
_/src/rom_filter
_/src/rom_reporter
_/raw/drivers_managed-pc _/raw/drivers_managed-pc

View File

@ -34,56 +34,36 @@
<service name="Input"> <service name="Input">
<default-policy> <child name="input_filter"/> </default-policy> </service> <default-policy> <child name="input_filter"/> </default-policy> </service>
<service name="File_system"> <start name="report_rom">
<default-policy> <child name="ram_fs" label="parent"/> </default-policy> </service> <resource name="RAM" quantum="2M"/>
<provides> <service name="Report"/> <service name="ROM"/> </provides>
<config verbose="no">
<policy label="platform_drv -> acpi" report="acpi_drv -> acpi"/>
<policy label="driver_manager -> pci_devices" report="platform_drv -> pci"/>
<policy label="usb_drv -> config" report="driver_manager -> usb_drv.config"/>
<policy label="driver_manager -> usb_devices" report="usb_drv -> devices"/>
<policy label="dynamic -> config" report="driver_manager -> init.config"/>
<policy label="driver_manager -> ahci_ports" report="dynamic -> ahci_ports"/>
<policy label="rom_reporter -> acpi" report="acpi_drv -> acpi"/>
<policy label="rom_reporter -> pci_devices" report="platform_drv -> pci"/>
<policy label="rom_reporter -> usb_devices" report="usb_drv -> devices"/>
</config>
</start>
<start name="ram_fs" priority="-1"> <start name="rom_reporter">
<resource name="RAM" quantum="4M"/> <resource name="RAM" quantum="1M"/>
<provides> <service name="File_system"/> </provides>
<config> <config>
<policy label="fs_rom -> " root="/"/> <rom label="acpi"/>
<policy label="fs_report -> " root="/" writeable="yes"/> <rom label="pci_devices"/>
<policy label="parent" root="/"/> <rom label="usb_devices"/>
<content>
<inline name="acpi"/>
<inline name="pci_devices"/>
<inline name="usb_devices"/>
<inline name="usb_active_config"/>
<inline name="usb_drv.config"/>
<dir name="dynamic">
<inline name="ahci_ports"/>
<inline name="config"/>
<inline name="state"/>
</dir>
</content>
</config> </config>
<route> <route>
<service name="LOG"> <parent/> </service> <service name="ROM" label="acpi"> <child name="report_rom"/> </service>
<service name="PD"> <parent/> </service> <service name="ROM" label="pci_devices"> <child name="report_rom"/> </service>
<service name="CPU"> <parent/> </service> <service name="ROM" label="usb_devices"> <child name="report_rom"/> </service>
<service name="ROM"> <parent/> </service> <service name="Report" label="acpi"> <parent label="acpi"/> </service>
</route> <service name="Report" label="pci_devices"> <parent label="pci_devices"/> </service>
</start> <service name="Report" label="usb_devices"> <parent label="usb_devices"/> </service>
<start name="fs_report" priority="-1">
<resource name="RAM" quantum="2M"/>
<provides> <service name="Report"/> </provides>
<config> <vfs> <fs/> </vfs> </config>
<route>
<service name="File_system"> <child name="ram_fs"/> </service>
<service name="LOG"> <parent/> </service>
<service name="PD"> <parent/> </service>
<service name="CPU"> <parent/> </service>
<service name="ROM"> <parent/> </service>
</route>
</start>
<start name="fs_rom" priority="-1">
<resource name="RAM" quantum="1M"/>
<provides> <service name="ROM"/> </provides>
<config/>
<route>
<service name="File_system"> <child name="ram_fs"/> </service>
<service name="LOG"> <parent/> </service> <service name="LOG"> <parent/> </service>
<service name="PD"> <parent/> </service> <service name="PD"> <parent/> </service>
<service name="CPU"> <parent/> </service> <service name="CPU"> <parent/> </service>
@ -94,7 +74,7 @@
<start name="acpi_drv" caps="300" priority="-1"> <start name="acpi_drv" caps="300" priority="-1">
<resource name="RAM" quantum="2M"/> <resource name="RAM" quantum="2M"/>
<route> <route>
<service name="Report" label="acpi"> <child name="fs_report" label="acpi"/> </service> <service name="Report" label="acpi"> <child name="report_rom"/> </service>
<service name="IO_MEM"> <parent/> </service> <service name="IO_MEM"> <parent/> </service>
<service name="LOG"> <parent/> </service> <service name="LOG"> <parent/> </service>
<service name="PD"> <parent/> </service> <service name="PD"> <parent/> </service>
@ -112,9 +92,8 @@
</provides> </provides>
<route> <route>
<service name="ROM" label="system"> <parent label="system"/> </service> <service name="ROM" label="system"> <parent label="system"/> </service>
<service name="ROM" label="acpi"> <child name="fs_rom"/> </service> <service name="ROM" label="acpi"> <child name="report_rom"/> </service>
<service name="Report" label="pci"> <service name="Report" label="pci"> <child name="report_rom"/> </service>
<child name="fs_report" label="pci_devices"/> </service>
<service name="IRQ"> <parent/> </service> <service name="IRQ"> <parent/> </service>
<service name="IO_MEM"> <parent/> </service> <service name="IO_MEM"> <parent/> </service>
<service name="IO_PORT"> <parent/> </service> <service name="IO_PORT"> <parent/> </service>
@ -148,13 +127,11 @@
<route> <route>
<service name="Platform"> <child name="platform_drv"/> </service> <service name="Platform"> <child name="platform_drv"/> </service>
<service name="ROM" label="config"> <service name="ROM" label="config">
<child name="fs_rom" label="usb_drv.config"/> </service> <child name="report_rom"/> </service>
<service name="ROM" label="capslock"> <parent label="capslock"/> </service> <service name="ROM" label="capslock"> <parent label="capslock"/> </service>
<service name="ROM" label="numlock"> <parent label="numlock"/> </service> <service name="ROM" label="numlock"> <parent label="numlock"/> </service>
<service name="Report" label="devices"> <service name="Report" label="devices"> <child name="report_rom"/> </service>
<child name="fs_report" label="usb_devices"/> </service> <service name="Report" label="config"> <parent label="usb_active_config"/> </service>
<service name="Report" label="config">
<child name="fs_report" label="usb_active_config"/> </service>
<service name="ROM"> <parent/> </service> <service name="ROM"> <parent/> </service>
<service name="PD"> <parent/> </service> <service name="PD"> <parent/> </service>
<service name="RM"> <parent/> </service> <service name="RM"> <parent/> </service>
@ -211,20 +188,12 @@
<start name="driver_manager" priority="-1"> <start name="driver_manager" priority="-1">
<resource name="RAM" quantum="1M"/> <resource name="RAM" quantum="1M"/>
<route> <route>
<service name="Report" label="init.config"> <service name="Report" label="init.config"> <child name="report_rom"/> </service>
<child name="fs_report" label="dynamic -> config"/> </service> <service name="Report" label="usb_drv.config"> <child name="report_rom"/> </service>
<service name="Report" label="usb_drv.config"> <service name="Report" label="block_devices"> <parent label="block_devices"/> </service>
<child name="fs_report" label="usb_drv.config"/> </service> <service name="ROM" label="usb_devices"> <child name="report_rom"/> </service>
<service name="Report" label="block_devices"> <service name="ROM" label="pci_devices"> <child name="report_rom"/> </service>
<parent label="block_devices"/> </service> <service name="ROM" label="ahci_ports"> <child name="report_rom"/> </service>
<service name="ROM" label="init_state">
<child name="fs_rom" label="dynamic/state"/> </service>
<service name="ROM" label="usb_devices"> <child name="fs_rom"/> </service>
<service name="ROM" label="pci_devices"> <child name="fs_rom"/> </service>
<service name="ROM" label="usb_active_config"> <child name="fs_rom"/> </service>
<service name="ROM" label="ahci_ports">
<child name="fs_rom" label="dynamic/ahci_ports"/> </service>
<service name="ROM" label_prefix="dynamic/"> <child name="fs_rom"/> </service>
<service name="LOG"> <parent/> </service> <service name="LOG"> <parent/> </service>
<service name="PD"> <parent/> </service> <service name="PD"> <parent/> </service>
<service name="CPU"> <parent/> </service> <service name="CPU"> <parent/> </service>
@ -241,12 +210,10 @@
</provides> </provides>
<route> <route>
<service name="Platform"> <child name="platform_drv"/> </service> <service name="Platform"> <child name="platform_drv"/> </service>
<service name="Report" label="state"> <service name="Report" label="ahci_ports"> <child name="report_rom"/> </service>
<child name="fs_report" label="dynamic/state"/> </service> <service name="Report"> <parent/> </service>
<service name="Report"> <child name="fs_report"/> </service>
<service name="Usb"> <child name="usb_drv"/> </service> <service name="Usb"> <child name="usb_drv"/> </service>
<service name="ROM" label="config"> <service name="ROM" label="config"> <child name="report_rom"/> </service>
<child name="fs_rom" label="dynamic/config"/> </service>
<service name="LOG"> <parent/> </service> <service name="LOG"> <parent/> </service>
<service name="PD"> <parent/> </service> <service name="PD"> <parent/> </service>
<service name="RM"> <parent/> </service> <service name="RM"> <parent/> </service>

View File

@ -51,8 +51,9 @@ install_config {
<service name="ROM" label="config"> <parent label="drivers.config"/> </service> <service name="ROM" label="config"> <parent label="drivers.config"/> </service>
<service name="ROM" label="capslock"> <child name="dynamic_rom"/> </service> <service name="ROM" label="capslock"> <child name="dynamic_rom"/> </service>
<service name="ROM" label="numlock"> <child name="dynamic_rom"/> </service> <service name="ROM" label="numlock"> <child name="dynamic_rom"/> </service>
<service name="ROM" label="system"> <child name="dynamic_rom"/> </service>
<service name="Timer"> <child name="timer"/> </service> <service name="Timer"> <child name="timer"/> </service>
<service name="Report" label="block_devices"> <child name="report_rom"/> </service> <service name="Report"> <child name="report_rom"/> </service>
<any-service> <parent/> </any-service> <any-service> <parent/> </any-service>
</route> </route>
<provides> <provides>
@ -78,6 +79,14 @@ install_config {
<inline> <numlock enabled="yes"/> </inline> <inline> <numlock enabled="yes"/> </inline>
<sleep milliseconds="1000" /> <sleep milliseconds="1000" />
</rom> </rom>
<rom name="system">
<inline> <system state=""/> </inline>
<sleep milliseconds="10000" />
</rom>
<rom name="numlock_remap">
<inline> <system state=""/> </inline>
<sleep milliseconds="10000" />
</rom>
</config> </config>
</start> </start>

View File

@ -251,7 +251,6 @@ struct Driver_manager::Main : Block_devices_generator
Env &_env; Env &_env;
Attached_rom_dataspace _platform { _env, "platform_info" }; Attached_rom_dataspace _platform { _env, "platform_info" };
Attached_rom_dataspace _init_state { _env, "init_state" };
Attached_rom_dataspace _usb_devices { _env, "usb_devices" }; Attached_rom_dataspace _usb_devices { _env, "usb_devices" };
Attached_rom_dataspace _pci_devices { _env, "pci_devices" }; Attached_rom_dataspace _pci_devices { _env, "pci_devices" };
Attached_rom_dataspace _ahci_ports { _env, "ahci_ports" }; Attached_rom_dataspace _ahci_ports { _env, "ahci_ports" };