342 lines
16 KiB
Plaintext
342 lines
16 KiB
Plaintext
let Genode = env:DHALL_GENODE
|
|
|
|
in λ ( _
|
|
: {}
|
|
)
|
|
→ Genode.Init::{
|
|
, verbose = True
|
|
, children =
|
|
toMap
|
|
{ timer =
|
|
Genode.Init.Start::{
|
|
, binary = "timer"
|
|
, resources = { caps = 96, ram = Genode.units.MiB 1 }
|
|
, provides = [ "Timer" ]
|
|
}
|
|
, report_rom =
|
|
Genode.Init.Start::{
|
|
, binary = "report_rom"
|
|
, resources = { caps = 96, ram = Genode.units.MiB 1 }
|
|
, provides = [ "ROM", "Report" ]
|
|
, config =
|
|
Some
|
|
( Genode.Prelude.XML.text
|
|
''
|
|
<config verbose="no">
|
|
<policy label="leitzentrale_config -> leitzentrale"
|
|
report="global_keys_handler -> leitzentrale"/>
|
|
<policy label="leitzentrale -> manager -> nitpicker_hover"
|
|
report="nitpicker -> hover"/>
|
|
<policy label="pointer -> hover" report="nitpicker -> hover"/>
|
|
<policy label="pointer -> xray"
|
|
report="global_keys_handler -> leitzentrale"/>
|
|
<policy label="pointer -> shape" report="shape"/>
|
|
<policy label="clipboard -> focus" report="nitpicker -> focus"/>
|
|
<policy label="capslock" report="global_keys_handler -> capslock"/>
|
|
<policy label="numlock" report="global_keys_handler -> numlock"/>
|
|
<policy label="runtime -> clicked" report="nitpicker -> clicked"/>
|
|
<policy label="nit_focus -> leitzentrale"
|
|
report="global_keys_handler -> leitzentrale"/>
|
|
<policy label="nit_focus -> hover" report="nitpicker -> hover"/>
|
|
<policy label="leitzentrale -> manager -> displays"
|
|
report="nitpicker -> displays"/>
|
|
<policy label="runtime -> runtime_view -> dialog"
|
|
report="leitzentrale -> manager -> runtime_view_dialog"/>
|
|
<policy label="leitzentrale -> manager -> runtime_view_hover"
|
|
report="runtime -> runtime_view -> hover"/>
|
|
</config>
|
|
''
|
|
)
|
|
}
|
|
, report_logger =
|
|
Genode.Init.Start::{
|
|
, binary = "report_rom"
|
|
, resources = { caps = 96, ram = Genode.units.MiB 1 }
|
|
, provides = [ "ROM", "Report" ]
|
|
, config =
|
|
Some (Genode.Prelude.XML.text "<config verbose=\"yes\"/>")
|
|
}
|
|
, config_fs =
|
|
Genode.Init.Start::{
|
|
, binary = "vfs"
|
|
, resources = { caps = 128, ram = Genode.units.MiB 12 }
|
|
, provides = [ "File_system" ]
|
|
, config =
|
|
Some
|
|
( Genode.Prelude.XML.text
|
|
''
|
|
<config>
|
|
<vfs>
|
|
<ram/>
|
|
<import>
|
|
<dir name="managed">
|
|
<rom name="fonts" label="fonts.config"/>
|
|
<rom name="fb_drv" label="fb_drv.config"/>
|
|
<rom name="wifi" label="wifi.config"/>
|
|
<rom name="installation"/>
|
|
<rom name="runtime" label="empty_runtime.config"/>
|
|
<rom name="input_filter" label="input_filter.config"/>
|
|
<inline name="depot_query"><query/></inline>
|
|
</dir>
|
|
<rom name="input_filter" label="input_filter.config"/>
|
|
<rom name="fb_drv" label="fb_drv.config"/>
|
|
<rom name="nitpicker" label="nitpicker.config"/>
|
|
<rom name="numlock_remap" label="numlock_remap.config"/>
|
|
<rom name="leitzentrale" label="leitzentrale.config"/>
|
|
<rom name="drivers" label="drivers.config"/>
|
|
<rom name="deploy" label="manual_deploy.config"/>
|
|
<rom name="usb" label="usb.config"/>
|
|
<rom name="clipboard" label="clipboard.config"/>
|
|
<rom name="en_us.chargen"/>
|
|
<rom name="special.chargen"/>
|
|
<inline name="system">} [config_system_content] {
|
|
</inline>
|
|
</import>
|
|
</vfs>
|
|
<policy label="config_fs_rom -> " root="/" />
|
|
<policy label="rw" root="/" writeable="yes" />
|
|
</config>
|
|
''
|
|
)
|
|
}
|
|
, config_fs_rom =
|
|
Genode.Init.Start::{
|
|
, binary = "fs_rom"
|
|
, resources = { caps = 128, ram = Genode.units.MiB 10 }
|
|
, provides = [ "ROM" ]
|
|
, routes =
|
|
[ Genode.ServiceRoute.child "File_system" "config_fs" ]
|
|
}
|
|
, report_fs_rom =
|
|
Genode.Init.Start::{
|
|
, binary = "fs_rom"
|
|
, resources = { caps = 128, ram = Genode.units.MiB 3 }
|
|
, provides = [ "ROM" ]
|
|
, routes =
|
|
[ Genode.ServiceRoute.child "File_system" "report_fs" ]
|
|
}
|
|
, report_fs =
|
|
Genode.Init.Start::{
|
|
, binary = "ram_fs"
|
|
, resources = { caps = 128, ram = Genode.units.MiB 16 }
|
|
, provides = [ "File_system" ]
|
|
, config =
|
|
Some
|
|
( Genode.Prelude.XML.text
|
|
''
|
|
<config>
|
|
<content>
|
|
<inline name="log">### start ###</inline>
|
|
<dir name="runtime">
|
|
<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>
|
|
</content>
|
|
<policy label="fs_report -> "
|
|
root="/" writeable="yes"/>
|
|
<policy label="log_terminal -> "
|
|
root="/" writeable="yes"/>
|
|
<policy label="report_fs_rom -> "
|
|
root="/"/>
|
|
<policy label="ro"
|
|
root="/"/>
|
|
</config>
|
|
''
|
|
)
|
|
}
|
|
, fs_report =
|
|
Genode.Init.Start::{
|
|
, binary = "fs_report"
|
|
, provides = [ "Report" ]
|
|
, config =
|
|
Some
|
|
( Genode.Prelude.XML.text
|
|
"<config> <vfs> <fs/> </vfs> </config>"
|
|
)
|
|
, routes =
|
|
[ Genode.ServiceRoute.child "File_system" "report_fs" ]
|
|
}
|
|
, drivers =
|
|
Genode.Init.Start::{
|
|
, binary = "init"
|
|
, constrainPhys = True
|
|
, resources = { caps = 3000, ram = Genode.units.MiB 96 }
|
|
, provides =
|
|
[ "Input", "Framebuffer", "Block", "Usb", "Platform" ]
|
|
, routes =
|
|
[ Genode.ServiceRoute.parent "IO_MEM"
|
|
, Genode.ServiceRoute.parent "IO_PORT"
|
|
, Genode.ServiceRoute.parent "IRQ"
|
|
, Genode.ServiceRoute.parentLabel
|
|
"ROM"
|
|
(Some "config")
|
|
(Some "drivers.config")
|
|
, Genode.ServiceRoute.child "Timer" "timer"
|
|
, Genode.ServiceRoute.child "Report" "fs_report"
|
|
, Genode.ServiceRoute.childLabel
|
|
"ROM"
|
|
"config_fs_rom"
|
|
(Some "usb_policy")
|
|
(Some "usb_policy")
|
|
, Genode.ServiceRoute.childLabel
|
|
"ROM"
|
|
"report_rom"
|
|
(Some "capslock")
|
|
(Some "capslock")
|
|
, Genode.ServiceRoute.childLabel
|
|
"ROM"
|
|
"report_rom"
|
|
(Some "numlock")
|
|
(Some "numlock")
|
|
]
|
|
}
|
|
, nitpicker =
|
|
Genode.Init.Start::{
|
|
, binary = "nitpicker"
|
|
, resources = { caps = 1000, ram = Genode.units.MiB 6 }
|
|
, provides = [ "Nitpicker" ]
|
|
, routes =
|
|
[ Genode.ServiceRoute.childLabel
|
|
"ROM"
|
|
"config_fs_rom"
|
|
(Some "config")
|
|
(Some "nitpicker")
|
|
, Genode.ServiceRoute.childLabel
|
|
"ROM"
|
|
"nit_focus"
|
|
(Some "focus")
|
|
(Some "focus")
|
|
, Genode.ServiceRoute.childLabel
|
|
"Report"
|
|
"report_logger"
|
|
(Some "keystate")
|
|
(Some "keystate")
|
|
, Genode.ServiceRoute.child "Report" "report_rom"
|
|
, Genode.ServiceRoute.child "Framebuffer" "drivers"
|
|
, Genode.ServiceRoute.child "Input" "drivers"
|
|
, Genode.ServiceRoute.child "Timer" "timer"
|
|
]
|
|
}
|
|
, nit_focus =
|
|
Genode.Init.Start::{
|
|
, binary = "rom_filter"
|
|
, provides = [ "ROM" ]
|
|
, config =
|
|
Some
|
|
( Genode.Prelude.XML.text
|
|
''
|
|
<config>
|
|
<input name="lockscreen_enabled" rom="hover" node="hover">
|
|
<attribute name="label" /> </input>
|
|
<input name="leitzentrale_enabled" rom="leitzentrale" node="leitzentrale">
|
|
<attribute name="enabled" /> </input>
|
|
<output node="focus">
|
|
<if>
|
|
<has_value input="lockscreen_enabled" value="lock_screen" />
|
|
<then>
|
|
<attribute name="label" value="lock_screen"/>
|
|
</then>
|
|
<else>
|
|
<if>
|
|
<has_value input="leitzentrale_enabled" value="yes" />
|
|
<then>
|
|
<attribute name="label" value="leitzentrale -> manager -> fader -> "/>
|
|
</then>
|
|
<else>
|
|
<attribute name="label" value="runtime -> focus"/>
|
|
</else>
|
|
</if>
|
|
</else>
|
|
</if>
|
|
</output>
|
|
</config>
|
|
''
|
|
)
|
|
, routes =
|
|
[ Genode.ServiceRoute.childLabel
|
|
"ROM"
|
|
"report_rom"
|
|
(Some "hover")
|
|
(None Text)
|
|
, Genode.ServiceRoute.childLabel
|
|
"ROM"
|
|
"report_rom"
|
|
(Some "leitzentrale")
|
|
(None Text)
|
|
, Genode.ServiceRoute.childLabel
|
|
"ROM"
|
|
"report_rom"
|
|
(Some "slides")
|
|
(None Text)
|
|
]
|
|
}
|
|
, pointer =
|
|
Genode.Init.Start::{
|
|
, binary = "pointer"
|
|
, resources = { caps = 128, ram = Genode.units.MiB 2 }
|
|
, provides = [ "Report" ]
|
|
, config =
|
|
Some (Genode.Prelude.XML.text "<config shapes=\"yes\"/>")
|
|
, routes =
|
|
[ Genode.ServiceRoute.child "Nitpicker" "nitpicker"
|
|
, Genode.ServiceRoute.childLabel
|
|
"ROM"
|
|
"report_rom"
|
|
(Some "hover")
|
|
(None Text)
|
|
, Genode.ServiceRoute.childLabel
|
|
"ROM"
|
|
"report_rom"
|
|
(Some "xray")
|
|
(None Text)
|
|
]
|
|
}
|
|
, global_keys_handler =
|
|
Genode.Init.Start::{
|
|
, binary = "global_keys_handler"
|
|
, config =
|
|
Some
|
|
( Genode.Prelude.XML.text
|
|
''
|
|
<config>
|
|
<bool name="leitzentrale" initial="yes"/>
|
|
<bool name="capslock" initial="no"/>
|
|
<bool name="numlock" initial="no"/>
|
|
<bool name="slides" initial="no"/>
|
|
|
|
<press name="KEY_PRESENTATION" bool="slides" change="toggle"/>
|
|
<press name="KEY_DASHBOARD" bool="leitzentrale" change="toggle"/>
|
|
<press name="KEY_CAPSLOCK" bool="capslock" change="toggle"/>
|
|
<press name="KEY_NUMLOCK" bool="numlock" change="toggle"/>
|
|
|
|
<report name="leitzentrale"> <bool name="leitzentrale"/> </report>
|
|
<report name="capslock"> <bool name="capslock"/> </report>
|
|
<report name="numlock"> <bool name="numlock"/> </report>
|
|
<report name="slides"> <bool name="slides"/> </report>
|
|
</config>
|
|
''
|
|
)
|
|
, routes =
|
|
[ Genode.ServiceRoute.child "Report" "report_rom"
|
|
, Genode.ServiceRoute.child "Nitpicker" "nitpicker"
|
|
, Genode.ServiceRoute.child "Timer" "timer"
|
|
]
|
|
}
|
|
, rtc_drv =
|
|
Genode.Init.Start::{
|
|
, binary = "rtc_drv"
|
|
, provides = [ "Rtc" ]
|
|
, routes = [ Genode.ServiceRoute.parent "IO_PORT" ]
|
|
}
|
|
}
|
|
}
|