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/boot_fb_drv
_/src/ahci_drv
_/src/fs_report
_/src/fs_rom
_/src/ram_fs
_/src/report_rom
_/src/input_filter
_/src/init
_/src/driver_manager
_/src/rom_filter
_/src/rom_reporter
_/raw/drivers_managed-pc

View File

@ -34,56 +34,36 @@
<service name="Input">
<default-policy> <child name="input_filter"/> </default-policy> </service>
<service name="File_system">
<default-policy> <child name="ram_fs" label="parent"/> </default-policy> </service>
<start name="report_rom">
<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">
<resource name="RAM" quantum="4M"/>
<provides> <service name="File_system"/> </provides>
<start name="rom_reporter">
<resource name="RAM" quantum="1M"/>
<config>
<policy label="fs_rom -> " root="/"/>
<policy label="fs_report -> " root="/" writeable="yes"/>
<policy label="parent" root="/"/>
<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>
<rom label="acpi"/>
<rom label="pci_devices"/>
<rom label="usb_devices"/>
</config>
<route>
<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_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="ROM" label="acpi"> <child name="report_rom"/> </service>
<service name="ROM" label="pci_devices"> <child name="report_rom"/> </service>
<service name="ROM" label="usb_devices"> <child name="report_rom"/> </service>
<service name="Report" label="acpi"> <parent label="acpi"/> </service>
<service name="Report" label="pci_devices"> <parent label="pci_devices"/> </service>
<service name="Report" label="usb_devices"> <parent label="usb_devices"/> </service>
<service name="LOG"> <parent/> </service>
<service name="PD"> <parent/> </service>
<service name="CPU"> <parent/> </service>
@ -94,7 +74,7 @@
<start name="acpi_drv" caps="300" priority="-1">
<resource name="RAM" quantum="2M"/>
<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="LOG"> <parent/> </service>
<service name="PD"> <parent/> </service>
@ -112,9 +92,8 @@
</provides>
<route>
<service name="ROM" label="system"> <parent label="system"/> </service>
<service name="ROM" label="acpi"> <child name="fs_rom"/> </service>
<service name="Report" label="pci">
<child name="fs_report" label="pci_devices"/> </service>
<service name="ROM" label="acpi"> <child name="report_rom"/> </service>
<service name="Report" label="pci"> <child name="report_rom"/> </service>
<service name="IRQ"> <parent/> </service>
<service name="IO_MEM"> <parent/> </service>
<service name="IO_PORT"> <parent/> </service>
@ -146,15 +125,13 @@
<resource name="RAM" quantum="16M"/>
<provides> <service name="Input"/> <service name="Usb"/> </provides>
<route>
<service name="Platform"> <child name="platform_drv"/> </service>
<service name="Platform"> <child name="platform_drv"/> </service>
<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="numlock"> <parent label="numlock"/> </service>
<service name="Report" label="devices">
<child name="fs_report" label="usb_devices"/> </service>
<service name="Report" label="config">
<child name="fs_report" label="usb_active_config"/> </service>
<service name="Report" label="devices"> <child name="report_rom"/> </service>
<service name="Report" label="config"> <parent label="usb_active_config"/> </service>
<service name="ROM"> <parent/> </service>
<service name="PD"> <parent/> </service>
<service name="RM"> <parent/> </service>
@ -211,20 +188,12 @@
<start name="driver_manager" priority="-1">
<resource name="RAM" quantum="1M"/>
<route>
<service name="Report" label="init.config">
<child name="fs_report" label="dynamic -> config"/> </service>
<service name="Report" label="usb_drv.config">
<child name="fs_report" label="usb_drv.config"/> </service>
<service name="Report" label="block_devices">
<parent label="block_devices"/> </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="Report" label="init.config"> <child name="report_rom"/> </service>
<service name="Report" label="usb_drv.config"> <child name="report_rom"/> </service>
<service name="Report" label="block_devices"> <parent label="block_devices"/> </service>
<service name="ROM" label="usb_devices"> <child name="report_rom"/> </service>
<service name="ROM" label="pci_devices"> <child name="report_rom"/> </service>
<service name="ROM" label="ahci_ports"> <child name="report_rom"/> </service>
<service name="LOG"> <parent/> </service>
<service name="PD"> <parent/> </service>
<service name="CPU"> <parent/> </service>
@ -241,12 +210,10 @@
</provides>
<route>
<service name="Platform"> <child name="platform_drv"/> </service>
<service name="Report" label="state">
<child name="fs_report" label="dynamic/state"/> </service>
<service name="Report"> <child name="fs_report"/> </service>
<service name="Report" label="ahci_ports"> <child name="report_rom"/> </service>
<service name="Report"> <parent/> </service>
<service name="Usb"> <child name="usb_drv"/> </service>
<service name="ROM" label="config">
<child name="fs_rom" label="dynamic/config"/> </service>
<service name="ROM" label="config"> <child name="report_rom"/> </service>
<service name="LOG"> <parent/> </service>
<service name="PD"> <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="capslock"> <child name="dynamic_rom"/> </service>
<service name="ROM" label="numlock"> <child name="dynamic_rom"/> </service>
<service name="Timer"> <child name="timer"/> </service>
<service name="Report" label="block_devices"> <child name="report_rom"/> </service>
<service name="ROM" label="system"> <child name="dynamic_rom"/> </service>
<service name="Timer"> <child name="timer"/> </service>
<service name="Report"> <child name="report_rom"/> </service>
<any-service> <parent/> </any-service>
</route>
<provides>
@ -78,6 +79,14 @@ install_config {
<inline> <numlock enabled="yes"/> </inline>
<sleep milliseconds="1000" />
</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>
</start>

View File

@ -251,7 +251,6 @@ struct Driver_manager::Main : Block_devices_generator
Env &_env;
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 _pci_devices { _env, "pci_devices" };
Attached_rom_dataspace _ahci_ports { _env, "ahci_ports" };