From c3385aedd09c8144ed083659d7c246289a38e37d Mon Sep 17 00:00:00 2001 From: Emery Hemingway Date: Sat, 29 Aug 2020 17:31:53 +0200 Subject: [PATCH] genodeSources: 20.05 -> 20.08 --- compositions/pc-drivers.dhall | 8 +- flake.nix | 82 +--------- nixos-modules/default.nix | 10 +- nixos-modules/dhall/console.dhall | 35 ++-- nixos-modules/dhall/fs-log.dhall | 1 - nixos-modules/dhall/graphical-log.dhall | 11 +- nixos-modules/dhall/qwerty.chargen.dhall | 16 +- nixos-modules/dhall/root.dhall | 92 ++++++----- nixos-modules/dhall/show_input.dhall | 3 +- nixos-modules/dhall/vbox-guest.dhall | 23 ++- nixos-modules/dhall/wm.dhall | 27 ++-- nixos-modules/dhall/workman.chargen.dhall | 16 +- packages/genodelabs/LIB.patch | 35 ++-- packages/genodelabs/default.nix | 4 +- ...{input_filter.patch => event_filter.patch} | 8 +- packages/genodelabs/libc.patch | 27 ---- packages/genodelabs/port-versions.nix | 22 ++- packages/genodelabs/ports.nix | 8 +- packages/genodelabs/targets.nix | 5 +- .../vbox-framebuffer-fail-on-fail.patch | 126 --------------- tests/driver_manager.dhall | 153 ------------------ tests/log.dhall | 1 - tests/posix.dhall | 23 ++- tests/solo5/blk.dhall | 21 ++- tests/solo5/default.nix | 3 +- tests/solo5/net.dhall | 1 - tests/solo5/net_2if.dhall | 1 - tests/solo5/solo5.dhall | 13 +- tests/solo5/ssp.dhall | 1 - tests/solo5/time.dhall | 1 - tests/test-wrapper.dhall | 37 +++-- tests/test.dhall | 7 +- tests/vmm_arm.dhall | 7 +- tests/vmm_x86.dhall | 3 +- tests/x86.dhall | 3 +- 35 files changed, 223 insertions(+), 611 deletions(-) rename packages/genodelabs/{input_filter.patch => event_filter.patch} (88%) delete mode 100644 packages/genodelabs/vbox-framebuffer-fail-on-fail.patch delete mode 100644 tests/driver_manager.dhall diff --git a/compositions/pc-drivers.dhall b/compositions/pc-drivers.dhall index d564726..826ea25 100644 --- a/compositions/pc-drivers.dhall +++ b/compositions/pc-drivers.dhall @@ -30,7 +30,7 @@ let drivers = , ServiceRoute.child "Block" "dynamic" , ServiceRoute.child "Usb" "usb_drv" , ServiceRoute.child "Platform" "platform_drv" - , ServiceRoute.child "Input" "input_filter" + , ServiceRoute.child "Input" "event_filter" ] , children = toMap { rom_reporter = @@ -169,10 +169,10 @@ let drivers = , provides = [ "Input" ] , routes = [ ServiceRoute.child "Platform" "platform_drv" ] } - , input_filter = + , event_filter = Child.flat Child.Attributes::{ - , binary = "input_filter" + , binary = "event_filter" , priority = 1 , resources = Resources::{ ram = Genode.units.MiB 2 } , provides = [ "Input" ] @@ -180,7 +180,7 @@ let drivers = [ ServiceRoute.parentLabel "ROM" (Some "config") - (Some "input_filter.config") + (Some "event_filter.config") , ServiceRoute.childLabel "Input" "ps2_drv" diff --git a/flake.nix b/flake.nix index d385c42..d08af5d 100644 --- a/flake.nix +++ b/flake.nix @@ -136,31 +136,7 @@ checks = # Checks for continous testing forAllCrossSystems ({ system, localSystem, crossSystem }: - let - nixos = nixpkgs.lib.nixosSystem { - system = localSystem; - modules = [ - self.nixosModules.genodeHost - ({ modulesPath, ... }: { - imports = [ "${modulesPath}/virtualisation/qemu-vm.nix" ]; - boot.loader.grub.extraEntriesBeforeNixOS = true; - virtualisation = { - cores = 2; - memorySize = 1024; - useBootLoader = true; - qemu = { - options = - [ "-machine q35" "-cpu phenom" "-serial mon:stdio" ]; - networkingOptions = [ - "-net nic,netdev=user.0,model=e1000" - "-netdev user,id=user.0\${QEMU_NET_OPTS:+,$QEMU_NET_OPTS}" - ]; - }; - }; - }) - ]; - }; - in import ./tests { + import ./tests { inherit self; apps = self.apps.${system}; localPackages = nixpkgsFor.${localSystem}; @@ -176,62 +152,6 @@ self.packages.${system}.genodeSources.ports); }; - nixosModule = nixos.config.system.build.vm; - nixosXML = nixos.config.system.build.genode.xml; - - nixosGuest = let - nixos = nixpkgs.lib.nixosSystem { - system = localSystem; - modules = [ - self.nixosModules.genodeHost - ({ modulesPath, ... }: { - imports = [ "${modulesPath}/virtualisation/qemu-vm.nix" ]; - boot.loader.grub.extraEntriesBeforeNixOS = true; - virtualisation = { - cores = 2; - memorySize = 1024; - useBootLoader = true; - qemu = { - options = - [ "-machine q35" "-cpu phenom" "-serial mon:stdio" ]; - networkingOptions = [ - "-net nic,netdev=user.0,model=e1000" - "-netdev user,id=user.0\${QEMU_NET_OPTS:+,$QEMU_NET_OPTS}" - ]; - }; - }; - genode.guests = { - flakeCheck = { - config = { config, lib, pkgs, ... }: { - networking.firewall.allowedTCPPorts = [ 80 ]; - services.mingetty.autologinUser = - lib.mkDefault "root"; - services.nginx.enable = true; - services.openssh.permitRootLogin = - lib.mkDefault "yes"; - services.sshd.enable = true; - users.users.root.password = "nixos"; - virtualbox.memorySize = 128; - }; - }; - azimuth = { - bootFormat = "vdi"; - config = { config, lib, pkgs, ... }: { - services.cage = { - enable = true; - program = "${pkgs.azimuth}/bin/tor-azimuth"; - }; - users.users.demo.isNormalUser = true; - virtualbox.memorySize = 1024; - }; - }; - }; - - }) - ]; - }; - in nixos.config.system.build.vm; - }); }; diff --git a/nixos-modules/default.nix b/nixos-modules/default.nix index 871bafb..ec1158b 100644 --- a/nixos-modules/default.nix +++ b/nixos-modules/default.nix @@ -99,23 +99,23 @@ bootDescription = buildBootDescription { inherit initConfig; - imageInputs = [ legacyPackages'.bash pkgs'.show_input ] - ++ map pkgs'.genodeSources.depot ([ + imageInputs = [ legacyPackages'.bash ] ++ map pkgs'.genodeSources.depot + ([ "acpi_drv" "ahci_drv" "cached_fs_rom" "chroot" "decorator" + "event_filter" "fs_log" + "gui_fb" "init" - "input_filter" "ipxe_nic_drv" "libc" "libiconv" "log_core" - "nit_fb" - "nitpicker" "nic_router" + "nitpicker" "part_block" "platform_drv" "posix" diff --git a/nixos-modules/dhall/console.dhall b/nixos-modules/dhall/console.dhall index a3824f3..4ff9373 100644 --- a/nixos-modules/dhall/console.dhall +++ b/nixos-modules/dhall/console.dhall @@ -1,4 +1,3 @@ - let Genode = env:DHALL_GENODE let Prelude = Genode.Prelude @@ -13,8 +12,8 @@ let Resources = Init.Resources let ServiceRoute = Init.ServiceRoute -in λ(params : { bash : Text, coreutils : Text, path : Text }) - → let init = +in λ(params : { bash : Text, coreutils : Text, path : Text }) → + let init = Init::{ , verbose = True , routes = @@ -22,12 +21,12 @@ in λ(params : { bash : Text, coreutils : Text, path : Text }) Text Init.ServiceRoute.Type Init.ServiceRoute.parent - [ "Nitpicker", "Rtc", "Timer" ] + [ "Gui", "Rtc", "Timer" ] , children = toMap - { nit_fb = + { gui_fb = Child.flat Child.Attributes::{ - , binary = "nit_fb" + , binary = "gui_fb" , config = Init.Config::{ , attributes = toMap { xpos = "10" @@ -71,8 +70,8 @@ in λ(params : { bash : Text, coreutils : Text, path : Text }) , ram = Genode.units.MiB 4 } , routes = - [ ServiceRoute.child "Framebuffer" "nit_fb" - , ServiceRoute.child "Input" "nit_fb" + [ ServiceRoute.child "Framebuffer" "gui_fb" + , ServiceRoute.child "Input" "gui_fb" , ServiceRoute.parent "File_system" ] } @@ -141,8 +140,8 @@ in λ(params : { bash : Text, coreutils : Text, path : Text }) # Prelude.List.map Text XML.Type - ( λ(x : Text) - → XML.leaf + ( λ(x : Text) → + XML.leaf { name = "arg" , attributes = toMap { value = x } } @@ -157,13 +156,13 @@ in λ(params : { bash : Text, coreutils : Text, path : Text }) , routes = [ Init.ServiceRoute.child "File_system" "vfs" , { service = - { name = "ROM" - , label = - Init.LabelSelector.Type.Partial - { prefix = Some "/nix/store/" - , suffix = None Text - } - } + { name = "ROM" + , label = + Init.LabelSelector.Type.Partial + { prefix = Some "/nix/store/" + , suffix = None Text + } + } , route = Init.Route.Type.Child { name = "store_rom" @@ -181,7 +180,7 @@ in λ(params : { bash : Text, coreutils : Text, path : Text }) Init.Attributes::{ , routes = [ ServiceRoute.parent "File_system" - , ServiceRoute.parent "Nitpicker" + , ServiceRoute.parent "Gui" , ServiceRoute.parent "Rtc" , ServiceRoute.parent "Timer" ] diff --git a/nixos-modules/dhall/fs-log.dhall b/nixos-modules/dhall/fs-log.dhall index 570541e..ee36389 100644 --- a/nixos-modules/dhall/fs-log.dhall +++ b/nixos-modules/dhall/fs-log.dhall @@ -1,4 +1,3 @@ - let Genode = env:DHALL_GENODE let Init = Genode.Init diff --git a/nixos-modules/dhall/graphical-log.dhall b/nixos-modules/dhall/graphical-log.dhall index 6f52aec..d1e13ee 100644 --- a/nixos-modules/dhall/graphical-log.dhall +++ b/nixos-modules/dhall/graphical-log.dhall @@ -1,4 +1,3 @@ - let Genode = env:DHALL_GENODE let Prelude = Genode.Prelude @@ -23,12 +22,12 @@ in Init::{ Text Init.ServiceRoute.Type Init.ServiceRoute.parent - [ "Nitpicker", "Rtc", "Timer" ] + [ "Gui", "Rtc", "Timer" ] , children = toMap - { nit_fb = + { gui_fb = Child.flat Child.Attributes::{ - , binary = "nit_fb" + , binary = "gui_fb" , config = Init.Config::{ , attributes = toMap { initial_width = "600", initial_height = "600" } @@ -64,8 +63,8 @@ in Init::{ , provides = [ "Terminal" ] , resources = Resources::{ caps = 256, ram = Genode.units.MiB 4 } , routes = - [ ServiceRoute.child "Framebuffer" "nit_fb" - , ServiceRoute.child "Input" "nit_fb" + [ ServiceRoute.child "Framebuffer" "gui_fb" + , ServiceRoute.child "Input" "gui_fb" , ServiceRoute.parent "File_system" ] } diff --git a/nixos-modules/dhall/qwerty.chargen.dhall b/nixos-modules/dhall/qwerty.chargen.dhall index ad11e92..860cf2c 100644 --- a/nixos-modules/dhall/qwerty.chargen.dhall +++ b/nixos-modules/dhall/qwerty.chargen.dhall @@ -20,18 +20,18 @@ let Map = let boolToAttr = λ(_ : Bool) → if _ then "yes" else "no" let keyToXML = - λ(x : Prelude.Map.Entry Text Key) - → XML.leaf + λ(x : Prelude.Map.Entry Text Key) → + XML.leaf { name = "key" , attributes = [ merge { Ascii = - λ(_ : Natural) - → { mapKey = "ascii", mapValue = Prelude.Natural.show _ } + λ(_ : Natural) → + { mapKey = "ascii", mapValue = Prelude.Natural.show _ } , Char = λ(_ : Text) → { mapKey = "char", mapValue = _ } , Code = - λ(_ : Natural) - → { mapKey = "code", mapValue = Prelude.Natural.show _ } + λ(_ : Natural) → + { mapKey = "code", mapValue = Prelude.Natural.show _ } } x.mapValue , { mapKey = "name", mapValue = x.mapKey } @@ -39,8 +39,8 @@ let keyToXML = } let mapToXML = - λ(map : Map.Type) - → XML.element + λ(map : Map.Type) → + XML.element { name = "map" , attributes = toMap { mod1 = boolToAttr map.mod1 diff --git a/nixos-modules/dhall/root.dhall b/nixos-modules/dhall/root.dhall index 25c01f7..66e6bb3 100644 --- a/nixos-modules/dhall/root.dhall +++ b/nixos-modules/dhall/root.dhall @@ -1,4 +1,3 @@ - let Genode = env:DHALL_GENODE let Prelude = Genode.Prelude @@ -20,22 +19,22 @@ let DefaultPolicy = Init.Config.DefaultPolicy let LabelSelector = Init.LabelSelector let label = - λ(label : Text) - → { local = label, route = label } : Child.Attributes.Label + λ(label : Text) → + { local = label, route = label } : Child.Attributes.Label let rootInit = - λ ( params - : { fbDriver : Init.Child.Type - , guests : Init.Children.Type - , inputFilterChargens : List XML.Type - , partitionType : Text - , wm : Init.Type - , graphical-log : Init.Type - , fs-log : Init.Type - , systemLabel : Text - } - ) - → Init::{ + λ ( params + : { fbDriver : Init.Child.Type + , guests : Init.Children.Type + , inputFilterChargens : List XML.Type + , partitionType : Text + , wm : Init.Type + , graphical-log : Init.Type + , fs-log : Init.Type + , systemLabel : Text + } + ) → + Init::{ , children = toMap { timer = Child.flat @@ -113,8 +112,8 @@ let rootInit = # Prelude.List.map PciPolicy/Type XML.Type - ( λ(policy : PciPolicy/Type) - → XML.element + ( λ(policy : PciPolicy/Type) → + XML.element { name = "policy" , attributes = toMap { label_suffix = policy.labelSuffix } @@ -141,24 +140,22 @@ let rootInit = } } , framebuffer = params.fbDriver - , input_filter = + , event_filter = Child.flat Child.Attributes::{ - , binary = "input_filter" + , binary = "event_filter" , config = let key = - λ(name : Text) - → XML.leaf - { name = "key" - , attributes = toMap { name = name } - } + λ(name : Text) → + XML.leaf + { name = "key", attributes = toMap { name } } let remap = - λ(name : Text) - → λ(to : Text) - → XML.leaf + λ(name : Text) → + λ(to : Text) → + XML.leaf { name = "key" - , attributes = toMap { name = name, to = to } + , attributes = toMap { name, to } } in Init.Config::{ @@ -243,7 +240,7 @@ let rootInit = [ ServiceRoute.parentLabel "ROM" (Some "config") - (Some "config -> input_filter.config") + (Some "config -> event_filter.config") , ServiceRoute.childLabel "Input" "ps2_drv" @@ -254,6 +251,7 @@ let rootInit = "usb_drv" (Some "usb") (None Text) + , ServiceRoute.child "Capture" "nitpicker" ] } , ps2_drv = @@ -303,11 +301,11 @@ let rootInit = Init.toChild params.wm Init.Attributes::{ - , provides = [ "Nitpicker", "Report", "ROM" ] + , provides = [ "Capture", "Event", "Gui", "Report", "ROM" ] , romReports = [ label "clipboard", label "shape" ] , routes = [ ServiceRoute.child "Framebuffer" "framebuffer" - , ServiceRoute.child "Input" "input_filter" + , ServiceRoute.child "Input" "event_filter" ] } , fonts_fs = @@ -408,7 +406,7 @@ let rootInit = params.graphical-log Init.Attributes::{ , routes = - [ ServiceRoute.child "Nitpicker" "wm" + [ ServiceRoute.child "Gui" "wm" , ServiceRoute.child "File_system" "fonts_fs" ] } @@ -474,8 +472,8 @@ let rootInit = Prelude.List.map Natural XML.Type - ( λ(i : Natural) - → XML.leaf + ( λ(i : Natural) → + XML.leaf { name = "policy" , attributes = let partition = @@ -483,7 +481,7 @@ let rootInit = in toMap { label_suffix = " ${partition}" - , partition = partition + , partition , writeable = "yes" } } @@ -663,8 +661,8 @@ let rootInit = # Prelude.List.map Text XML.Type - ( λ(proto : Text) - → XML.element + ( λ(proto : Text) → + XML.element { name = proto , attributes = toMap { dst = "0.0.0.0/0" @@ -696,11 +694,11 @@ let rootInit = Init.Attributes::{ , routes = [ ServiceRoute.parent "VM" - , ServiceRoute.child "Nitpicker" "wm" + , ServiceRoute.child "Gui" "wm" , { service = - { name = "File_system" - , label = LabelSelector.last "fonts" - } + { name = "File_system" + , label = LabelSelector.last "fonts" + } , route = Init.Route.Type.Child { name = "fonts_fs" @@ -709,9 +707,9 @@ let rootInit = } } , { service = - { name = "File_system" - , label = LabelSelector.suffix "nix/store" - } + { name = "File_system" + , label = LabelSelector.suffix "nix/store" + } , route = Init.Route.Type.Child { name = "file_system" @@ -720,9 +718,9 @@ let rootInit = } } , { service = - { name = "File_system" - , label = LabelSelector.prefix "console" - } + { name = "File_system" + , label = LabelSelector.prefix "console" + } , route = Init.Route.Type.Child { name = "file_system" diff --git a/nixos-modules/dhall/show_input.dhall b/nixos-modules/dhall/show_input.dhall index e901af1..687a11b 100644 --- a/nixos-modules/dhall/show_input.dhall +++ b/nixos-modules/dhall/show_input.dhall @@ -1,4 +1,3 @@ - let Genode = env:DHALL_GENODE let Prelude = Genode.Prelude @@ -38,5 +37,5 @@ in Child.flat } , resources = Resources::{ ram = Genode.units.MiB 32 } , routes = - [ ServiceRoute.parent "File_system", ServiceRoute.parent "Nitpicker" ] + [ ServiceRoute.parent "File_system", ServiceRoute.parent "Gui" ] } diff --git a/nixos-modules/dhall/vbox-guest.dhall b/nixos-modules/dhall/vbox-guest.dhall index 264c79e..2ec939f 100644 --- a/nixos-modules/dhall/vbox-guest.dhall +++ b/nixos-modules/dhall/vbox-guest.dhall @@ -1,4 +1,3 @@ - let Genode = env:DHALL_GENODE let Prelude = Genode.Prelude @@ -14,11 +13,11 @@ let Resources = Init.Resources let ServiceRoute = Init.ServiceRoute let Vfs/inline = - λ(name : Text) - → λ(body : Text) - → XML.element + λ(name : Text) → + λ(body : Text) → + XML.element { name = "inline" - , attributes = toMap { name = name } + , attributes = toMap { name } , content = [ XML.text body ] } @@ -35,8 +34,8 @@ let Params } let toVbox = - λ(params : Params) - → let vboxConfig = + λ(params : Params) → + let vboxConfig = let hardDisks = merge { ISO = XML.text "" @@ -158,11 +157,9 @@ let toVbox = , attributes = XML.emptyAttributes , content = let tag = - λ(name : Text) - → XML.leaf - { name = name - , attributes = XML.emptyAttributes - } + λ(name : Text) → + XML.leaf + { name, attributes = XML.emptyAttributes } let mutableVfs = let fsNode = @@ -224,7 +221,7 @@ let toVbox = , routes = [ ServiceRoute.parent "File_system" , ServiceRoute.parent "Nic" - , ServiceRoute.parent "Nitpicker" + , ServiceRoute.parent "Gui" , ServiceRoute.parent "Rtc" , ServiceRoute.parent "Timer" , ServiceRoute.parent "VM" diff --git a/nixos-modules/dhall/wm.dhall b/nixos-modules/dhall/wm.dhall index f6e8b51..442e089 100644 --- a/nixos-modules/dhall/wm.dhall +++ b/nixos-modules/dhall/wm.dhall @@ -1,4 +1,3 @@ - let Genode = env:DHALL_GENODE let Prelude = Genode.Prelude @@ -20,8 +19,8 @@ let DefaultPolicy = Init.Config.DefaultPolicy let LabelSelector = Init.LabelSelector let label = - λ(label : Text) - → { local = label, route = label } : Child.Attributes.Label + λ(label : Text) → + { local = label, route = label } : Child.Attributes.Label in Init::{ , children = toMap @@ -64,7 +63,7 @@ in Init::{ , attributes = toMap { domain = "default" } } } - , provides = [ "Nitpicker" ] + , provides = [ "Gui", "Capture", "Event" ] , resources = Resources::{ caps = 256, ram = Genode.units.MiB 64 } , routes = [ ServiceRoute.parent "Framebuffer" @@ -75,7 +74,7 @@ in Init::{ Child.flat Child.Attributes::{ , binary = "pointer" - , routes = [ ServiceRoute.child "Nitpicker" "nitpicker" ] + , routes = [ ServiceRoute.child "Gui" "nitpicker" ] } , wm = Child.flat @@ -94,7 +93,7 @@ in Init::{ ] , defaultPolicy = Some DefaultPolicy::{=} } - , provides = [ "Nitpicker", "Report", "ROM" ] + , provides = [ "Gui", "Report", "ROM" ] , reportRoms = [ label "focus", label "resize_request" ] , romReports = [ label "focus_request" @@ -108,11 +107,11 @@ in Init::{ } , routes = [ ServiceRoute.childLabel - "Nitpicker" + "Gui" "nitpicker" (Some "") (Some "focus") - , ServiceRoute.child "Nitpicker" "nitpicker" + , ServiceRoute.child "Gui" "nitpicker" , ServiceRoute.parentLabel "Report" (Some "clipboard") @@ -175,7 +174,7 @@ in Init::{ '' ] } - , provides = [ "Nitpicker", "Report", "ROM" ] + , provides = [ "Gui", "Report", "ROM" ] , romReports = [ label "focus" , label "resize_request" @@ -194,7 +193,7 @@ in Init::{ , caps = 256 , ram = Genode.units.MiB 8 } - , routes = [ ServiceRoute.child "Nitpicker" "wm" ] + , routes = [ ServiceRoute.child "Gui" "wm" ] } , decorator = Child.flat @@ -217,20 +216,22 @@ in Init::{ ] , defaultPolicy = Some DefaultPolicy::{=} } - , provides = [ "Nitpicker", "Report", "ROM" ] + , provides = [ "Gui", "Report", "ROM" ] , reportRoms = [ label "window_layout", label "pointer" ] , romReports = [ label "decorator_margins", label "hover" ] , resources = Init.Resources::{ , caps = 128 , ram = Genode.units.MiB 12 } - , routes = [ ServiceRoute.child "Nitpicker" "wm" ] + , routes = [ ServiceRoute.child "Gui" "wm" ] } } , routes = [ ServiceRoute.parent "Timer" ] , services = - [ ServiceRoute.child "Nitpicker" "wm" + [ ServiceRoute.child "Gui" "wm" , ServiceRoute.child "Report" "wm" , ServiceRoute.child "ROM" "wm" + , ServiceRoute.child "Event" "Nitpicker" + , ServiceRoute.child "Capture" "Nitpicker" ] } diff --git a/nixos-modules/dhall/workman.chargen.dhall b/nixos-modules/dhall/workman.chargen.dhall index fa83045..6988bf0 100644 --- a/nixos-modules/dhall/workman.chargen.dhall +++ b/nixos-modules/dhall/workman.chargen.dhall @@ -20,18 +20,18 @@ let Map = let boolToAttr = λ(_ : Bool) → if _ then "yes" else "no" let keyToXML = - λ(x : Prelude.Map.Entry Text Key) - → XML.leaf + λ(x : Prelude.Map.Entry Text Key) → + XML.leaf { name = "key" , attributes = [ merge { Ascii = - λ(_ : Natural) - → { mapKey = "ascii", mapValue = Prelude.Natural.show _ } + λ(_ : Natural) → + { mapKey = "ascii", mapValue = Prelude.Natural.show _ } , Char = λ(_ : Text) → { mapKey = "char", mapValue = _ } , Code = - λ(_ : Natural) - → { mapKey = "code", mapValue = Prelude.Natural.show _ } + λ(_ : Natural) → + { mapKey = "code", mapValue = Prelude.Natural.show _ } } x.mapValue , { mapKey = "name", mapValue = x.mapKey } @@ -39,8 +39,8 @@ let keyToXML = } let mapToXML = - λ(map : Map.Type) - → XML.element + λ(map : Map.Type) → + XML.element { name = "map" , attributes = toMap { mod1 = boolToAttr map.mod1 diff --git a/packages/genodelabs/LIB.patch b/packages/genodelabs/LIB.patch index 93082d8..3539bdb 100644 --- a/packages/genodelabs/LIB.patch +++ b/packages/genodelabs/LIB.patch @@ -1,6 +1,6 @@ -commit 2db637f21b83701d21aa66295cd35c737649ecdc +commit b7d219220e10699dedb2c90e2d4010cbfab74a86 Author: Emery Hemingway -Date: Tue May 5 21:39:21 2020 +0530 +Date: Sun Aug 30 10:47:51 2020 +0200 Produce libraries with conventional names @@ -33,10 +33,10 @@ index 190dd92aa1..6611d05d2a 100644 echo "endif") >> $(LIB_DEP_FILE) # diff --git a/repos/base/mk/generic.mk b/repos/base/mk/generic.mk -index d551ac205b..e23fade62f 100644 +index 0531c08d58..4eefc6822c 100644 --- a/repos/base/mk/generic.mk +++ b/repos/base/mk/generic.mk -@@ -129,7 +129,7 @@ binary_%.o: % +@@ -139,7 +139,7 @@ binary_%.o: % # This is a problem in situations where the undefined symbol is resolved by an # archive rather than the target. I.e., when linking posix.lib.a (which # provides 'Libc::Component::construct'), the 'construct' function is merely @@ -45,7 +45,7 @@ index d551ac205b..e23fade62f 100644 # reference apparently does not suffice to keep the posix.lib.a's symbol. By # adding a hard dependency, we force the linker to resolve the symbol and don't # drop posix.lib.a. -@@ -164,12 +164,17 @@ endif +@@ -174,12 +174,17 @@ endif # time a user of the library is linked, the ABI stub should be used instead of # the library. # @@ -67,10 +67,23 @@ index d551ac205b..e23fade62f 100644 - $(VERBOSE)ln -sf $(call select_so,$@) $@ + $(VERBOSE)ln -sf $(call select_so,$@) $(patsubst liblib%,lib%,$@) diff --git a/repos/base/mk/lib.mk b/repos/base/mk/lib.mk -index bfee2c7420..fac49c7298 100644 +index c8ac049563..776aea82aa 100644 --- a/repos/base/mk/lib.mk +++ b/repos/base/mk/lib.mk -@@ -123,14 +123,20 @@ message: +@@ -95,7 +95,12 @@ endif + # + ifneq ($(SYMBOLS),) + ABI_SO := $(addsuffix .abi.so,$(LIB)) ++ifeq ($(LIB),ld) + ABI_SONAME := $(addsuffix .lib.so,$(LIB)) ++else ++ABI_SONAME := $(addsuffix .so,$(addprefix lib,$(patsubst lib%,%,$(LIB)))) ++endif ++ + + $(LIB).symbols: + $(VERBOSE)ln -sf $(SYMBOLS) $@ +@@ -124,14 +129,20 @@ message: include $(BASE_DIR)/mk/generic.mk # @@ -93,7 +106,7 @@ index bfee2c7420..fac49c7298 100644 INSTALL_SO := $(INSTALL_DIR)/$(LIB_SO) DEBUG_SO := $(DEBUG_DIR)/$(LIB_SO) endif -@@ -150,7 +156,7 @@ ifneq ($(LIB_SO),) +@@ -151,7 +162,7 @@ ifneq ($(LIB_SO),) endif # @@ -102,7 +115,7 @@ index bfee2c7420..fac49c7298 100644 # LIB_TAG := $(addsuffix .lib.tag,$(LIB)) all: $(LIB_TAG) -@@ -203,7 +209,7 @@ STATIC_LIBS := $(sort $(foreach l,$(ARCHIVES:.lib.a=),$(LIB_CACHE_DIR)/$l/ +@@ -204,7 +215,7 @@ STATIC_LIBS := $(sort $(foreach l,$(ARCHIVES:.lib.a=),$(LIB_CACHE_DIR)/$l/ STATIC_LIBS_BRIEF := $(subst $(LIB_CACHE_DIR),$$libs,$(STATIC_LIBS)) # @@ -162,10 +175,10 @@ index 73fd407db7..554d943763 100644 diff --git a/repos/libports/src/lib/libc/kernel.cc b/repos/libports/src/lib/libc/kernel.cc -index 5dd4b2a2d6..430295e7d5 100644 +index b1bca7c80f..a4bebaeae1 100644 --- a/repos/libports/src/lib/libc/kernel.cc +++ b/repos/libports/src/lib/libc/kernel.cc -@@ -308,10 +308,10 @@ void Libc::Kernel::_clone_state_from_parent() +@@ -418,10 +418,10 @@ void Libc::Kernel::_clone_state_from_parent() * regular startup of the child. */ bool const blacklisted = (name == "ld.lib.so") diff --git a/packages/genodelabs/default.nix b/packages/genodelabs/default.nix index ce1ebb1..afd5184 100644 --- a/packages/genodelabs/default.nix +++ b/packages/genodelabs/default.nix @@ -1,7 +1,7 @@ { buildPackages, targetPackages }: let - version = "20.05"; + version = "20.08"; # Update ./port-versions.nix bumping the version and updateing the sources. platform = targetPackages.targetPlatform; @@ -32,7 +32,7 @@ let inherit version; src = fetchurl { url = "https://github.com/genodelabs/genode/archive/${version}.tar.gz"; - hash = "sha256-5Fd8ywGbDtQF+9yDZ5xAQ7l1Vzh1jQAQeqVj+EtO1us="; + hash = "sha256-tFuLVuaN5F9lAEtn0lpd0MgPQpOcFixOtOsQ/z4TwPI="; }; nativeBuildInputs = [ expect gnumake tcl ]; patches = [ ./LIB.patch ./binary-labels.patch ]; diff --git a/packages/genodelabs/input_filter.patch b/packages/genodelabs/event_filter.patch similarity index 88% rename from packages/genodelabs/input_filter.patch rename to packages/genodelabs/event_filter.patch index ac8b3e6..5dd818b 100644 --- a/packages/genodelabs/input_filter.patch +++ b/packages/genodelabs/event_filter.patch @@ -6,11 +6,11 @@ Date: Wed Apr 29 03:34:15 2020 +0530 diff --git a/repos/os/src/server/input_filter/chargen_source.h b/repos/os/src/server/input_filter/chargen_source.h index 06fc657c25..3525fd6f34 100644 ---- a/repos/os/src/server/input_filter/chargen_source.h -+++ b/repos/os/src/server/input_filter/chargen_source.h +--- a/repos/os/src/server/event_filter/chargen_source.h ++++ b/repos/os/src/server/event_filter/chargen_source.h @@ -684,9 +684,10 @@ class Input_filter::Chargen_source : public Source, Source::Sink node.for_each_sub_node("key", [&] (Xml_node key_node) { - + Key_name const name = key_node.attribute_value("name", Key_name()); - Input::Keycode const key = key_code_by_name(name); - @@ -20,5 +20,5 @@ index 06fc657c25..3525fd6f34 100644 + new (_alloc) Modifier(_modifiers, id, key); + } catch (Unknown_key) { warning("unrecognized key name ", name); } }); - + node.for_each_sub_node("rom", [&] (Xml_node rom_node) { diff --git a/packages/genodelabs/libc.patch b/packages/genodelabs/libc.patch index 2b8c69a..08e5544 100644 --- a/packages/genodelabs/libc.patch +++ b/packages/genodelabs/libc.patch @@ -85,30 +85,3 @@ index 150640ddf3..e511897600 100644 DUMMY(int , -1, getpriority, (int, int)) DUMMY(int , -1, getrusage, (int, rusage *)) DUMMY_SILENT(uid_t , 0, getuid, (void)) -commit c3d87d0a79f9e30aebdf26d3b684c6b1b2214c51 -Author: Emery Hemingway -Date: Wed Jun 10 20:15:44 2020 +0530 - - libc: add newlocale and freelocale dummies - - Fix #3777 - -diff --git a/repos/libports/src/lib/libc/nolocale.cc b/repos/libports/src/lib/libc/nolocale.cc -index 9d43c35acb..ec37b81336 100644 ---- a/repos/libports/src/lib/libc/nolocale.cc -+++ b/repos/libports/src/lib/libc/nolocale.cc -@@ -64,4 +64,14 @@ char *setlocale(int, const char *) - return (char*)"C"; - } - -+ -+locale_t newlocale(int, const char *locale, locale_t) -+{ -+ Genode::warning("cannot set \"", locale, "\" locale, not implemented"); -+ return NULL; -+} -+ -+ -+void freelocale(locale_t) { } -+ - } diff --git a/packages/genodelabs/port-versions.nix b/packages/genodelabs/port-versions.nix index d52ade0..573edbb 100644 --- a/packages/genodelabs/port-versions.nix +++ b/packages/genodelabs/port-versions.nix @@ -1,8 +1,7 @@ # The file is generated by the "genodeSources" derivation. { acpica = "5c1c54"; - ada-runtime = "db8987"; - arora = "e8f003"; + ada-runtime = "fabce1"; bash = "02edac"; bbl = "b9358c"; binutils = "62d309"; @@ -14,7 +13,6 @@ dde_ipxe = "b68f4e"; dde_linux = "173719"; dde_rump = "9afe56"; - dde_zircon = "49e3d9"; diffutils = "ee502a"; drm = "01858a"; e2fsprogs = "2a09cd"; @@ -31,23 +29,22 @@ gcc = "20345a"; gcov = "a6f852"; gdb = "8eddf0"; - getdns = "030233"; gmp = "855680"; gnupg = "c784d4"; grep = "b96a88"; - grub2 = "8cf62c"; + grub2 = "856f99"; icu = "62f13b"; jbig2dec = "682269"; jitterentropy = "6017e1"; jpeg = "5effdd"; less = "e7a42c"; libarchive = "7ce310"; - libc = "2e544d"; + libc = "771dcc"; libdrm = "c1cce0"; libgcrypt = "37159a"; libiconv = "3f5ca3"; libpng = "ac05f3"; - libsparkcrypto = "d479dc"; + libsparkcrypto = "924de3"; libssh = "a475cc"; libusb = "633358"; libyaml = "1cde80"; @@ -74,23 +71,22 @@ pistachio = "68c8c3"; qemu-usb = "2ff18f"; qoost = "014d68"; - qt5 = "084385"; - qt5-host = "ad5edc"; + qt5 = "1b1c56"; + qt5-host = "21e078"; readline = "a0bfb0"; - sanitizer = "181889"; + sanitizer = "3ac05b"; sed = "459979"; sel4 = "793548"; sel4_tools = "4ee1b9"; seoul = "e8d696"; - solo5 = "55dd4f"; stb = "ab8f50"; - stdcxx = "79ad88"; + stdcxx = "722e94"; tar = "19aea4"; tcl = "842b1a"; ttf-bitstream-vera = "cd3684"; uboot = "f3fd6b"; vim = "53caaa"; - virtualbox5 = "e93407"; + virtualbox5 = "e60d97"; which = "91c953"; x86emu = "8a1c3a"; xz = "45203f"; diff --git a/packages/genodelabs/ports.nix b/packages/genodelabs/ports.nix index c260a15..4397834 100644 --- a/packages/genodelabs/ports.nix +++ b/packages/genodelabs/ports.nix @@ -4,7 +4,7 @@ { buildPackages }: with buildPackages; { binutils = { - hash = "sha256-gTYP9YNx+x6KVfIMjTD+UAReWwUg93TCkJIWwAau9eA="; + hash = "sha256-Y6EwEb2uFNzJ/6Q+7Jia7LZu5iRt1XkzkogUxiC93t8="; nativeBuildInputs = [ autoconf ]; }; dde_bsd.hash = "sha256-Z2piyoOrNmXyEEp+kX5w/q4JTylYdSOocUrFeqjz13A="; @@ -26,7 +26,7 @@ with buildPackages; { jitterentropy.hash = "sha256-6KS732GxtUMz0xPYKtshdn039DgdJq11vTDQesZn4Ds="; jpeg.hash = "sha256-RLVnlrnYGrhqr3Feikoi/BNditCaKN0u3t9/UDpl2wQ="; libc = { - hash = "sha256-ONmUhqY7rVtH6Z+K7VCY0OMLNi1SF1XCHFjiVY3MW3c="; + hash = "sha256-bD0Kqho7ABMHxFYOAkQlvJgzSIsomy5OTtpKE+JAVUY="; nativeBuildInputs = [ buildPackages.gcc ]; }; libiconv.hash = "sha256-25YcW5zo1fE33ZolGQroR+KZO8wHEdN1QXa7+MhwS78="; @@ -44,9 +44,9 @@ with buildPackages; { openssl.hash = "sha256-epRL3SobYQ7xf8qwp6D5xu/Ms2T/LhUjjs273ywWRWg="; qemu-usb.hash = "sha256-F4ZXeH5sx3FOcD42zFOxKFMsqGookKdav1NJ7YgVw98="; stb.hash = "sha256-9LSH1i8jcEvjRAmTvgtK+Axy9hO7uiSzmSgBvs0zkTc="; - stdcxx.hash = "sha256-iiE009fL1yE3XJ7HkaJakOiS++m7qONwwGrdJjBXQ7k="; + stdcxx.hash = "sha256-4Gn/TyA/q83kyO8f5Wr+gv8fNYR5YPDNZIk7+Ty5fn4="; virtualbox5 = { - hash = "sha256-HLga/0pHQkjdMH7mU194B7pTFJoOoww69Yii4Ixmkxo="; + hash = "sha256-ERI+j2thvyMj+TJSHDdA9sOQdIxrXfNfMNJIa8VRE0M="; nativeBuildInputs = [ iasl libxslt unzip yasm ]; }; x86emu.hash = "sha256-QY6OL+cDVjQ67JItP1rS4ufPRGZf43AZtWxwza/0q0w="; diff --git a/packages/genodelabs/targets.nix b/packages/genodelabs/targets.nix index d68816f..af0c69c 100644 --- a/packages/genodelabs/targets.nix +++ b/packages/genodelabs/targets.nix @@ -11,13 +11,10 @@ let vbox5' = { nativeBuildInputs = with buildPackages; [ iasl yasm ]; - patches = [ ./vbox-framebuffer-fail-on-fail.patch ]; portInputs = [ libc libiconv qemu-usb stdcxx virtualbox5 ]; }; in { - cached_fs_rom.patches = [ ./cached_fs_rom.patch ]; - fb_sdl = with buildPackages; { nativeBuildInputs = [ pkgconfig ]; buildInputs = [ SDL ]; @@ -28,7 +25,7 @@ in { init.patches = [ ./sandbox.patch ]; - input_filter.patches = [ ./input_filter.patch ]; + event_filter.patches = [ ./event_filter.patch ]; intel_fb_drv = { BOARD = "pc"; diff --git a/packages/genodelabs/vbox-framebuffer-fail-on-fail.patch b/packages/genodelabs/vbox-framebuffer-fail-on-fail.patch deleted file mode 100644 index 7fafca0..0000000 --- a/packages/genodelabs/vbox-framebuffer-fail-on-fail.patch +++ /dev/null @@ -1,126 +0,0 @@ -commit d2a28a33f6a2bda7000ce201d52ff99714895640 -Author: Emery Hemingway -Date: Fri May 15 11:28:10 2020 +0530 - - vbox: use Nitpicker mode for initial resolution - -diff --git a/repos/ports/src/virtualbox5/frontend/fb.h b/repos/ports/src/virtualbox5/frontend/fb.h -index 95a7db8602..bf2d65d7c1 100644 ---- a/repos/ports/src/virtualbox5/frontend/fb.h -+++ b/repos/ports/src/virtualbox5/frontend/fb.h -@@ -40,7 +40,7 @@ class Genodefb : - Nitpicker::Connection &_nitpicker; - Fb_Genode::Session &_fb { *_nitpicker.framebuffer() }; - View_handle _view; -- Fb_Genode::Mode _fb_mode { 1024, 768, Fb_Genode::Mode::RGB565 }; -+ Fb_Genode::Mode _fb_mode { _nitpicker.mode() }; - - /* - * The mode currently used by the VM. Can be smaller than the - -commit b6bf91067a4c1c6d5b3508aedd949c8e1a7fe4b3 -Author: Emery Hemingway -Date: Fri May 15 11:20:47 2020 +0530 - - vbox: fail on invalid framebuffer dataspace - - VirtualBox can hang during initialization if Nitpicker returns an - invalid dataspace due to insufficient server-side resources. Make - an invalid dataspace a critical rather than silent error. - -diff --git a/repos/ports/src/virtualbox5/frontend/fb.h b/repos/ports/src/virtualbox5/frontend/fb.h -index dce00fe4eb..95a7db8602 100644 ---- a/repos/ports/src/virtualbox5/frontend/fb.h -+++ b/repos/ports/src/virtualbox5/frontend/fb.h -@@ -21,6 +21,9 @@ - #include - #include - -+#include -+#include -+ - /* VirtualBox includes */ - - #include "Global.h" -@@ -35,7 +38,7 @@ class Genodefb : - - Genode::Env &_env; - Nitpicker::Connection &_nitpicker; -- Fb_Genode::Session &_fb; -+ Fb_Genode::Session &_fb { *_nitpicker.framebuffer() }; - View_handle _view; - Fb_Genode::Mode _fb_mode { 1024, 768, Fb_Genode::Mode::RGB565 }; - -@@ -43,18 +46,18 @@ class Genodefb : - * The mode currently used by the VM. Can be smaller than the - * framebuffer mode. - */ -- Fb_Genode::Mode _virtual_fb_mode; -+ Fb_Genode::Mode _virtual_fb_mode { _initial_setup() }; -+ -+ Genode::Reconstructible -+ _fb_dataspace { _env.rm(), _fb.dataspace() }; - -- void *_fb_base; - RTCRITSECT _fb_lock; - - void _clear_screen() - { -- if (!_fb_base) return; -- - size_t const max_h = Genode::min(_fb_mode.height(), _virtual_fb_mode.height()); - size_t const num_pixels = _fb_mode.width() * max_h; -- memset(_fb_base, 0, num_pixels * _fb_mode.bytes_per_pixel()); -+ memset(_fb_dataspace->local_addr(), 0, num_pixels * _fb_mode.bytes_per_pixel()); - _fb.refresh(0, 0, _virtual_fb_mode.width(), _virtual_fb_mode.height()); - } - -@@ -91,10 +94,7 @@ class Genodefb : - Genodefb (Genode::Env &env, Nitpicker::Connection &nitpicker) - : - _env(env), -- _nitpicker(nitpicker), -- _fb(*nitpicker.framebuffer()), -- _virtual_fb_mode(_initial_setup()), -- _fb_base(env.rm().attach(_fb.dataspace())) -+ _nitpicker(nitpicker) - { - int rc = RTCritSectInit(&_fb_lock); - Assert(rc == VINF_SUCCESS); -@@ -109,16 +109,11 @@ class Genodefb : - - _fb_mode = mode; - -- if (_fb_base) -- _env.rm().detach(_fb_base); -+ _fb_dataspace.destruct(); - - _adjust_buffer(); - -- try { -- _fb_base = _env.rm().attach(_fb.dataspace()); -- } catch (...) { -- _fb_base = nullptr; -- } -+ _fb_dataspace.construct(_env.rm(), _fb.dataspace()); - - Unlock(); - } -@@ -201,8 +196,6 @@ class Genodefb : - PRUint32 imageSize, - PRUint8 *image) override - { -- if (!_fb_base) return S_OK; -- - Lock(); - - Nitpicker::Area const area_fb = Nitpicker::Area(_fb_mode.width(), -@@ -215,7 +208,7 @@ class Genodefb : - typedef Pixel_rgb565 Pixel_dst; - - Texture texture((Pixel_src *)image, nullptr, area_vm); -- Surface surface((Pixel_dst *)_fb_base, area_fb); -+ Surface surface(_fb_dataspace->local_addr(), area_fb); - - Dither_painter::paint(surface, texture, Surface_base::Point(o_x, o_y)); - diff --git a/tests/driver_manager.dhall b/tests/driver_manager.dhall deleted file mode 100644 index 6242a21..0000000 --- a/tests/driver_manager.dhall +++ /dev/null @@ -1,153 +0,0 @@ - -let Test = ./test.dhall ? env:DHALL_GENODE_TEST - -let drivers = env:drivers ? ../compositions/pc-drivers.dhall - -let Genode = Test.Genode - -let Init = Genode.Init - -let Child = Init.Child - -let Resources = Init.Resources - -let ServiceRoute = Init.ServiceRoute - -let parentRomRoute = - λ(from : Text) - → λ(to : Text) - → ServiceRoute.parentLabel "ROM" (Some from) (Some to) - -let childRomRoute = - λ(child : Text) - → λ(from : Text) - → ServiceRoute.childLabel "ROM" child (Some from) (None Text) - -let label = λ(_ : Text) → { local = _, route = _ } - -let init = - Init::{ - , verbose = True - , routes = [ ServiceRoute.parent "Timer" ] - , children = toMap - { drivers = - Init.toChild - drivers - Init.Attributes::{ - , provides = [ "Block", "Framebuffer", "Input" ] - , resources = Init.Resources::{ ram = Genode.units.MiB 4 } - , romReports = [ label "block_devices" ] - , routes = - [ parentRomRoute "managed/input_filter" "input_filter.config" - , parentRomRoute " numlock_remap" "numlock_remap.config" - , childRomRoute "dynamic_rom" "capslock" - , childRomRoute "dynamic_rom" "numlock" - , childRomRoute "dynamic_rom" "system" - , ServiceRoute.child "Report" "_report_rom" - , ServiceRoute.parent "IRQ" - , ServiceRoute.parent "IO_MEM" - , ServiceRoute.parent "IO_PORT" - , ServiceRoute.parent "Timer" - ] - } - , dynamic_rom = - Child.flat - Child.Attributes::{ - , binary = "dynamic_rom" - , resources = Resources::{ ram = Genode.units.MiB 4 } - , provides = [ "ROM" ] - , config = Genode.Init.Config::{ - , content = - [ Genode.Prelude.XML.text - '' - - - - - - - '' - ] - } - } - , test-driver_manager = - Child.flat - Child.Attributes::{ - , binary = "test-driver_manager" - , config = Init.Config::{ - , content = - [ Genode.Prelude.XML.text - '' - - - - '' - ] - } - , reportRoms = [ label "block_devices" ] - , routes = - [ ServiceRoute.child "Block" "drivers" - , ServiceRoute.child "Framebuffer" "drivers" - , ServiceRoute.child "Input" "drivers" - ] - } - } - } - -let rom = - Genode.Boot.toRomTexts - ( toMap - { capslock = "" - , numlock = "" - , usb_policy = "" - } - # [ { mapKey = "fb_drv.config" - , mapValue = - '' - - - - '' - } - , { mapKey = "input_filter.config" - , mapValue = - '' - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - '' - } - ] - ) - -in Test::{ children = Test.initToChildren init, rom = rom } diff --git a/tests/log.dhall b/tests/log.dhall index 1190809..f5bc194 100644 --- a/tests/log.dhall +++ b/tests/log.dhall @@ -1,4 +1,3 @@ - let Test = ./test.dhall ? env:DHALL_GENODE_TEST let Genode = Test.Genode diff --git a/tests/posix.dhall b/tests/posix.dhall index 35c4ecf..5e700a5 100644 --- a/tests/posix.dhall +++ b/tests/posix.dhall @@ -1,4 +1,3 @@ - let Test = ./test.dhall ? env:DHALL_GENODE_TEST let Genode = Test.Genode @@ -11,8 +10,8 @@ let Init = Genode.Init let Child = Init.Child -in λ(params : { bash : Text, coreutils : Text, script : Text }) - → let init = +in λ(params : { bash : Text, coreutils : Text, script : Text }) → + let init = Init::{ , verbose = True , routes = @@ -83,8 +82,8 @@ in λ(params : { bash : Text, coreutils : Text, script : Text }) # Prelude.List.map Text XML.Type - ( λ(x : Text) - → XML.leaf + ( λ(x : Text) → + XML.leaf { name = "arg" , attributes = toMap { value = x } } @@ -99,13 +98,13 @@ in λ(params : { bash : Text, coreutils : Text, script : Text }) , routes = [ Init.ServiceRoute.child "File_system" "vfs" , { service = - { name = "ROM" - , label = - Init.LabelSelector.Type.Partial - { prefix = Some "/nix/store/" - , suffix = None Text - } - } + { name = "ROM" + , label = + Init.LabelSelector.Type.Partial + { prefix = Some "/nix/store/" + , suffix = None Text + } + } , route = Init.Route.Type.Child { name = "store_rom" diff --git a/tests/solo5/blk.dhall b/tests/solo5/blk.dhall index 5331ae2..486ab0f 100644 --- a/tests/solo5/blk.dhall +++ b/tests/solo5/blk.dhall @@ -1,4 +1,3 @@ - let Genode = env:DHALL_GENODE let Init = Genode.Init @@ -25,11 +24,25 @@ let init = , block = Child.flat Child.Attributes::{ - , binary = "ram_block" + , binary = "vfs_block" , provides = [ "Block" ] - , resources = Init.Resources::{ ram = Genode.units.MiB 9 } + , resources = Init.Resources::{ ram = Genode.units.MiB 12 } , config = Init.Config::{ - , attributes = toMap { size = "8M", block_size = "4096" } + , content = + [ Genode.Prelude.XML.text + '' + + + + + + + '' + ] + , defaultPolicy = Some Init.Config.DefaultPolicy::{ + , attributes = toMap + { file = "block.raw", writeable = "yes" } + } } } } diff --git a/tests/solo5/default.nix b/tests/solo5/default.nix index c0105e7..feea45f 100644 --- a/tests/solo5/default.nix +++ b/tests/solo5/default.nix @@ -21,10 +21,11 @@ in map solo5Test [ if pkgs.stdenv.hostPlatform.isAarch64 then "True" else "False" } }"; inputs = map genodeMake [ "app/ping" ] ++ (map genodeDepot [ - "ram_block" "nic_bridge" "nic_loopback" "sequence" + "vfs_block" + "vfs_import" ]); }; } diff --git a/tests/solo5/net.dhall b/tests/solo5/net.dhall index c8d434f..473a883 100644 --- a/tests/solo5/net.dhall +++ b/tests/solo5/net.dhall @@ -1,4 +1,3 @@ - let Genode = env:DHALL_GENODE let Init = Genode.Init diff --git a/tests/solo5/net_2if.dhall b/tests/solo5/net_2if.dhall index a9536b6..17c7610 100644 --- a/tests/solo5/net_2if.dhall +++ b/tests/solo5/net_2if.dhall @@ -1,4 +1,3 @@ - let Genode = env:DHALL_GENODE let Init = Genode.Init diff --git a/tests/solo5/solo5.dhall b/tests/solo5/solo5.dhall index 9464e50..c206df2 100644 --- a/tests/solo5/solo5.dhall +++ b/tests/solo5/solo5.dhall @@ -1,4 +1,3 @@ - let Test = ../test.dhall ? env:DHALL_GENODE_TEST let Genode = Test.Genode @@ -12,8 +11,8 @@ let Child = Init.Child let Config = Init.Config let toSimple = - λ(testName : Text) - → Child.flat + λ(testName : Text) → + Child.flat Child.Attributes::{ , binary = "solo5-test_${testName}" , resources = Init.Resources::{ caps = 256, ram = Genode.units.MiB 3 } @@ -28,8 +27,8 @@ let toSimple = } } -in λ(params : { isAarch64 : Bool }) - → let tests +in λ(params : { isAarch64 : Bool }) → + let tests : Prelude.Map.Type Text Child.Type = toMap { quiet = toSimple "quiet" @@ -40,10 +39,8 @@ in λ(params : { isAarch64 : Bool }) , net = ./net.dhall , net_2if = ./net_2if.dhall } - # ( if params.isAarch64 - + # ( if params.isAarch64 then Prelude.Map.empty Text Child.Type - else toMap { fpu = toSimple "fpu" } ) diff --git a/tests/solo5/ssp.dhall b/tests/solo5/ssp.dhall index 45c6d49..5ec9558 100644 --- a/tests/solo5/ssp.dhall +++ b/tests/solo5/ssp.dhall @@ -1,4 +1,3 @@ - let Test = ../test.dhall ? env:DHALL_GENODE_TEST let Child = Test.Genode.Init.Child diff --git a/tests/solo5/time.dhall b/tests/solo5/time.dhall index f8d738d..dd7e21e 100644 --- a/tests/solo5/time.dhall +++ b/tests/solo5/time.dhall @@ -1,4 +1,3 @@ - let Genode = env:DHALL_GENODE let Init = Genode.Init diff --git a/tests/test-wrapper.dhall b/tests/test-wrapper.dhall index 61a4418..f464f8c 100644 --- a/tests/test-wrapper.dhall +++ b/tests/test-wrapper.dhall @@ -1,4 +1,3 @@ - let Test = ./test.dhall ? env:DHALL_GENODE_TEST let Genode = Test.Genode @@ -18,15 +17,15 @@ let Children = TextMapType Child.Type let Manifest/Type = TextMapType (TextMapType Text) let Manifest/toRoutes = - λ(manifest : Manifest/Type) - → Prelude.List.map + λ(manifest : Manifest/Type) → + Prelude.List.map (Prelude.Map.Entry Text Text) Init.ServiceRoute.Type - ( λ(entry : Prelude.Map.Entry Text Text) - → { service = - { name = "ROM" - , label = Init.LabelSelector.Type.Last entry.mapKey - } + ( λ(entry : Prelude.Map.Entry Text Text) → + { service = + { name = "ROM" + , label = Init.LabelSelector.Type.Last entry.mapKey + } , route = Init.Route.Type.Child { name = "store_rom" @@ -44,9 +43,9 @@ let parentROMs = Prelude.List.map Text Init.ServiceRoute.Type - ( λ(label : Text) - → { service = - { name = "ROM", label = Init.LabelSelector.Type.Last label } + ( λ(label : Text) → + { service = + { name = "ROM", label = Init.LabelSelector.Type.Last label } , route = Init.Route.Type.Parent { label = Some label, diag = None Bool } } @@ -54,9 +53,9 @@ let parentROMs = let wrapHarness : Children → Manifest/Type → Child.Type - = λ(children : Children) - → λ(manifest : Manifest/Type) - → Child.nested + = λ(children : Children) → + λ(manifest : Manifest/Type) → + Child.nested children Child.Attributes::{ , binary = "sotest-harness" @@ -88,11 +87,11 @@ let wrapHarness # Manifest/toRoutes manifest } -in λ(test : Test.Type) - → λ(storeSize : Natural) - → λ(storeManifest : Manifest/Type) - → λ(bootManifest : Manifest/Type) - → Genode.Boot::{ +in λ(test : Test.Type) → + λ(storeSize : Natural) → + λ(storeManifest : Manifest/Type) → + λ(bootManifest : Manifest/Type) → + Genode.Boot::{ , config = Init::{ , children = [ { mapKey = "timer" diff --git a/tests/test.dhall b/tests/test.dhall index 12fead4..6c7187b 100644 --- a/tests/test.dhall +++ b/tests/test.dhall @@ -1,19 +1,18 @@ - let Genode = env:DHALL_GENODE let Prelude = Genode.Prelude let Init = Genode.Init -in { Genode = Genode +in { Genode , Type = { children : Prelude.Map.Type Text Init.Child.Type , rom : Genode.BootModules.Type } , default.rom = [] : Genode.BootModules.Type , initToChildren = - λ(init : Init.Type) - → toMap + λ(init : Init.Type) → + toMap { init = Init.toChild init diff --git a/tests/vmm_arm.dhall b/tests/vmm_arm.dhall index 0b356b5..e2b06d7 100644 --- a/tests/vmm_arm.dhall +++ b/tests/vmm_arm.dhall @@ -1,4 +1,3 @@ - let Test = ./test.dhall ? env:DHALL_GENODE_TEST let Genode = Test.Genode @@ -11,8 +10,8 @@ let ServiceRoute = Init.ServiceRoute let Child = Init.Child -in λ(guest : { linux : Text, dtb : Text, initrd : Text }) - → let init = +in λ(guest : { linux : Text, dtb : Text, initrd : Text }) → + let init = Init::{ , children = toMap { nic = @@ -38,7 +37,7 @@ in λ(guest : { linux : Text, dtb : Text, initrd : Text }) ] } ] - , defaultPolicy = Some Init.Config.Policy::{ + , defaultPolicy = Some Init.Config.DefaultPolicy::{ , attributes = toMap { domain = "default" } } } diff --git a/tests/vmm_x86.dhall b/tests/vmm_x86.dhall index 1c1b539..e9cb586 100644 --- a/tests/vmm_x86.dhall +++ b/tests/vmm_x86.dhall @@ -1,4 +1,3 @@ - let Test = ./test.dhall ? env:DHALL_GENODE_TEST let Genode = Test.Genode @@ -18,4 +17,4 @@ let vmm = , routes = [ Genode.Init.ServiceRoute.parent "VM" ] } -in Test::{ children = toMap { vmm = vmm } } +in Test::{ children = toMap { vmm } } diff --git a/tests/x86.dhall b/tests/x86.dhall index b6088da..5652b23 100644 --- a/tests/x86.dhall +++ b/tests/x86.dhall @@ -1,4 +1,3 @@ - let Test = ./test.dhall ? env:DHALL_GENODE_TEST let Genode = Test.Genode @@ -83,7 +82,7 @@ let pciInit = , attributes = toMap { class = "ALL" } } ] - , label = Init.LabelSelector.Type.Scoped "test-pci" + , label = Init.LabelSelector.prefix "test-pci" } ] } -- 2.45.2