Use "record override" syntatic-sugar in Dhall test configs
This commit is contained in:
parent
1df76e3bca
commit
9410b836c2
|
@ -6,6 +6,6 @@
|
||||||
|
|
||||||
fetchgit {
|
fetchgit {
|
||||||
url = "https://git.sr.ht/~ehmry/dhall-genode";
|
url = "https://git.sr.ht/~ehmry/dhall-genode";
|
||||||
rev = "031fb4ef77dc8a2dbe71fd806129b4eacfe0606a";
|
rev = "4e05e7bf88e53c81a8f00460673fd48e858c6dfc";
|
||||||
sha256 = "1hvy21w406fy01b9fag3pmz22zlnfdkz17fmrv2h8xxj5lci9z5n";
|
sha256 = "0y92jinqr26wlrychk8mi58kqwmy4y25c2ffks3r3m78i8andi8y";
|
||||||
}
|
}
|
||||||
|
|
|
@ -22,6 +22,18 @@ let
|
||||||
|
|
||||||
lib = hostPkgs.lib // {
|
lib = hostPkgs.lib // {
|
||||||
|
|
||||||
|
dhallText = name: source:
|
||||||
|
hostPkgs.runCommand name {
|
||||||
|
inherit name source;
|
||||||
|
preferLocalBuild = true;
|
||||||
|
buildInputs = [ hostPkgs.dhall ];
|
||||||
|
DHALL_PRELUDE = "${testPkgs.dhallPackages.prelude}/package.dhall";
|
||||||
|
DHALL_GENODE = "${testPkgs.dhallPackages.genode}/package.dhall";
|
||||||
|
} ''
|
||||||
|
export XDG_CACHE_HOME=$NIX_BUILD_TOP
|
||||||
|
dhall text < $source > $out
|
||||||
|
'';
|
||||||
|
|
||||||
renderDhallInit = path: args:
|
renderDhallInit = path: args:
|
||||||
hostPkgs.runCommand "init.xml" {
|
hostPkgs.runCommand "init.xml" {
|
||||||
preferLocalBuild = true;
|
preferLocalBuild = true;
|
||||||
|
@ -32,8 +44,8 @@ let
|
||||||
DHALL_GENODE = "${testPkgs.dhallPackages.genode}/package.dhall";
|
DHALL_GENODE = "${testPkgs.dhallPackages.genode}/package.dhall";
|
||||||
} ''
|
} ''
|
||||||
export XDG_CACHE_HOME=$NIX_BUILD_TOP
|
export XDG_CACHE_HOME=$NIX_BUILD_TOP
|
||||||
echo 'let Prelude = env:DHALL_GENODE in Prelude.Init.render (Prelude.Init.defaults ⫽ { children = toMap (env:initConfig env:initArgs) })' \
|
dhall text \
|
||||||
| dhall text \
|
<<< 'let Prelude = env:DHALL_GENODE in Prelude.Init.render (Prelude.Init::{ children = toMap (env:initConfig env:initArgs) })' \
|
||||||
> $out
|
> $out
|
||||||
'';
|
'';
|
||||||
};
|
};
|
||||||
|
|
|
@ -2,23 +2,23 @@ let Genode = env:DHALL_GENODE
|
||||||
|
|
||||||
in λ(_ : {})
|
in λ(_ : {})
|
||||||
→ { test-libc =
|
→ { test-libc =
|
||||||
Genode.Init.Start.defaults
|
Genode.Init.Start::{
|
||||||
⫽ { binary = "test-libc"
|
, binary = "test-libc"
|
||||||
, resources = { caps = 200, ram = Genode.units.MiB 400 }
|
, resources = { caps = 200, ram = Genode.units.MiB 400 }
|
||||||
, routes = [ Genode.ServiceRoute.parent "Timer" ]
|
, routes = [ Genode.ServiceRoute.parent "Timer" ]
|
||||||
, config =
|
, config =
|
||||||
Genode.Prelude.XML.text
|
Genode.Prelude.XML.text
|
||||||
''
|
''
|
||||||
<config>
|
<config>
|
||||||
<vfs>
|
<vfs>
|
||||||
<dir name="dev">
|
<dir name="dev">
|
||||||
<log/>
|
<log/>
|
||||||
<inline name="rtc">2019-08-20 15:01</inline>
|
<inline name="rtc">2019-08-20 15:01</inline>
|
||||||
</dir>
|
</dir>
|
||||||
</vfs>
|
</vfs>
|
||||||
<libc stdout="/dev/log" stderr="/dev/log" rtc="/dev/rtc"/>
|
<libc stdout="/dev/log" stderr="/dev/log" rtc="/dev/rtc"/>
|
||||||
</config>
|
</config>
|
||||||
''
|
''
|
||||||
}
|
}
|
||||||
: Genode.Init.Start.Type
|
: Genode.Init.Start.Type
|
||||||
}
|
}
|
||||||
|
|
|
@ -1,7 +1,3 @@
|
||||||
let Genode = env:DHALL_GENODE ? ../dhall-genode/package.dhall
|
let Genode = env:DHALL_GENODE ? ../dhall-genode/package.dhall
|
||||||
|
|
||||||
in λ(_ : {})
|
in λ(_ : {}) → { test-log = Genode.Init.Start::{ binary = "test-log" } }
|
||||||
→ { test-log =
|
|
||||||
Genode.Init.Start.defaults ⫽ { binary = "test-log" }
|
|
||||||
: Genode.Init.Start.Type
|
|
||||||
}
|
|
||||||
|
|
|
@ -66,11 +66,12 @@ in hostPkgs.stdenv.mkDerivation {
|
||||||
dontUnpack = true;
|
dontUnpack = true;
|
||||||
dontConfigure = true;
|
dontConfigure = true;
|
||||||
dontBuild = true;
|
dontBuild = true;
|
||||||
|
inherit modulesAsm;
|
||||||
installPhase = ''
|
installPhase = ''
|
||||||
mkdir -p boot/syslinux
|
mkdir -p boot/syslinux
|
||||||
|
|
||||||
# compile the boot modules into one object file
|
# compile the boot modules into one object file
|
||||||
echo '${modulesAsm}' | $CC -c -x assembler -o boot_modules.o -
|
$CC -c -x assembler -o boot_modules.o - <<< $modulesAsm
|
||||||
|
|
||||||
# link final image
|
# link final image
|
||||||
$LD -nostdlib \
|
$LD -nostdlib \
|
||||||
|
|
|
@ -4,55 +4,54 @@ in λ ( _
|
||||||
: {}
|
: {}
|
||||||
)
|
)
|
||||||
→ { test-pci =
|
→ { test-pci =
|
||||||
Genode.Init.Start.defaults
|
Genode.Init.Start::{
|
||||||
⫽ { binary = "test-pci"
|
, binary = "test-pci"
|
||||||
, resources = { caps = 96, ram = Genode.units.MiB 2 }
|
, resources = { caps = 96, ram = Genode.units.MiB 2 }
|
||||||
, routes = [ Genode.ServiceRoute.child "Platform" "platform_drv" ]
|
, routes = [ Genode.ServiceRoute.child "Platform" "platform_drv" ]
|
||||||
}
|
}
|
||||||
, acpi_report_rom =
|
, acpi_report_rom =
|
||||||
Genode.Init.Start.defaults
|
Genode.Init.Start::{
|
||||||
⫽ { binary =
|
, binary = "report_rom"
|
||||||
"report_rom"
|
, resources = { caps = 96, ram = Genode.units.MiB 2 }
|
||||||
, resources = { caps = 96, ram = Genode.units.MiB 2 }
|
, provides = [ "ROM", "Report" ]
|
||||||
, provides = [ "ROM", "Report" ]
|
, config =
|
||||||
, config =
|
Genode.Prelude.XML.text
|
||||||
Genode.Prelude.XML.text
|
''
|
||||||
''
|
<config system="yes">
|
||||||
<config system="yes">
|
<policy label="smbios_decoder -> smbios_table" report="acpi_drv -> smbios_table"/>
|
||||||
<policy label="smbios_decoder -> smbios_table" report="acpi_drv -> smbios_table"/>
|
<policy label="platform_drv -> acpi" report="acpi_drv -> acpi"/>
|
||||||
<policy label="platform_drv -> acpi" report="acpi_drv -> acpi"/>
|
</config>
|
||||||
</config>
|
''
|
||||||
''
|
}
|
||||||
}
|
|
||||||
, acpi_drv =
|
, acpi_drv =
|
||||||
Genode.Init.Start.defaults
|
Genode.Init.Start::{
|
||||||
⫽ { binary = "acpi_drv"
|
, binary = "acpi_drv"
|
||||||
, resources = { caps = 400, ram = Genode.units.MiB 4 }
|
, resources = { caps = 400, ram = Genode.units.MiB 4 }
|
||||||
, constrainPhys = True
|
, constrainPhys = True
|
||||||
, provides = [ "Platform", "Acpi" ]
|
, provides = [ "Platform", "Acpi" ]
|
||||||
, routes =
|
, routes =
|
||||||
[ Genode.ServiceRoute.child "Report" "acpi_report_rom"
|
[ Genode.ServiceRoute.child "Report" "acpi_report_rom"
|
||||||
, Genode.ServiceRoute.parent "IRQ"
|
, Genode.ServiceRoute.parent "IRQ"
|
||||||
, Genode.ServiceRoute.parent "IO_MEM"
|
, Genode.ServiceRoute.parent "IO_MEM"
|
||||||
, Genode.ServiceRoute.parent "IO_PORT"
|
, Genode.ServiceRoute.parent "IO_PORT"
|
||||||
]
|
]
|
||||||
}
|
}
|
||||||
, platform_drv =
|
, platform_drv =
|
||||||
Genode.Init.Start.defaults
|
Genode.Init.Start::{
|
||||||
⫽ { binary = "platform_drv"
|
, binary = "platform_drv"
|
||||||
, resources = { caps = 800, ram = Genode.units.MiB 4 }
|
, resources = { caps = 800, ram = Genode.units.MiB 4 }
|
||||||
, constrainPhys = True
|
, constrainPhys = True
|
||||||
, provides = [ "Platform", "Acpi" ]
|
, provides = [ "Platform", "Acpi" ]
|
||||||
, routes =
|
, routes =
|
||||||
[ Genode.ServiceRoute.parent "Timer"
|
[ Genode.ServiceRoute.parent "Timer"
|
||||||
, Genode.ServiceRoute.parent "IRQ"
|
, Genode.ServiceRoute.parent "IRQ"
|
||||||
, Genode.ServiceRoute.parent "IO_MEM"
|
, Genode.ServiceRoute.parent "IO_MEM"
|
||||||
, Genode.ServiceRoute.parent "IO_PORT"
|
, Genode.ServiceRoute.parent "IO_PORT"
|
||||||
, Genode.ServiceRoute.childLabel
|
, Genode.ServiceRoute.childLabel
|
||||||
"ROM"
|
"ROM"
|
||||||
"acpi_report_rom"
|
"acpi_report_rom"
|
||||||
(Some "acpi")
|
(Some "acpi")
|
||||||
(None Text)
|
(None Text)
|
||||||
]
|
]
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
|
@ -2,10 +2,10 @@ let Genode = env:DHALL_GENODE ? ../dhall-genode/package.dhall
|
||||||
|
|
||||||
in λ(_ : {})
|
in λ(_ : {})
|
||||||
→ { test-signal =
|
→ { test-signal =
|
||||||
Genode.Init.Start.defaults
|
Genode.Init.Start::{
|
||||||
⫽ { binary = "test-signal"
|
, binary = "test-signal"
|
||||||
, resources = { caps = 500, ram = Genode.units.MiB 10 }
|
, resources = { caps = 500, ram = Genode.units.MiB 10 }
|
||||||
, routes = [ Genode.ServiceRoute.parent "Timer" ]
|
, routes = [ Genode.ServiceRoute.parent "Timer" ]
|
||||||
}
|
}
|
||||||
: Genode.Init.Start.Type
|
: Genode.Init.Start.Type
|
||||||
}
|
}
|
||||||
|
|
|
@ -2,23 +2,23 @@ let Genode = env:DHALL_GENODE
|
||||||
|
|
||||||
in λ(_ : {})
|
in λ(_ : {})
|
||||||
→ { solo5 =
|
→ { solo5 =
|
||||||
Genode.Init.Start.defaults
|
Genode.Init.Start::{
|
||||||
⫽ { binary = "test"
|
, binary = "test"
|
||||||
, resources = { caps = 256, ram = Genode.units.MiB 3 }
|
, resources = { caps = 256, ram = Genode.units.MiB 3 }
|
||||||
, routes =
|
, routes =
|
||||||
[ Genode.ServiceRoute.parent "Timer"
|
[ Genode.ServiceRoute.parent "Timer"
|
||||||
, Genode.ServiceRoute.child "Block" "block"
|
, Genode.ServiceRoute.child "Block" "block"
|
||||||
]
|
]
|
||||||
}
|
}
|
||||||
, block =
|
, block =
|
||||||
Genode.Init.Start.defaults
|
Genode.Init.Start::{
|
||||||
⫽ { binary = "ram_block"
|
, binary = "ram_block"
|
||||||
, provides = [ "Block" ]
|
, provides = [ "Block" ]
|
||||||
, resources = { caps = 96, ram = Genode.units.MiB 9 }
|
, resources = { caps = 96, ram = Genode.units.MiB 9 }
|
||||||
, config =
|
, config =
|
||||||
Genode.Prelude.XML.text
|
Genode.Prelude.XML.text
|
||||||
''
|
''
|
||||||
<config size="8M" block_size="4096"/>
|
<config size="8M" block_size="4096"/>
|
||||||
''
|
''
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
|
@ -2,53 +2,52 @@ let Genode = env:DHALL_GENODE
|
||||||
|
|
||||||
in λ(_ : {})
|
in λ(_ : {})
|
||||||
→ { nic =
|
→ { nic =
|
||||||
Genode.Init.Start.defaults
|
Genode.Init.Start::{ binary = "nic_loopback", provides = [ "Nic" ] }
|
||||||
⫽ { binary = "nic_loopback", provides = [ "Nic" ] }
|
|
||||||
, bridge =
|
, bridge =
|
||||||
Genode.Init.Start.defaults
|
Genode.Init.Start::{
|
||||||
⫽ { binary = "nic_bridge"
|
, binary = "nic_bridge"
|
||||||
, resources = { caps = 200, ram = Genode.units.MiB 6 }
|
, resources = { caps = 200, ram = Genode.units.MiB 6 }
|
||||||
, provides = [ "Nic" ]
|
, provides = [ "Nic" ]
|
||||||
, routes = [ Genode.ServiceRoute.child "Nic" "nic" ]
|
, routes = [ Genode.ServiceRoute.child "Nic" "nic" ]
|
||||||
, config =
|
, config =
|
||||||
Genode.Prelude.XML.text
|
Genode.Prelude.XML.text
|
||||||
''
|
''
|
||||||
<config mac="02:02:02:02:03:00" verbose="no">
|
<config mac="02:02:02:02:03:00" verbose="no">
|
||||||
<policy label_prefix="solo5" ip_addr="10.0.0.2"/>
|
<policy label_prefix="solo5" ip_addr="10.0.0.2"/>
|
||||||
<default-policy/>
|
<default-policy/>
|
||||||
</config>
|
</config>
|
||||||
''
|
''
|
||||||
}
|
}
|
||||||
, solo5 =
|
, solo5 =
|
||||||
Genode.Init.Start.defaults
|
Genode.Init.Start::{
|
||||||
⫽ { binary = "test"
|
, binary = "test"
|
||||||
, resources = { caps = 256, ram = Genode.units.MiB 3 }
|
, resources = { caps = 256, ram = Genode.units.MiB 3 }
|
||||||
, routes =
|
, routes =
|
||||||
[ Genode.ServiceRoute.parent "Timer"
|
[ Genode.ServiceRoute.parent "Timer"
|
||||||
, Genode.ServiceRoute.child "Nic" "bridge"
|
, Genode.ServiceRoute.child "Nic" "bridge"
|
||||||
]
|
]
|
||||||
, config =
|
, config =
|
||||||
Genode.Prelude.XML.text
|
Genode.Prelude.XML.text
|
||||||
''
|
''
|
||||||
<config><cmdline>limit</cmdline></config>
|
<config><cmdline>limit</cmdline></config>
|
||||||
''
|
''
|
||||||
}
|
}
|
||||||
, ping =
|
, ping =
|
||||||
Genode.Init.Start.defaults
|
Genode.Init.Start::{
|
||||||
⫽ { binary = "ping"
|
, binary = "ping"
|
||||||
, resources = { caps = 128, ram = Genode.units.MiB 6 }
|
, resources = { caps = 128, ram = Genode.units.MiB 6 }
|
||||||
, routes =
|
, routes =
|
||||||
[ Genode.ServiceRoute.parent "Timer"
|
[ Genode.ServiceRoute.parent "Timer"
|
||||||
, Genode.ServiceRoute.child "Nic" "bridge"
|
, Genode.ServiceRoute.child "Nic" "bridge"
|
||||||
]
|
]
|
||||||
, config =
|
, config =
|
||||||
Genode.Prelude.XML.text
|
Genode.Prelude.XML.text
|
||||||
''
|
''
|
||||||
<config interface="10.0.0.72/24"
|
<config interface="10.0.0.72/24"
|
||||||
dst_ip="10.0.0.2"
|
dst_ip="10.0.0.2"
|
||||||
period_sec="1"
|
period_sec="1"
|
||||||
verbose="no"
|
verbose="no"
|
||||||
count="8"/>
|
count="8"/>
|
||||||
''
|
''
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
|
@ -4,60 +4,58 @@ in λ ( _
|
||||||
: {}
|
: {}
|
||||||
)
|
)
|
||||||
→ { nic =
|
→ { nic =
|
||||||
Genode.Init.Start.defaults
|
Genode.Init.Start::{ binary = "nic_loopback", provides = [ "Nic" ] }
|
||||||
⫽ { binary = "nic_loopback", provides = [ "Nic" ] }
|
|
||||||
, bridge =
|
, bridge =
|
||||||
Genode.Init.Start.defaults
|
Genode.Init.Start::{
|
||||||
⫽ { binary = "nic_bridge"
|
, binary = "nic_bridge"
|
||||||
, resources = { caps = 200, ram = Genode.units.MiB 8 }
|
, resources = { caps = 200, ram = Genode.units.MiB 8 }
|
||||||
, provides = [ "Nic" ]
|
, provides = [ "Nic" ]
|
||||||
, routes = [ Genode.ServiceRoute.child "Nic" "nic" ]
|
, routes = [ Genode.ServiceRoute.child "Nic" "nic" ]
|
||||||
, config =
|
, config =
|
||||||
Genode.Prelude.XML.text
|
Genode.Prelude.XML.text
|
||||||
''
|
''
|
||||||
<config mac="02:02:02:02:03:00" verbose="no">
|
<config mac="02:02:02:02:03:00" verbose="no">
|
||||||
<policy label="solo5 -> service0" ip_addr="10.0.0.2"/>
|
<policy label="solo5 -> service0" ip_addr="10.0.0.2"/>
|
||||||
<policy label="solo5 -> service1" ip_addr="10.1.0.2"/>
|
<policy label="solo5 -> service1" ip_addr="10.1.0.2"/>
|
||||||
<default-policy/>
|
<default-policy/>
|
||||||
</config>
|
</config>
|
||||||
''
|
''
|
||||||
}
|
}
|
||||||
, solo5 =
|
, solo5 =
|
||||||
Genode.Init.Start.defaults
|
Genode.Init.Start::{
|
||||||
⫽ { binary = "test"
|
, binary = "test"
|
||||||
, resources = { caps = 256, ram = Genode.units.MiB 4 }
|
, resources = { caps = 256, ram = Genode.units.MiB 4 }
|
||||||
, routes =
|
, routes =
|
||||||
[ Genode.ServiceRoute.parent "Timer"
|
[ Genode.ServiceRoute.parent "Timer"
|
||||||
, Genode.ServiceRoute.child "Nic" "bridge"
|
, Genode.ServiceRoute.child "Nic" "bridge"
|
||||||
]
|
]
|
||||||
, config =
|
, config =
|
||||||
Genode.Prelude.XML.text
|
Genode.Prelude.XML.text
|
||||||
''
|
''
|
||||||
<config><cmdline>limit</cmdline></config>
|
<config><cmdline>limit</cmdline></config>
|
||||||
''
|
''
|
||||||
}
|
}
|
||||||
, clients =
|
, clients =
|
||||||
Genode.Init.Start.defaults
|
Genode.Init.Start::{
|
||||||
⫽ { binary =
|
, binary = "sequence"
|
||||||
"sequence"
|
, resources = { caps = 256, ram = Genode.units.MiB 8 }
|
||||||
, resources = { caps = 256, ram = Genode.units.MiB 8 }
|
, routes =
|
||||||
, routes =
|
[ Genode.ServiceRoute.parent "Timer"
|
||||||
[ Genode.ServiceRoute.parent "Timer"
|
, Genode.ServiceRoute.child "Nic" "bridge"
|
||||||
, Genode.ServiceRoute.child "Nic" "bridge"
|
]
|
||||||
]
|
, config =
|
||||||
, config =
|
Genode.Prelude.XML.text
|
||||||
Genode.Prelude.XML.text
|
''
|
||||||
''
|
<config>
|
||||||
<config>
|
<start name="ping0">
|
||||||
<start name="ping0">
|
<binary name="ping"/>
|
||||||
<binary name="ping"/>
|
<config interface="10.0.0.72/24" dst_ip="10.0.0.2" period_sec="1" count="4"/>
|
||||||
<config interface="10.0.0.72/24" dst_ip="10.0.0.2" period_sec="1" count="4"/>
|
</start>
|
||||||
</start>
|
<start name="ping1">
|
||||||
<start name="ping1">
|
<binary name="ping"/>
|
||||||
<binary name="ping"/>
|
<config interface="10.1.0.72/24" dst_ip="10.1.0.2" period_sec="1" count="4"/>
|
||||||
<config interface="10.1.0.72/24" dst_ip="10.1.0.2" period_sec="1" count="4"/>
|
</start>
|
||||||
</start>
|
</config>
|
||||||
</config>
|
''
|
||||||
''
|
}
|
||||||
}
|
|
||||||
}
|
}
|
||||||
|
|
|
@ -2,16 +2,16 @@ let Genode = env:DHALL_GENODE
|
||||||
|
|
||||||
in λ(_ : {})
|
in λ(_ : {})
|
||||||
→ { solo5 =
|
→ { solo5 =
|
||||||
Genode.Init.Start.defaults
|
Genode.Init.Start::{
|
||||||
⫽ { binary = "test"
|
, binary = "test"
|
||||||
, resources = { caps = 256, ram = Genode.units.MiB 3 }
|
, resources = { caps = 256, ram = Genode.units.MiB 3 }
|
||||||
, routes = [ Genode.ServiceRoute.parent "Timer" ]
|
, routes = [ Genode.ServiceRoute.parent "Timer" ]
|
||||||
, config =
|
, config =
|
||||||
Genode.Prelude.XML.text
|
Genode.Prelude.XML.text
|
||||||
''
|
''
|
||||||
<config>
|
<config>
|
||||||
<cmdline>Hello_Solo5</cmdline>
|
<cmdline>Hello_Solo5</cmdline>
|
||||||
</config>
|
</config>
|
||||||
''
|
''
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
|
@ -2,20 +2,18 @@ let Genode = env:DHALL_GENODE
|
||||||
|
|
||||||
in λ(_ : {})
|
in λ(_ : {})
|
||||||
→ { solo5 =
|
→ { solo5 =
|
||||||
Genode.Init.Start.defaults
|
Genode.Init.Start::{
|
||||||
⫽ { binary = "test"
|
, binary = "test"
|
||||||
, resources = { caps = 256, ram = Genode.units.MiB 3 }
|
, resources = { caps = 256, ram = Genode.units.MiB 3 }
|
||||||
, routes =
|
, routes =
|
||||||
[ Genode.ServiceRoute.parent "Timer"
|
[ Genode.ServiceRoute.parent "Timer"
|
||||||
, Genode.ServiceRoute.child "Rtc" "clock"
|
, Genode.ServiceRoute.child "Rtc" "clock"
|
||||||
]
|
]
|
||||||
}
|
}
|
||||||
, clock =
|
, clock =
|
||||||
Genode.Init.Start.defaults
|
Genode.Init.Start::{
|
||||||
⫽ { binary = "rtc_drv"
|
, binary = "rtc_drv"
|
||||||
, provides = [ "Rtc" ]
|
, provides = [ "Rtc" ]
|
||||||
, routes =
|
, routes = [ Genode.ServiceRoute.parent "IO_PORT" ]
|
||||||
[ Genode.ServiceRoute.parent "IO_PORT"
|
}
|
||||||
]
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
|
|
Loading…
Reference in New Issue