genodeSources: 20.05 -> 20.08
This commit is contained in:
parent
1f53f25419
commit
c3385aedd0
|
@ -30,7 +30,7 @@ let drivers =
|
||||||
, ServiceRoute.child "Block" "dynamic"
|
, ServiceRoute.child "Block" "dynamic"
|
||||||
, ServiceRoute.child "Usb" "usb_drv"
|
, ServiceRoute.child "Usb" "usb_drv"
|
||||||
, ServiceRoute.child "Platform" "platform_drv"
|
, ServiceRoute.child "Platform" "platform_drv"
|
||||||
, ServiceRoute.child "Input" "input_filter"
|
, ServiceRoute.child "Input" "event_filter"
|
||||||
]
|
]
|
||||||
, children = toMap
|
, children = toMap
|
||||||
{ rom_reporter =
|
{ rom_reporter =
|
||||||
|
@ -169,10 +169,10 @@ let drivers =
|
||||||
, provides = [ "Input" ]
|
, provides = [ "Input" ]
|
||||||
, routes = [ ServiceRoute.child "Platform" "platform_drv" ]
|
, routes = [ ServiceRoute.child "Platform" "platform_drv" ]
|
||||||
}
|
}
|
||||||
, input_filter =
|
, event_filter =
|
||||||
Child.flat
|
Child.flat
|
||||||
Child.Attributes::{
|
Child.Attributes::{
|
||||||
, binary = "input_filter"
|
, binary = "event_filter"
|
||||||
, priority = 1
|
, priority = 1
|
||||||
, resources = Resources::{ ram = Genode.units.MiB 2 }
|
, resources = Resources::{ ram = Genode.units.MiB 2 }
|
||||||
, provides = [ "Input" ]
|
, provides = [ "Input" ]
|
||||||
|
@ -180,7 +180,7 @@ let drivers =
|
||||||
[ ServiceRoute.parentLabel
|
[ ServiceRoute.parentLabel
|
||||||
"ROM"
|
"ROM"
|
||||||
(Some "config")
|
(Some "config")
|
||||||
(Some "input_filter.config")
|
(Some "event_filter.config")
|
||||||
, ServiceRoute.childLabel
|
, ServiceRoute.childLabel
|
||||||
"Input"
|
"Input"
|
||||||
"ps2_drv"
|
"ps2_drv"
|
||||||
|
|
82
flake.nix
82
flake.nix
|
@ -136,31 +136,7 @@
|
||||||
checks =
|
checks =
|
||||||
# Checks for continous testing
|
# Checks for continous testing
|
||||||
forAllCrossSystems ({ system, localSystem, crossSystem }:
|
forAllCrossSystems ({ system, localSystem, crossSystem }:
|
||||||
let
|
import ./tests {
|
||||||
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 {
|
|
||||||
inherit self;
|
inherit self;
|
||||||
apps = self.apps.${system};
|
apps = self.apps.${system};
|
||||||
localPackages = nixpkgsFor.${localSystem};
|
localPackages = nixpkgsFor.${localSystem};
|
||||||
|
@ -176,62 +152,6 @@
|
||||||
self.packages.${system}.genodeSources.ports);
|
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;
|
|
||||||
|
|
||||||
});
|
});
|
||||||
|
|
||||||
};
|
};
|
||||||
|
|
|
@ -99,23 +99,23 @@
|
||||||
|
|
||||||
bootDescription = buildBootDescription {
|
bootDescription = buildBootDescription {
|
||||||
inherit initConfig;
|
inherit initConfig;
|
||||||
imageInputs = [ legacyPackages'.bash pkgs'.show_input ]
|
imageInputs = [ legacyPackages'.bash ] ++ map pkgs'.genodeSources.depot
|
||||||
++ map pkgs'.genodeSources.depot ([
|
([
|
||||||
"acpi_drv"
|
"acpi_drv"
|
||||||
"ahci_drv"
|
"ahci_drv"
|
||||||
"cached_fs_rom"
|
"cached_fs_rom"
|
||||||
"chroot"
|
"chroot"
|
||||||
"decorator"
|
"decorator"
|
||||||
|
"event_filter"
|
||||||
"fs_log"
|
"fs_log"
|
||||||
|
"gui_fb"
|
||||||
"init"
|
"init"
|
||||||
"input_filter"
|
|
||||||
"ipxe_nic_drv"
|
"ipxe_nic_drv"
|
||||||
"libc"
|
"libc"
|
||||||
"libiconv"
|
"libiconv"
|
||||||
"log_core"
|
"log_core"
|
||||||
"nit_fb"
|
|
||||||
"nitpicker"
|
|
||||||
"nic_router"
|
"nic_router"
|
||||||
|
"nitpicker"
|
||||||
"part_block"
|
"part_block"
|
||||||
"platform_drv"
|
"platform_drv"
|
||||||
"posix"
|
"posix"
|
||||||
|
|
|
@ -1,4 +1,3 @@
|
||||||
|
|
||||||
let Genode = env:DHALL_GENODE
|
let Genode = env:DHALL_GENODE
|
||||||
|
|
||||||
let Prelude = Genode.Prelude
|
let Prelude = Genode.Prelude
|
||||||
|
@ -13,8 +12,8 @@ let Resources = Init.Resources
|
||||||
|
|
||||||
let ServiceRoute = Init.ServiceRoute
|
let ServiceRoute = Init.ServiceRoute
|
||||||
|
|
||||||
in λ(params : { bash : Text, coreutils : Text, path : Text })
|
in λ(params : { bash : Text, coreutils : Text, path : Text }) →
|
||||||
→ let init =
|
let init =
|
||||||
Init::{
|
Init::{
|
||||||
, verbose = True
|
, verbose = True
|
||||||
, routes =
|
, routes =
|
||||||
|
@ -22,12 +21,12 @@ in λ(params : { bash : Text, coreutils : Text, path : Text })
|
||||||
Text
|
Text
|
||||||
Init.ServiceRoute.Type
|
Init.ServiceRoute.Type
|
||||||
Init.ServiceRoute.parent
|
Init.ServiceRoute.parent
|
||||||
[ "Nitpicker", "Rtc", "Timer" ]
|
[ "Gui", "Rtc", "Timer" ]
|
||||||
, children = toMap
|
, children = toMap
|
||||||
{ nit_fb =
|
{ gui_fb =
|
||||||
Child.flat
|
Child.flat
|
||||||
Child.Attributes::{
|
Child.Attributes::{
|
||||||
, binary = "nit_fb"
|
, binary = "gui_fb"
|
||||||
, config = Init.Config::{
|
, config = Init.Config::{
|
||||||
, attributes = toMap
|
, attributes = toMap
|
||||||
{ xpos = "10"
|
{ xpos = "10"
|
||||||
|
@ -71,8 +70,8 @@ in λ(params : { bash : Text, coreutils : Text, path : Text })
|
||||||
, ram = Genode.units.MiB 4
|
, ram = Genode.units.MiB 4
|
||||||
}
|
}
|
||||||
, routes =
|
, routes =
|
||||||
[ ServiceRoute.child "Framebuffer" "nit_fb"
|
[ ServiceRoute.child "Framebuffer" "gui_fb"
|
||||||
, ServiceRoute.child "Input" "nit_fb"
|
, ServiceRoute.child "Input" "gui_fb"
|
||||||
, ServiceRoute.parent "File_system"
|
, ServiceRoute.parent "File_system"
|
||||||
]
|
]
|
||||||
}
|
}
|
||||||
|
@ -141,8 +140,8 @@ in λ(params : { bash : Text, coreutils : Text, path : Text })
|
||||||
# Prelude.List.map
|
# Prelude.List.map
|
||||||
Text
|
Text
|
||||||
XML.Type
|
XML.Type
|
||||||
( λ(x : Text)
|
( λ(x : Text) →
|
||||||
→ XML.leaf
|
XML.leaf
|
||||||
{ name = "arg"
|
{ name = "arg"
|
||||||
, attributes = toMap { value = x }
|
, attributes = toMap { value = x }
|
||||||
}
|
}
|
||||||
|
@ -157,13 +156,13 @@ in λ(params : { bash : Text, coreutils : Text, path : Text })
|
||||||
, routes =
|
, routes =
|
||||||
[ Init.ServiceRoute.child "File_system" "vfs"
|
[ Init.ServiceRoute.child "File_system" "vfs"
|
||||||
, { service =
|
, { service =
|
||||||
{ name = "ROM"
|
{ name = "ROM"
|
||||||
, label =
|
, label =
|
||||||
Init.LabelSelector.Type.Partial
|
Init.LabelSelector.Type.Partial
|
||||||
{ prefix = Some "/nix/store/"
|
{ prefix = Some "/nix/store/"
|
||||||
, suffix = None Text
|
, suffix = None Text
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
, route =
|
, route =
|
||||||
Init.Route.Type.Child
|
Init.Route.Type.Child
|
||||||
{ name = "store_rom"
|
{ name = "store_rom"
|
||||||
|
@ -181,7 +180,7 @@ in λ(params : { bash : Text, coreutils : Text, path : Text })
|
||||||
Init.Attributes::{
|
Init.Attributes::{
|
||||||
, routes =
|
, routes =
|
||||||
[ ServiceRoute.parent "File_system"
|
[ ServiceRoute.parent "File_system"
|
||||||
, ServiceRoute.parent "Nitpicker"
|
, ServiceRoute.parent "Gui"
|
||||||
, ServiceRoute.parent "Rtc"
|
, ServiceRoute.parent "Rtc"
|
||||||
, ServiceRoute.parent "Timer"
|
, ServiceRoute.parent "Timer"
|
||||||
]
|
]
|
||||||
|
|
|
@ -1,4 +1,3 @@
|
||||||
|
|
||||||
let Genode = env:DHALL_GENODE
|
let Genode = env:DHALL_GENODE
|
||||||
|
|
||||||
let Init = Genode.Init
|
let Init = Genode.Init
|
||||||
|
|
|
@ -1,4 +1,3 @@
|
||||||
|
|
||||||
let Genode = env:DHALL_GENODE
|
let Genode = env:DHALL_GENODE
|
||||||
|
|
||||||
let Prelude = Genode.Prelude
|
let Prelude = Genode.Prelude
|
||||||
|
@ -23,12 +22,12 @@ in Init::{
|
||||||
Text
|
Text
|
||||||
Init.ServiceRoute.Type
|
Init.ServiceRoute.Type
|
||||||
Init.ServiceRoute.parent
|
Init.ServiceRoute.parent
|
||||||
[ "Nitpicker", "Rtc", "Timer" ]
|
[ "Gui", "Rtc", "Timer" ]
|
||||||
, children = toMap
|
, children = toMap
|
||||||
{ nit_fb =
|
{ gui_fb =
|
||||||
Child.flat
|
Child.flat
|
||||||
Child.Attributes::{
|
Child.Attributes::{
|
||||||
, binary = "nit_fb"
|
, binary = "gui_fb"
|
||||||
, config = Init.Config::{
|
, config = Init.Config::{
|
||||||
, attributes = toMap
|
, attributes = toMap
|
||||||
{ initial_width = "600", initial_height = "600" }
|
{ initial_width = "600", initial_height = "600" }
|
||||||
|
@ -64,8 +63,8 @@ in Init::{
|
||||||
, provides = [ "Terminal" ]
|
, provides = [ "Terminal" ]
|
||||||
, resources = Resources::{ caps = 256, ram = Genode.units.MiB 4 }
|
, resources = Resources::{ caps = 256, ram = Genode.units.MiB 4 }
|
||||||
, routes =
|
, routes =
|
||||||
[ ServiceRoute.child "Framebuffer" "nit_fb"
|
[ ServiceRoute.child "Framebuffer" "gui_fb"
|
||||||
, ServiceRoute.child "Input" "nit_fb"
|
, ServiceRoute.child "Input" "gui_fb"
|
||||||
, ServiceRoute.parent "File_system"
|
, ServiceRoute.parent "File_system"
|
||||||
]
|
]
|
||||||
}
|
}
|
||||||
|
|
|
@ -20,18 +20,18 @@ let Map =
|
||||||
let boolToAttr = λ(_ : Bool) → if _ then "yes" else "no"
|
let boolToAttr = λ(_ : Bool) → if _ then "yes" else "no"
|
||||||
|
|
||||||
let keyToXML =
|
let keyToXML =
|
||||||
λ(x : Prelude.Map.Entry Text Key)
|
λ(x : Prelude.Map.Entry Text Key) →
|
||||||
→ XML.leaf
|
XML.leaf
|
||||||
{ name = "key"
|
{ name = "key"
|
||||||
, attributes =
|
, attributes =
|
||||||
[ merge
|
[ merge
|
||||||
{ Ascii =
|
{ Ascii =
|
||||||
λ(_ : Natural)
|
λ(_ : Natural) →
|
||||||
→ { mapKey = "ascii", mapValue = Prelude.Natural.show _ }
|
{ mapKey = "ascii", mapValue = Prelude.Natural.show _ }
|
||||||
, Char = λ(_ : Text) → { mapKey = "char", mapValue = _ }
|
, Char = λ(_ : Text) → { mapKey = "char", mapValue = _ }
|
||||||
, Code =
|
, Code =
|
||||||
λ(_ : Natural)
|
λ(_ : Natural) →
|
||||||
→ { mapKey = "code", mapValue = Prelude.Natural.show _ }
|
{ mapKey = "code", mapValue = Prelude.Natural.show _ }
|
||||||
}
|
}
|
||||||
x.mapValue
|
x.mapValue
|
||||||
, { mapKey = "name", mapValue = x.mapKey }
|
, { mapKey = "name", mapValue = x.mapKey }
|
||||||
|
@ -39,8 +39,8 @@ let keyToXML =
|
||||||
}
|
}
|
||||||
|
|
||||||
let mapToXML =
|
let mapToXML =
|
||||||
λ(map : Map.Type)
|
λ(map : Map.Type) →
|
||||||
→ XML.element
|
XML.element
|
||||||
{ name = "map"
|
{ name = "map"
|
||||||
, attributes = toMap
|
, attributes = toMap
|
||||||
{ mod1 = boolToAttr map.mod1
|
{ mod1 = boolToAttr map.mod1
|
||||||
|
|
|
@ -1,4 +1,3 @@
|
||||||
|
|
||||||
let Genode = env:DHALL_GENODE
|
let Genode = env:DHALL_GENODE
|
||||||
|
|
||||||
let Prelude = Genode.Prelude
|
let Prelude = Genode.Prelude
|
||||||
|
@ -20,22 +19,22 @@ let DefaultPolicy = Init.Config.DefaultPolicy
|
||||||
let LabelSelector = Init.LabelSelector
|
let LabelSelector = Init.LabelSelector
|
||||||
|
|
||||||
let label =
|
let label =
|
||||||
λ(label : Text)
|
λ(label : Text) →
|
||||||
→ { local = label, route = label } : Child.Attributes.Label
|
{ local = label, route = label } : Child.Attributes.Label
|
||||||
|
|
||||||
let rootInit =
|
let rootInit =
|
||||||
λ ( params
|
λ ( params
|
||||||
: { fbDriver : Init.Child.Type
|
: { fbDriver : Init.Child.Type
|
||||||
, guests : Init.Children.Type
|
, guests : Init.Children.Type
|
||||||
, inputFilterChargens : List XML.Type
|
, inputFilterChargens : List XML.Type
|
||||||
, partitionType : Text
|
, partitionType : Text
|
||||||
, wm : Init.Type
|
, wm : Init.Type
|
||||||
, graphical-log : Init.Type
|
, graphical-log : Init.Type
|
||||||
, fs-log : Init.Type
|
, fs-log : Init.Type
|
||||||
, systemLabel : Text
|
, systemLabel : Text
|
||||||
}
|
}
|
||||||
)
|
) →
|
||||||
→ Init::{
|
Init::{
|
||||||
, children = toMap
|
, children = toMap
|
||||||
{ timer =
|
{ timer =
|
||||||
Child.flat
|
Child.flat
|
||||||
|
@ -113,8 +112,8 @@ let rootInit =
|
||||||
# Prelude.List.map
|
# Prelude.List.map
|
||||||
PciPolicy/Type
|
PciPolicy/Type
|
||||||
XML.Type
|
XML.Type
|
||||||
( λ(policy : PciPolicy/Type)
|
( λ(policy : PciPolicy/Type) →
|
||||||
→ XML.element
|
XML.element
|
||||||
{ name = "policy"
|
{ name = "policy"
|
||||||
, attributes = toMap
|
, attributes = toMap
|
||||||
{ label_suffix = policy.labelSuffix }
|
{ label_suffix = policy.labelSuffix }
|
||||||
|
@ -141,24 +140,22 @@ let rootInit =
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
, framebuffer = params.fbDriver
|
, framebuffer = params.fbDriver
|
||||||
, input_filter =
|
, event_filter =
|
||||||
Child.flat
|
Child.flat
|
||||||
Child.Attributes::{
|
Child.Attributes::{
|
||||||
, binary = "input_filter"
|
, binary = "event_filter"
|
||||||
, config =
|
, config =
|
||||||
let key =
|
let key =
|
||||||
λ(name : Text)
|
λ(name : Text) →
|
||||||
→ XML.leaf
|
XML.leaf
|
||||||
{ name = "key"
|
{ name = "key", attributes = toMap { name } }
|
||||||
, attributes = toMap { name = name }
|
|
||||||
}
|
|
||||||
|
|
||||||
let remap =
|
let remap =
|
||||||
λ(name : Text)
|
λ(name : Text) →
|
||||||
→ λ(to : Text)
|
λ(to : Text) →
|
||||||
→ XML.leaf
|
XML.leaf
|
||||||
{ name = "key"
|
{ name = "key"
|
||||||
, attributes = toMap { name = name, to = to }
|
, attributes = toMap { name, to }
|
||||||
}
|
}
|
||||||
|
|
||||||
in Init.Config::{
|
in Init.Config::{
|
||||||
|
@ -243,7 +240,7 @@ let rootInit =
|
||||||
[ ServiceRoute.parentLabel
|
[ ServiceRoute.parentLabel
|
||||||
"ROM"
|
"ROM"
|
||||||
(Some "config")
|
(Some "config")
|
||||||
(Some "config -> input_filter.config")
|
(Some "config -> event_filter.config")
|
||||||
, ServiceRoute.childLabel
|
, ServiceRoute.childLabel
|
||||||
"Input"
|
"Input"
|
||||||
"ps2_drv"
|
"ps2_drv"
|
||||||
|
@ -254,6 +251,7 @@ let rootInit =
|
||||||
"usb_drv"
|
"usb_drv"
|
||||||
(Some "usb")
|
(Some "usb")
|
||||||
(None Text)
|
(None Text)
|
||||||
|
, ServiceRoute.child "Capture" "nitpicker"
|
||||||
]
|
]
|
||||||
}
|
}
|
||||||
, ps2_drv =
|
, ps2_drv =
|
||||||
|
@ -303,11 +301,11 @@ let rootInit =
|
||||||
Init.toChild
|
Init.toChild
|
||||||
params.wm
|
params.wm
|
||||||
Init.Attributes::{
|
Init.Attributes::{
|
||||||
, provides = [ "Nitpicker", "Report", "ROM" ]
|
, provides = [ "Capture", "Event", "Gui", "Report", "ROM" ]
|
||||||
, romReports = [ label "clipboard", label "shape" ]
|
, romReports = [ label "clipboard", label "shape" ]
|
||||||
, routes =
|
, routes =
|
||||||
[ ServiceRoute.child "Framebuffer" "framebuffer"
|
[ ServiceRoute.child "Framebuffer" "framebuffer"
|
||||||
, ServiceRoute.child "Input" "input_filter"
|
, ServiceRoute.child "Input" "event_filter"
|
||||||
]
|
]
|
||||||
}
|
}
|
||||||
, fonts_fs =
|
, fonts_fs =
|
||||||
|
@ -408,7 +406,7 @@ let rootInit =
|
||||||
params.graphical-log
|
params.graphical-log
|
||||||
Init.Attributes::{
|
Init.Attributes::{
|
||||||
, routes =
|
, routes =
|
||||||
[ ServiceRoute.child "Nitpicker" "wm"
|
[ ServiceRoute.child "Gui" "wm"
|
||||||
, ServiceRoute.child "File_system" "fonts_fs"
|
, ServiceRoute.child "File_system" "fonts_fs"
|
||||||
]
|
]
|
||||||
}
|
}
|
||||||
|
@ -474,8 +472,8 @@ let rootInit =
|
||||||
Prelude.List.map
|
Prelude.List.map
|
||||||
Natural
|
Natural
|
||||||
XML.Type
|
XML.Type
|
||||||
( λ(i : Natural)
|
( λ(i : Natural) →
|
||||||
→ XML.leaf
|
XML.leaf
|
||||||
{ name = "policy"
|
{ name = "policy"
|
||||||
, attributes =
|
, attributes =
|
||||||
let partition =
|
let partition =
|
||||||
|
@ -483,7 +481,7 @@ let rootInit =
|
||||||
|
|
||||||
in toMap
|
in toMap
|
||||||
{ label_suffix = " ${partition}"
|
{ label_suffix = " ${partition}"
|
||||||
, partition = partition
|
, partition
|
||||||
, writeable = "yes"
|
, writeable = "yes"
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -663,8 +661,8 @@ let rootInit =
|
||||||
# Prelude.List.map
|
# Prelude.List.map
|
||||||
Text
|
Text
|
||||||
XML.Type
|
XML.Type
|
||||||
( λ(proto : Text)
|
( λ(proto : Text) →
|
||||||
→ XML.element
|
XML.element
|
||||||
{ name = proto
|
{ name = proto
|
||||||
, attributes = toMap
|
, attributes = toMap
|
||||||
{ dst = "0.0.0.0/0"
|
{ dst = "0.0.0.0/0"
|
||||||
|
@ -696,11 +694,11 @@ let rootInit =
|
||||||
Init.Attributes::{
|
Init.Attributes::{
|
||||||
, routes =
|
, routes =
|
||||||
[ ServiceRoute.parent "VM"
|
[ ServiceRoute.parent "VM"
|
||||||
, ServiceRoute.child "Nitpicker" "wm"
|
, ServiceRoute.child "Gui" "wm"
|
||||||
, { service =
|
, { service =
|
||||||
{ name = "File_system"
|
{ name = "File_system"
|
||||||
, label = LabelSelector.last "fonts"
|
, label = LabelSelector.last "fonts"
|
||||||
}
|
}
|
||||||
, route =
|
, route =
|
||||||
Init.Route.Type.Child
|
Init.Route.Type.Child
|
||||||
{ name = "fonts_fs"
|
{ name = "fonts_fs"
|
||||||
|
@ -709,9 +707,9 @@ let rootInit =
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
, { service =
|
, { service =
|
||||||
{ name = "File_system"
|
{ name = "File_system"
|
||||||
, label = LabelSelector.suffix "nix/store"
|
, label = LabelSelector.suffix "nix/store"
|
||||||
}
|
}
|
||||||
, route =
|
, route =
|
||||||
Init.Route.Type.Child
|
Init.Route.Type.Child
|
||||||
{ name = "file_system"
|
{ name = "file_system"
|
||||||
|
@ -720,9 +718,9 @@ let rootInit =
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
, { service =
|
, { service =
|
||||||
{ name = "File_system"
|
{ name = "File_system"
|
||||||
, label = LabelSelector.prefix "console"
|
, label = LabelSelector.prefix "console"
|
||||||
}
|
}
|
||||||
, route =
|
, route =
|
||||||
Init.Route.Type.Child
|
Init.Route.Type.Child
|
||||||
{ name = "file_system"
|
{ name = "file_system"
|
||||||
|
|
|
@ -1,4 +1,3 @@
|
||||||
|
|
||||||
let Genode = env:DHALL_GENODE
|
let Genode = env:DHALL_GENODE
|
||||||
|
|
||||||
let Prelude = Genode.Prelude
|
let Prelude = Genode.Prelude
|
||||||
|
@ -38,5 +37,5 @@ in Child.flat
|
||||||
}
|
}
|
||||||
, resources = Resources::{ ram = Genode.units.MiB 32 }
|
, resources = Resources::{ ram = Genode.units.MiB 32 }
|
||||||
, routes =
|
, routes =
|
||||||
[ ServiceRoute.parent "File_system", ServiceRoute.parent "Nitpicker" ]
|
[ ServiceRoute.parent "File_system", ServiceRoute.parent "Gui" ]
|
||||||
}
|
}
|
||||||
|
|
|
@ -1,4 +1,3 @@
|
||||||
|
|
||||||
let Genode = env:DHALL_GENODE
|
let Genode = env:DHALL_GENODE
|
||||||
|
|
||||||
let Prelude = Genode.Prelude
|
let Prelude = Genode.Prelude
|
||||||
|
@ -14,11 +13,11 @@ let Resources = Init.Resources
|
||||||
let ServiceRoute = Init.ServiceRoute
|
let ServiceRoute = Init.ServiceRoute
|
||||||
|
|
||||||
let Vfs/inline =
|
let Vfs/inline =
|
||||||
λ(name : Text)
|
λ(name : Text) →
|
||||||
→ λ(body : Text)
|
λ(body : Text) →
|
||||||
→ XML.element
|
XML.element
|
||||||
{ name = "inline"
|
{ name = "inline"
|
||||||
, attributes = toMap { name = name }
|
, attributes = toMap { name }
|
||||||
, content = [ XML.text body ]
|
, content = [ XML.text body ]
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -35,8 +34,8 @@ let Params
|
||||||
}
|
}
|
||||||
|
|
||||||
let toVbox =
|
let toVbox =
|
||||||
λ(params : Params)
|
λ(params : Params) →
|
||||||
→ let vboxConfig =
|
let vboxConfig =
|
||||||
let hardDisks =
|
let hardDisks =
|
||||||
merge
|
merge
|
||||||
{ ISO = XML.text ""
|
{ ISO = XML.text ""
|
||||||
|
@ -158,11 +157,9 @@ let toVbox =
|
||||||
, attributes = XML.emptyAttributes
|
, attributes = XML.emptyAttributes
|
||||||
, content =
|
, content =
|
||||||
let tag =
|
let tag =
|
||||||
λ(name : Text)
|
λ(name : Text) →
|
||||||
→ XML.leaf
|
XML.leaf
|
||||||
{ name = name
|
{ name, attributes = XML.emptyAttributes }
|
||||||
, attributes = XML.emptyAttributes
|
|
||||||
}
|
|
||||||
|
|
||||||
let mutableVfs =
|
let mutableVfs =
|
||||||
let fsNode =
|
let fsNode =
|
||||||
|
@ -224,7 +221,7 @@ let toVbox =
|
||||||
, routes =
|
, routes =
|
||||||
[ ServiceRoute.parent "File_system"
|
[ ServiceRoute.parent "File_system"
|
||||||
, ServiceRoute.parent "Nic"
|
, ServiceRoute.parent "Nic"
|
||||||
, ServiceRoute.parent "Nitpicker"
|
, ServiceRoute.parent "Gui"
|
||||||
, ServiceRoute.parent "Rtc"
|
, ServiceRoute.parent "Rtc"
|
||||||
, ServiceRoute.parent "Timer"
|
, ServiceRoute.parent "Timer"
|
||||||
, ServiceRoute.parent "VM"
|
, ServiceRoute.parent "VM"
|
||||||
|
|
|
@ -1,4 +1,3 @@
|
||||||
|
|
||||||
let Genode = env:DHALL_GENODE
|
let Genode = env:DHALL_GENODE
|
||||||
|
|
||||||
let Prelude = Genode.Prelude
|
let Prelude = Genode.Prelude
|
||||||
|
@ -20,8 +19,8 @@ let DefaultPolicy = Init.Config.DefaultPolicy
|
||||||
let LabelSelector = Init.LabelSelector
|
let LabelSelector = Init.LabelSelector
|
||||||
|
|
||||||
let label =
|
let label =
|
||||||
λ(label : Text)
|
λ(label : Text) →
|
||||||
→ { local = label, route = label } : Child.Attributes.Label
|
{ local = label, route = label } : Child.Attributes.Label
|
||||||
|
|
||||||
in Init::{
|
in Init::{
|
||||||
, children = toMap
|
, children = toMap
|
||||||
|
@ -64,7 +63,7 @@ in Init::{
|
||||||
, attributes = toMap { domain = "default" }
|
, attributes = toMap { domain = "default" }
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
, provides = [ "Nitpicker" ]
|
, provides = [ "Gui", "Capture", "Event" ]
|
||||||
, resources = Resources::{ caps = 256, ram = Genode.units.MiB 64 }
|
, resources = Resources::{ caps = 256, ram = Genode.units.MiB 64 }
|
||||||
, routes =
|
, routes =
|
||||||
[ ServiceRoute.parent "Framebuffer"
|
[ ServiceRoute.parent "Framebuffer"
|
||||||
|
@ -75,7 +74,7 @@ in Init::{
|
||||||
Child.flat
|
Child.flat
|
||||||
Child.Attributes::{
|
Child.Attributes::{
|
||||||
, binary = "pointer"
|
, binary = "pointer"
|
||||||
, routes = [ ServiceRoute.child "Nitpicker" "nitpicker" ]
|
, routes = [ ServiceRoute.child "Gui" "nitpicker" ]
|
||||||
}
|
}
|
||||||
, wm =
|
, wm =
|
||||||
Child.flat
|
Child.flat
|
||||||
|
@ -94,7 +93,7 @@ in Init::{
|
||||||
]
|
]
|
||||||
, defaultPolicy = Some DefaultPolicy::{=}
|
, defaultPolicy = Some DefaultPolicy::{=}
|
||||||
}
|
}
|
||||||
, provides = [ "Nitpicker", "Report", "ROM" ]
|
, provides = [ "Gui", "Report", "ROM" ]
|
||||||
, reportRoms = [ label "focus", label "resize_request" ]
|
, reportRoms = [ label "focus", label "resize_request" ]
|
||||||
, romReports =
|
, romReports =
|
||||||
[ label "focus_request"
|
[ label "focus_request"
|
||||||
|
@ -108,11 +107,11 @@ in Init::{
|
||||||
}
|
}
|
||||||
, routes =
|
, routes =
|
||||||
[ ServiceRoute.childLabel
|
[ ServiceRoute.childLabel
|
||||||
"Nitpicker"
|
"Gui"
|
||||||
"nitpicker"
|
"nitpicker"
|
||||||
(Some "")
|
(Some "")
|
||||||
(Some "focus")
|
(Some "focus")
|
||||||
, ServiceRoute.child "Nitpicker" "nitpicker"
|
, ServiceRoute.child "Gui" "nitpicker"
|
||||||
, ServiceRoute.parentLabel
|
, ServiceRoute.parentLabel
|
||||||
"Report"
|
"Report"
|
||||||
(Some "clipboard")
|
(Some "clipboard")
|
||||||
|
@ -175,7 +174,7 @@ in Init::{
|
||||||
''
|
''
|
||||||
]
|
]
|
||||||
}
|
}
|
||||||
, provides = [ "Nitpicker", "Report", "ROM" ]
|
, provides = [ "Gui", "Report", "ROM" ]
|
||||||
, romReports =
|
, romReports =
|
||||||
[ label "focus"
|
[ label "focus"
|
||||||
, label "resize_request"
|
, label "resize_request"
|
||||||
|
@ -194,7 +193,7 @@ in Init::{
|
||||||
, caps = 256
|
, caps = 256
|
||||||
, ram = Genode.units.MiB 8
|
, ram = Genode.units.MiB 8
|
||||||
}
|
}
|
||||||
, routes = [ ServiceRoute.child "Nitpicker" "wm" ]
|
, routes = [ ServiceRoute.child "Gui" "wm" ]
|
||||||
}
|
}
|
||||||
, decorator =
|
, decorator =
|
||||||
Child.flat
|
Child.flat
|
||||||
|
@ -217,20 +216,22 @@ in Init::{
|
||||||
]
|
]
|
||||||
, defaultPolicy = Some DefaultPolicy::{=}
|
, defaultPolicy = Some DefaultPolicy::{=}
|
||||||
}
|
}
|
||||||
, provides = [ "Nitpicker", "Report", "ROM" ]
|
, provides = [ "Gui", "Report", "ROM" ]
|
||||||
, reportRoms = [ label "window_layout", label "pointer" ]
|
, reportRoms = [ label "window_layout", label "pointer" ]
|
||||||
, romReports = [ label "decorator_margins", label "hover" ]
|
, romReports = [ label "decorator_margins", label "hover" ]
|
||||||
, resources = Init.Resources::{
|
, resources = Init.Resources::{
|
||||||
, caps = 128
|
, caps = 128
|
||||||
, ram = Genode.units.MiB 12
|
, ram = Genode.units.MiB 12
|
||||||
}
|
}
|
||||||
, routes = [ ServiceRoute.child "Nitpicker" "wm" ]
|
, routes = [ ServiceRoute.child "Gui" "wm" ]
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
, routes = [ ServiceRoute.parent "Timer" ]
|
, routes = [ ServiceRoute.parent "Timer" ]
|
||||||
, services =
|
, services =
|
||||||
[ ServiceRoute.child "Nitpicker" "wm"
|
[ ServiceRoute.child "Gui" "wm"
|
||||||
, ServiceRoute.child "Report" "wm"
|
, ServiceRoute.child "Report" "wm"
|
||||||
, ServiceRoute.child "ROM" "wm"
|
, ServiceRoute.child "ROM" "wm"
|
||||||
|
, ServiceRoute.child "Event" "Nitpicker"
|
||||||
|
, ServiceRoute.child "Capture" "Nitpicker"
|
||||||
]
|
]
|
||||||
}
|
}
|
||||||
|
|
|
@ -20,18 +20,18 @@ let Map =
|
||||||
let boolToAttr = λ(_ : Bool) → if _ then "yes" else "no"
|
let boolToAttr = λ(_ : Bool) → if _ then "yes" else "no"
|
||||||
|
|
||||||
let keyToXML =
|
let keyToXML =
|
||||||
λ(x : Prelude.Map.Entry Text Key)
|
λ(x : Prelude.Map.Entry Text Key) →
|
||||||
→ XML.leaf
|
XML.leaf
|
||||||
{ name = "key"
|
{ name = "key"
|
||||||
, attributes =
|
, attributes =
|
||||||
[ merge
|
[ merge
|
||||||
{ Ascii =
|
{ Ascii =
|
||||||
λ(_ : Natural)
|
λ(_ : Natural) →
|
||||||
→ { mapKey = "ascii", mapValue = Prelude.Natural.show _ }
|
{ mapKey = "ascii", mapValue = Prelude.Natural.show _ }
|
||||||
, Char = λ(_ : Text) → { mapKey = "char", mapValue = _ }
|
, Char = λ(_ : Text) → { mapKey = "char", mapValue = _ }
|
||||||
, Code =
|
, Code =
|
||||||
λ(_ : Natural)
|
λ(_ : Natural) →
|
||||||
→ { mapKey = "code", mapValue = Prelude.Natural.show _ }
|
{ mapKey = "code", mapValue = Prelude.Natural.show _ }
|
||||||
}
|
}
|
||||||
x.mapValue
|
x.mapValue
|
||||||
, { mapKey = "name", mapValue = x.mapKey }
|
, { mapKey = "name", mapValue = x.mapKey }
|
||||||
|
@ -39,8 +39,8 @@ let keyToXML =
|
||||||
}
|
}
|
||||||
|
|
||||||
let mapToXML =
|
let mapToXML =
|
||||||
λ(map : Map.Type)
|
λ(map : Map.Type) →
|
||||||
→ XML.element
|
XML.element
|
||||||
{ name = "map"
|
{ name = "map"
|
||||||
, attributes = toMap
|
, attributes = toMap
|
||||||
{ mod1 = boolToAttr map.mod1
|
{ mod1 = boolToAttr map.mod1
|
||||||
|
|
|
@ -1,6 +1,6 @@
|
||||||
commit 2db637f21b83701d21aa66295cd35c737649ecdc
|
commit b7d219220e10699dedb2c90e2d4010cbfab74a86
|
||||||
Author: Emery Hemingway <ehmry@posteo.net>
|
Author: Emery Hemingway <ehmry@posteo.net>
|
||||||
Date: Tue May 5 21:39:21 2020 +0530
|
Date: Sun Aug 30 10:47:51 2020 +0200
|
||||||
|
|
||||||
Produce libraries with conventional names
|
Produce libraries with conventional names
|
||||||
|
|
||||||
|
@ -33,10 +33,10 @@ index 190dd92aa1..6611d05d2a 100644
|
||||||
echo "endif") >> $(LIB_DEP_FILE)
|
echo "endif") >> $(LIB_DEP_FILE)
|
||||||
#
|
#
|
||||||
diff --git a/repos/base/mk/generic.mk b/repos/base/mk/generic.mk
|
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
|
--- a/repos/base/mk/generic.mk
|
||||||
+++ b/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
|
# 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
|
# archive rather than the target. I.e., when linking posix.lib.a (which
|
||||||
# provides 'Libc::Component::construct'), the 'construct' function is merely
|
# 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
|
# 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
|
# adding a hard dependency, we force the linker to resolve the symbol and don't
|
||||||
# drop posix.lib.a.
|
# 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
|
# time a user of the library is linked, the ABI stub should be used instead of
|
||||||
# the library.
|
# the library.
|
||||||
#
|
#
|
||||||
|
@ -67,10 +67,23 @@ index d551ac205b..e23fade62f 100644
|
||||||
- $(VERBOSE)ln -sf $(call select_so,$@) $@
|
- $(VERBOSE)ln -sf $(call select_so,$@) $@
|
||||||
+ $(VERBOSE)ln -sf $(call select_so,$@) $(patsubst liblib%,lib%,$@)
|
+ $(VERBOSE)ln -sf $(call select_so,$@) $(patsubst liblib%,lib%,$@)
|
||||||
diff --git a/repos/base/mk/lib.mk b/repos/base/mk/lib.mk
|
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
|
--- a/repos/base/mk/lib.mk
|
||||||
+++ b/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
|
include $(BASE_DIR)/mk/generic.mk
|
||||||
|
|
||||||
#
|
#
|
||||||
|
@ -93,7 +106,7 @@ index bfee2c7420..fac49c7298 100644
|
||||||
INSTALL_SO := $(INSTALL_DIR)/$(LIB_SO)
|
INSTALL_SO := $(INSTALL_DIR)/$(LIB_SO)
|
||||||
DEBUG_SO := $(DEBUG_DIR)/$(LIB_SO)
|
DEBUG_SO := $(DEBUG_DIR)/$(LIB_SO)
|
||||||
endif
|
endif
|
||||||
@@ -150,7 +156,7 @@ ifneq ($(LIB_SO),)
|
@@ -151,7 +162,7 @@ ifneq ($(LIB_SO),)
|
||||||
endif
|
endif
|
||||||
|
|
||||||
#
|
#
|
||||||
|
@ -102,7 +115,7 @@ index bfee2c7420..fac49c7298 100644
|
||||||
#
|
#
|
||||||
LIB_TAG := $(addsuffix .lib.tag,$(LIB))
|
LIB_TAG := $(addsuffix .lib.tag,$(LIB))
|
||||||
all: $(LIB_TAG)
|
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))
|
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
|
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
|
--- a/repos/libports/src/lib/libc/kernel.cc
|
||||||
+++ b/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.
|
* regular startup of the child.
|
||||||
*/
|
*/
|
||||||
bool const blacklisted = (name == "ld.lib.so")
|
bool const blacklisted = (name == "ld.lib.so")
|
||||||
|
|
|
@ -1,7 +1,7 @@
|
||||||
{ buildPackages, targetPackages }:
|
{ buildPackages, targetPackages }:
|
||||||
|
|
||||||
let
|
let
|
||||||
version = "20.05";
|
version = "20.08";
|
||||||
# Update ./port-versions.nix bumping the version and updateing the sources.
|
# Update ./port-versions.nix bumping the version and updateing the sources.
|
||||||
|
|
||||||
platform = targetPackages.targetPlatform;
|
platform = targetPackages.targetPlatform;
|
||||||
|
@ -32,7 +32,7 @@ let
|
||||||
inherit version;
|
inherit version;
|
||||||
src = fetchurl {
|
src = fetchurl {
|
||||||
url = "https://github.com/genodelabs/genode/archive/${version}.tar.gz";
|
url = "https://github.com/genodelabs/genode/archive/${version}.tar.gz";
|
||||||
hash = "sha256-5Fd8ywGbDtQF+9yDZ5xAQ7l1Vzh1jQAQeqVj+EtO1us=";
|
hash = "sha256-tFuLVuaN5F9lAEtn0lpd0MgPQpOcFixOtOsQ/z4TwPI=";
|
||||||
};
|
};
|
||||||
nativeBuildInputs = [ expect gnumake tcl ];
|
nativeBuildInputs = [ expect gnumake tcl ];
|
||||||
patches = [ ./LIB.patch ./binary-labels.patch ];
|
patches = [ ./LIB.patch ./binary-labels.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
|
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
|
index 06fc657c25..3525fd6f34 100644
|
||||||
--- a/repos/os/src/server/input_filter/chargen_source.h
|
--- a/repos/os/src/server/event_filter/chargen_source.h
|
||||||
+++ b/repos/os/src/server/input_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
|
@@ -684,9 +684,10 @@ class Input_filter::Chargen_source : public Source, Source::Sink
|
||||||
node.for_each_sub_node("key", [&] (Xml_node key_node) {
|
node.for_each_sub_node("key", [&] (Xml_node key_node) {
|
||||||
|
|
||||||
Key_name const name = key_node.attribute_value("name", Key_name());
|
Key_name const name = key_node.attribute_value("name", Key_name());
|
||||||
- Input::Keycode const key = key_code_by_name(name);
|
- Input::Keycode const key = key_code_by_name(name);
|
||||||
-
|
-
|
||||||
|
@ -20,5 +20,5 @@ index 06fc657c25..3525fd6f34 100644
|
||||||
+ new (_alloc) Modifier(_modifiers, id, key);
|
+ new (_alloc) Modifier(_modifiers, id, key);
|
||||||
+ } catch (Unknown_key) { warning("unrecognized key name ", name); }
|
+ } catch (Unknown_key) { warning("unrecognized key name ", name); }
|
||||||
});
|
});
|
||||||
|
|
||||||
node.for_each_sub_node("rom", [&] (Xml_node rom_node) {
|
node.for_each_sub_node("rom", [&] (Xml_node rom_node) {
|
|
@ -85,30 +85,3 @@ index 150640ddf3..e511897600 100644
|
||||||
DUMMY(int , -1, getpriority, (int, int))
|
DUMMY(int , -1, getpriority, (int, int))
|
||||||
DUMMY(int , -1, getrusage, (int, rusage *))
|
DUMMY(int , -1, getrusage, (int, rusage *))
|
||||||
DUMMY_SILENT(uid_t , 0, getuid, (void))
|
DUMMY_SILENT(uid_t , 0, getuid, (void))
|
||||||
commit c3d87d0a79f9e30aebdf26d3b684c6b1b2214c51
|
|
||||||
Author: Emery Hemingway <ehmry@posteo.net>
|
|
||||||
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) { }
|
|
||||||
+
|
|
||||||
}
|
|
||||||
|
|
|
@ -1,8 +1,7 @@
|
||||||
# The file is generated by the "genodeSources" derivation.
|
# The file is generated by the "genodeSources" derivation.
|
||||||
{
|
{
|
||||||
acpica = "5c1c54";
|
acpica = "5c1c54";
|
||||||
ada-runtime = "db8987";
|
ada-runtime = "fabce1";
|
||||||
arora = "e8f003";
|
|
||||||
bash = "02edac";
|
bash = "02edac";
|
||||||
bbl = "b9358c";
|
bbl = "b9358c";
|
||||||
binutils = "62d309";
|
binutils = "62d309";
|
||||||
|
@ -14,7 +13,6 @@
|
||||||
dde_ipxe = "b68f4e";
|
dde_ipxe = "b68f4e";
|
||||||
dde_linux = "173719";
|
dde_linux = "173719";
|
||||||
dde_rump = "9afe56";
|
dde_rump = "9afe56";
|
||||||
dde_zircon = "49e3d9";
|
|
||||||
diffutils = "ee502a";
|
diffutils = "ee502a";
|
||||||
drm = "01858a";
|
drm = "01858a";
|
||||||
e2fsprogs = "2a09cd";
|
e2fsprogs = "2a09cd";
|
||||||
|
@ -31,23 +29,22 @@
|
||||||
gcc = "20345a";
|
gcc = "20345a";
|
||||||
gcov = "a6f852";
|
gcov = "a6f852";
|
||||||
gdb = "8eddf0";
|
gdb = "8eddf0";
|
||||||
getdns = "030233";
|
|
||||||
gmp = "855680";
|
gmp = "855680";
|
||||||
gnupg = "c784d4";
|
gnupg = "c784d4";
|
||||||
grep = "b96a88";
|
grep = "b96a88";
|
||||||
grub2 = "8cf62c";
|
grub2 = "856f99";
|
||||||
icu = "62f13b";
|
icu = "62f13b";
|
||||||
jbig2dec = "682269";
|
jbig2dec = "682269";
|
||||||
jitterentropy = "6017e1";
|
jitterentropy = "6017e1";
|
||||||
jpeg = "5effdd";
|
jpeg = "5effdd";
|
||||||
less = "e7a42c";
|
less = "e7a42c";
|
||||||
libarchive = "7ce310";
|
libarchive = "7ce310";
|
||||||
libc = "2e544d";
|
libc = "771dcc";
|
||||||
libdrm = "c1cce0";
|
libdrm = "c1cce0";
|
||||||
libgcrypt = "37159a";
|
libgcrypt = "37159a";
|
||||||
libiconv = "3f5ca3";
|
libiconv = "3f5ca3";
|
||||||
libpng = "ac05f3";
|
libpng = "ac05f3";
|
||||||
libsparkcrypto = "d479dc";
|
libsparkcrypto = "924de3";
|
||||||
libssh = "a475cc";
|
libssh = "a475cc";
|
||||||
libusb = "633358";
|
libusb = "633358";
|
||||||
libyaml = "1cde80";
|
libyaml = "1cde80";
|
||||||
|
@ -74,23 +71,22 @@
|
||||||
pistachio = "68c8c3";
|
pistachio = "68c8c3";
|
||||||
qemu-usb = "2ff18f";
|
qemu-usb = "2ff18f";
|
||||||
qoost = "014d68";
|
qoost = "014d68";
|
||||||
qt5 = "084385";
|
qt5 = "1b1c56";
|
||||||
qt5-host = "ad5edc";
|
qt5-host = "21e078";
|
||||||
readline = "a0bfb0";
|
readline = "a0bfb0";
|
||||||
sanitizer = "181889";
|
sanitizer = "3ac05b";
|
||||||
sed = "459979";
|
sed = "459979";
|
||||||
sel4 = "793548";
|
sel4 = "793548";
|
||||||
sel4_tools = "4ee1b9";
|
sel4_tools = "4ee1b9";
|
||||||
seoul = "e8d696";
|
seoul = "e8d696";
|
||||||
solo5 = "55dd4f";
|
|
||||||
stb = "ab8f50";
|
stb = "ab8f50";
|
||||||
stdcxx = "79ad88";
|
stdcxx = "722e94";
|
||||||
tar = "19aea4";
|
tar = "19aea4";
|
||||||
tcl = "842b1a";
|
tcl = "842b1a";
|
||||||
ttf-bitstream-vera = "cd3684";
|
ttf-bitstream-vera = "cd3684";
|
||||||
uboot = "f3fd6b";
|
uboot = "f3fd6b";
|
||||||
vim = "53caaa";
|
vim = "53caaa";
|
||||||
virtualbox5 = "e93407";
|
virtualbox5 = "e60d97";
|
||||||
which = "91c953";
|
which = "91c953";
|
||||||
x86emu = "8a1c3a";
|
x86emu = "8a1c3a";
|
||||||
xz = "45203f";
|
xz = "45203f";
|
||||||
|
|
|
@ -4,7 +4,7 @@
|
||||||
{ buildPackages }:
|
{ buildPackages }:
|
||||||
with buildPackages; {
|
with buildPackages; {
|
||||||
binutils = {
|
binutils = {
|
||||||
hash = "sha256-gTYP9YNx+x6KVfIMjTD+UAReWwUg93TCkJIWwAau9eA=";
|
hash = "sha256-Y6EwEb2uFNzJ/6Q+7Jia7LZu5iRt1XkzkogUxiC93t8=";
|
||||||
nativeBuildInputs = [ autoconf ];
|
nativeBuildInputs = [ autoconf ];
|
||||||
};
|
};
|
||||||
dde_bsd.hash = "sha256-Z2piyoOrNmXyEEp+kX5w/q4JTylYdSOocUrFeqjz13A=";
|
dde_bsd.hash = "sha256-Z2piyoOrNmXyEEp+kX5w/q4JTylYdSOocUrFeqjz13A=";
|
||||||
|
@ -26,7 +26,7 @@ with buildPackages; {
|
||||||
jitterentropy.hash = "sha256-6KS732GxtUMz0xPYKtshdn039DgdJq11vTDQesZn4Ds=";
|
jitterentropy.hash = "sha256-6KS732GxtUMz0xPYKtshdn039DgdJq11vTDQesZn4Ds=";
|
||||||
jpeg.hash = "sha256-RLVnlrnYGrhqr3Feikoi/BNditCaKN0u3t9/UDpl2wQ=";
|
jpeg.hash = "sha256-RLVnlrnYGrhqr3Feikoi/BNditCaKN0u3t9/UDpl2wQ=";
|
||||||
libc = {
|
libc = {
|
||||||
hash = "sha256-ONmUhqY7rVtH6Z+K7VCY0OMLNi1SF1XCHFjiVY3MW3c=";
|
hash = "sha256-bD0Kqho7ABMHxFYOAkQlvJgzSIsomy5OTtpKE+JAVUY=";
|
||||||
nativeBuildInputs = [ buildPackages.gcc ];
|
nativeBuildInputs = [ buildPackages.gcc ];
|
||||||
};
|
};
|
||||||
libiconv.hash = "sha256-25YcW5zo1fE33ZolGQroR+KZO8wHEdN1QXa7+MhwS78=";
|
libiconv.hash = "sha256-25YcW5zo1fE33ZolGQroR+KZO8wHEdN1QXa7+MhwS78=";
|
||||||
|
@ -44,9 +44,9 @@ with buildPackages; {
|
||||||
openssl.hash = "sha256-epRL3SobYQ7xf8qwp6D5xu/Ms2T/LhUjjs273ywWRWg=";
|
openssl.hash = "sha256-epRL3SobYQ7xf8qwp6D5xu/Ms2T/LhUjjs273ywWRWg=";
|
||||||
qemu-usb.hash = "sha256-F4ZXeH5sx3FOcD42zFOxKFMsqGookKdav1NJ7YgVw98=";
|
qemu-usb.hash = "sha256-F4ZXeH5sx3FOcD42zFOxKFMsqGookKdav1NJ7YgVw98=";
|
||||||
stb.hash = "sha256-9LSH1i8jcEvjRAmTvgtK+Axy9hO7uiSzmSgBvs0zkTc=";
|
stb.hash = "sha256-9LSH1i8jcEvjRAmTvgtK+Axy9hO7uiSzmSgBvs0zkTc=";
|
||||||
stdcxx.hash = "sha256-iiE009fL1yE3XJ7HkaJakOiS++m7qONwwGrdJjBXQ7k=";
|
stdcxx.hash = "sha256-4Gn/TyA/q83kyO8f5Wr+gv8fNYR5YPDNZIk7+Ty5fn4=";
|
||||||
virtualbox5 = {
|
virtualbox5 = {
|
||||||
hash = "sha256-HLga/0pHQkjdMH7mU194B7pTFJoOoww69Yii4Ixmkxo=";
|
hash = "sha256-ERI+j2thvyMj+TJSHDdA9sOQdIxrXfNfMNJIa8VRE0M=";
|
||||||
nativeBuildInputs = [ iasl libxslt unzip yasm ];
|
nativeBuildInputs = [ iasl libxslt unzip yasm ];
|
||||||
};
|
};
|
||||||
x86emu.hash = "sha256-QY6OL+cDVjQ67JItP1rS4ufPRGZf43AZtWxwza/0q0w=";
|
x86emu.hash = "sha256-QY6OL+cDVjQ67JItP1rS4ufPRGZf43AZtWxwza/0q0w=";
|
||||||
|
|
|
@ -11,13 +11,10 @@ let
|
||||||
|
|
||||||
vbox5' = {
|
vbox5' = {
|
||||||
nativeBuildInputs = with buildPackages; [ iasl yasm ];
|
nativeBuildInputs = with buildPackages; [ iasl yasm ];
|
||||||
patches = [ ./vbox-framebuffer-fail-on-fail.patch ];
|
|
||||||
portInputs = [ libc libiconv qemu-usb stdcxx virtualbox5 ];
|
portInputs = [ libc libiconv qemu-usb stdcxx virtualbox5 ];
|
||||||
};
|
};
|
||||||
in {
|
in {
|
||||||
|
|
||||||
cached_fs_rom.patches = [ ./cached_fs_rom.patch ];
|
|
||||||
|
|
||||||
fb_sdl = with buildPackages; {
|
fb_sdl = with buildPackages; {
|
||||||
nativeBuildInputs = [ pkgconfig ];
|
nativeBuildInputs = [ pkgconfig ];
|
||||||
buildInputs = [ SDL ];
|
buildInputs = [ SDL ];
|
||||||
|
@ -28,7 +25,7 @@ in {
|
||||||
|
|
||||||
init.patches = [ ./sandbox.patch ];
|
init.patches = [ ./sandbox.patch ];
|
||||||
|
|
||||||
input_filter.patches = [ ./input_filter.patch ];
|
event_filter.patches = [ ./event_filter.patch ];
|
||||||
|
|
||||||
intel_fb_drv = {
|
intel_fb_drv = {
|
||||||
BOARD = "pc";
|
BOARD = "pc";
|
||||||
|
|
|
@ -1,126 +0,0 @@
|
||||||
commit d2a28a33f6a2bda7000ce201d52ff99714895640
|
|
||||||
Author: Emery Hemingway <ehmry@posteo.net>
|
|
||||||
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 <ehmry@posteo.net>
|
|
||||||
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 <os/texture_rgb888.h>
|
|
||||||
#include <os/dither_painter.h>
|
|
||||||
|
|
||||||
+#include <base/attached_dataspace.h>
|
|
||||||
+#include <util/reconstructible.h>
|
|
||||||
+
|
|
||||||
/* 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<Genode::Attached_dataspace>
|
|
||||||
+ _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<char>(), 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<Pixel_src> texture((Pixel_src *)image, nullptr, area_vm);
|
|
||||||
- Surface<Pixel_dst> surface((Pixel_dst *)_fb_base, area_fb);
|
|
||||||
+ Surface<Pixel_dst> surface(_fb_dataspace->local_addr<Pixel_dst>(), area_fb);
|
|
||||||
|
|
||||||
Dither_painter::paint(surface, texture, Surface_base::Point(o_x, o_y));
|
|
||||||
|
|
|
@ -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
|
|
||||||
''
|
|
||||||
<rom name="system">
|
|
||||||
<inline>
|
|
||||||
<system state=""/>
|
|
||||||
</inline>
|
|
||||||
<sleep milliseconds="10000"/>
|
|
||||||
</rom>
|
|
||||||
''
|
|
||||||
]
|
|
||||||
}
|
|
||||||
}
|
|
||||||
, test-driver_manager =
|
|
||||||
Child.flat
|
|
||||||
Child.Attributes::{
|
|
||||||
, binary = "test-driver_manager"
|
|
||||||
, config = Init.Config::{
|
|
||||||
, content =
|
|
||||||
[ Genode.Prelude.XML.text
|
|
||||||
''
|
|
||||||
<check_ahci_block_device label="ahci-1" block_count="65536" block_size="512" model="QEMU HARDDISK"/>
|
|
||||||
<check_input/>
|
|
||||||
<check_framebuffer/>
|
|
||||||
''
|
|
||||||
]
|
|
||||||
}
|
|
||||||
, reportRoms = [ label "block_devices" ]
|
|
||||||
, routes =
|
|
||||||
[ ServiceRoute.child "Block" "drivers"
|
|
||||||
, ServiceRoute.child "Framebuffer" "drivers"
|
|
||||||
, ServiceRoute.child "Input" "drivers"
|
|
||||||
]
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
let rom =
|
|
||||||
Genode.Boot.toRomTexts
|
|
||||||
( toMap
|
|
||||||
{ capslock = "<feature_creep/>"
|
|
||||||
, numlock = "<feature_creep/>"
|
|
||||||
, usb_policy = "<usb/>"
|
|
||||||
}
|
|
||||||
# [ { mapKey = "fb_drv.config"
|
|
||||||
, mapValue =
|
|
||||||
''
|
|
||||||
<config width="1024" height="768" buffered="yes"/>
|
|
||||||
<report connectors="yes"/>
|
|
||||||
</config>
|
|
||||||
''
|
|
||||||
}
|
|
||||||
, { mapKey = "input_filter.config"
|
|
||||||
, mapValue =
|
|
||||||
''
|
|
||||||
<config>
|
|
||||||
<input label="ps2"/>
|
|
||||||
<input label="usb"/>
|
|
||||||
<output>
|
|
||||||
<chargen>
|
|
||||||
<remap>
|
|
||||||
<key name="KEY_F11" to="KEY_RESTART"/>
|
|
||||||
<key name="KEY_F12" to="KEY_DASHBOARD"/>
|
|
||||||
<key name="KEY_LEFTMETA" to="KEY_SCREEN"/>
|
|
||||||
<merge>
|
|
||||||
<accelerate max="50" sensitivity_percent="1000" curve="127">
|
|
||||||
<button-scroll>
|
|
||||||
<input name="ps2"/>
|
|
||||||
<vertical button="BTN_MIDDLE" speed_percent="-10"/>
|
|
||||||
<horizontal button="BTN_MIDDLE" speed_percent="-10"/>
|
|
||||||
</button-scroll>
|
|
||||||
</accelerate>
|
|
||||||
<input name="usb"/>
|
|
||||||
</merge>
|
|
||||||
</remap>
|
|
||||||
<mod1>
|
|
||||||
<key name="KEY_LEFTSHIFT"/> <key name="KEY_RIGHTSHIFT"/>
|
|
||||||
</mod1>
|
|
||||||
<mod2>
|
|
||||||
<key name="KEY_LEFTCTRL"/> <key name="KEY_RIGHTCTRL"/>
|
|
||||||
</mod2>
|
|
||||||
<mod3>
|
|
||||||
<key name="KEY_RIGHTALT"/> <!-- AltGr -->
|
|
||||||
</mod3>
|
|
||||||
<repeat delay_ms="230" rate_ms="40"/>
|
|
||||||
</chargen>
|
|
||||||
</output>
|
|
||||||
</config>
|
|
||||||
''
|
|
||||||
}
|
|
||||||
]
|
|
||||||
)
|
|
||||||
|
|
||||||
in Test::{ children = Test.initToChildren init, rom = rom }
|
|
|
@ -1,4 +1,3 @@
|
||||||
|
|
||||||
let Test = ./test.dhall ? env:DHALL_GENODE_TEST
|
let Test = ./test.dhall ? env:DHALL_GENODE_TEST
|
||||||
|
|
||||||
let Genode = Test.Genode
|
let Genode = Test.Genode
|
||||||
|
|
|
@ -1,4 +1,3 @@
|
||||||
|
|
||||||
let Test = ./test.dhall ? env:DHALL_GENODE_TEST
|
let Test = ./test.dhall ? env:DHALL_GENODE_TEST
|
||||||
|
|
||||||
let Genode = Test.Genode
|
let Genode = Test.Genode
|
||||||
|
@ -11,8 +10,8 @@ let Init = Genode.Init
|
||||||
|
|
||||||
let Child = Init.Child
|
let Child = Init.Child
|
||||||
|
|
||||||
in λ(params : { bash : Text, coreutils : Text, script : Text })
|
in λ(params : { bash : Text, coreutils : Text, script : Text }) →
|
||||||
→ let init =
|
let init =
|
||||||
Init::{
|
Init::{
|
||||||
, verbose = True
|
, verbose = True
|
||||||
, routes =
|
, routes =
|
||||||
|
@ -83,8 +82,8 @@ in λ(params : { bash : Text, coreutils : Text, script : Text })
|
||||||
# Prelude.List.map
|
# Prelude.List.map
|
||||||
Text
|
Text
|
||||||
XML.Type
|
XML.Type
|
||||||
( λ(x : Text)
|
( λ(x : Text) →
|
||||||
→ XML.leaf
|
XML.leaf
|
||||||
{ name = "arg"
|
{ name = "arg"
|
||||||
, attributes = toMap { value = x }
|
, attributes = toMap { value = x }
|
||||||
}
|
}
|
||||||
|
@ -99,13 +98,13 @@ in λ(params : { bash : Text, coreutils : Text, script : Text })
|
||||||
, routes =
|
, routes =
|
||||||
[ Init.ServiceRoute.child "File_system" "vfs"
|
[ Init.ServiceRoute.child "File_system" "vfs"
|
||||||
, { service =
|
, { service =
|
||||||
{ name = "ROM"
|
{ name = "ROM"
|
||||||
, label =
|
, label =
|
||||||
Init.LabelSelector.Type.Partial
|
Init.LabelSelector.Type.Partial
|
||||||
{ prefix = Some "/nix/store/"
|
{ prefix = Some "/nix/store/"
|
||||||
, suffix = None Text
|
, suffix = None Text
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
, route =
|
, route =
|
||||||
Init.Route.Type.Child
|
Init.Route.Type.Child
|
||||||
{ name = "store_rom"
|
{ name = "store_rom"
|
||||||
|
|
|
@ -1,4 +1,3 @@
|
||||||
|
|
||||||
let Genode = env:DHALL_GENODE
|
let Genode = env:DHALL_GENODE
|
||||||
|
|
||||||
let Init = Genode.Init
|
let Init = Genode.Init
|
||||||
|
@ -25,11 +24,25 @@ let init =
|
||||||
, block =
|
, block =
|
||||||
Child.flat
|
Child.flat
|
||||||
Child.Attributes::{
|
Child.Attributes::{
|
||||||
, binary = "ram_block"
|
, binary = "vfs_block"
|
||||||
, provides = [ "Block" ]
|
, provides = [ "Block" ]
|
||||||
, resources = Init.Resources::{ ram = Genode.units.MiB 9 }
|
, resources = Init.Resources::{ ram = Genode.units.MiB 12 }
|
||||||
, config = Init.Config::{
|
, config = Init.Config::{
|
||||||
, attributes = toMap { size = "8M", block_size = "4096" }
|
, content =
|
||||||
|
[ Genode.Prelude.XML.text
|
||||||
|
''
|
||||||
|
<vfs>
|
||||||
|
<ram/>
|
||||||
|
<import>
|
||||||
|
<zero name="block.raw" size="8M"/>
|
||||||
|
</import>
|
||||||
|
</vfs>
|
||||||
|
''
|
||||||
|
]
|
||||||
|
, defaultPolicy = Some Init.Config.DefaultPolicy::{
|
||||||
|
, attributes = toMap
|
||||||
|
{ file = "block.raw", writeable = "yes" }
|
||||||
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
|
@ -21,10 +21,11 @@ in map solo5Test [
|
||||||
if pkgs.stdenv.hostPlatform.isAarch64 then "True" else "False"
|
if pkgs.stdenv.hostPlatform.isAarch64 then "True" else "False"
|
||||||
} }";
|
} }";
|
||||||
inputs = map genodeMake [ "app/ping" ] ++ (map genodeDepot [
|
inputs = map genodeMake [ "app/ping" ] ++ (map genodeDepot [
|
||||||
"ram_block"
|
|
||||||
"nic_bridge"
|
"nic_bridge"
|
||||||
"nic_loopback"
|
"nic_loopback"
|
||||||
"sequence"
|
"sequence"
|
||||||
|
"vfs_block"
|
||||||
|
"vfs_import"
|
||||||
]);
|
]);
|
||||||
};
|
};
|
||||||
}
|
}
|
||||||
|
|
|
@ -1,4 +1,3 @@
|
||||||
|
|
||||||
let Genode = env:DHALL_GENODE
|
let Genode = env:DHALL_GENODE
|
||||||
|
|
||||||
let Init = Genode.Init
|
let Init = Genode.Init
|
||||||
|
|
|
@ -1,4 +1,3 @@
|
||||||
|
|
||||||
let Genode = env:DHALL_GENODE
|
let Genode = env:DHALL_GENODE
|
||||||
|
|
||||||
let Init = Genode.Init
|
let Init = Genode.Init
|
||||||
|
|
|
@ -1,4 +1,3 @@
|
||||||
|
|
||||||
let Test = ../test.dhall ? env:DHALL_GENODE_TEST
|
let Test = ../test.dhall ? env:DHALL_GENODE_TEST
|
||||||
|
|
||||||
let Genode = Test.Genode
|
let Genode = Test.Genode
|
||||||
|
@ -12,8 +11,8 @@ let Child = Init.Child
|
||||||
let Config = Init.Config
|
let Config = Init.Config
|
||||||
|
|
||||||
let toSimple =
|
let toSimple =
|
||||||
λ(testName : Text)
|
λ(testName : Text) →
|
||||||
→ Child.flat
|
Child.flat
|
||||||
Child.Attributes::{
|
Child.Attributes::{
|
||||||
, binary = "solo5-test_${testName}"
|
, binary = "solo5-test_${testName}"
|
||||||
, resources = Init.Resources::{ caps = 256, ram = Genode.units.MiB 3 }
|
, resources = Init.Resources::{ caps = 256, ram = Genode.units.MiB 3 }
|
||||||
|
@ -28,8 +27,8 @@ let toSimple =
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
in λ(params : { isAarch64 : Bool })
|
in λ(params : { isAarch64 : Bool }) →
|
||||||
→ let tests
|
let tests
|
||||||
: Prelude.Map.Type Text Child.Type
|
: Prelude.Map.Type Text Child.Type
|
||||||
= toMap
|
= toMap
|
||||||
{ quiet = toSimple "quiet"
|
{ quiet = toSimple "quiet"
|
||||||
|
@ -40,10 +39,8 @@ in λ(params : { isAarch64 : Bool })
|
||||||
, net = ./net.dhall
|
, net = ./net.dhall
|
||||||
, net_2if = ./net_2if.dhall
|
, net_2if = ./net_2if.dhall
|
||||||
}
|
}
|
||||||
# ( if params.isAarch64
|
# ( if params.isAarch64
|
||||||
|
|
||||||
then Prelude.Map.empty Text Child.Type
|
then Prelude.Map.empty Text Child.Type
|
||||||
|
|
||||||
else toMap { fpu = toSimple "fpu" }
|
else toMap { fpu = toSimple "fpu" }
|
||||||
)
|
)
|
||||||
|
|
||||||
|
|
|
@ -1,4 +1,3 @@
|
||||||
|
|
||||||
let Test = ../test.dhall ? env:DHALL_GENODE_TEST
|
let Test = ../test.dhall ? env:DHALL_GENODE_TEST
|
||||||
|
|
||||||
let Child = Test.Genode.Init.Child
|
let Child = Test.Genode.Init.Child
|
||||||
|
|
|
@ -1,4 +1,3 @@
|
||||||
|
|
||||||
let Genode = env:DHALL_GENODE
|
let Genode = env:DHALL_GENODE
|
||||||
|
|
||||||
let Init = Genode.Init
|
let Init = Genode.Init
|
||||||
|
|
|
@ -1,4 +1,3 @@
|
||||||
|
|
||||||
let Test = ./test.dhall ? env:DHALL_GENODE_TEST
|
let Test = ./test.dhall ? env:DHALL_GENODE_TEST
|
||||||
|
|
||||||
let Genode = Test.Genode
|
let Genode = Test.Genode
|
||||||
|
@ -18,15 +17,15 @@ let Children = TextMapType Child.Type
|
||||||
let Manifest/Type = TextMapType (TextMapType Text)
|
let Manifest/Type = TextMapType (TextMapType Text)
|
||||||
|
|
||||||
let Manifest/toRoutes =
|
let Manifest/toRoutes =
|
||||||
λ(manifest : Manifest/Type)
|
λ(manifest : Manifest/Type) →
|
||||||
→ Prelude.List.map
|
Prelude.List.map
|
||||||
(Prelude.Map.Entry Text Text)
|
(Prelude.Map.Entry Text Text)
|
||||||
Init.ServiceRoute.Type
|
Init.ServiceRoute.Type
|
||||||
( λ(entry : Prelude.Map.Entry Text Text)
|
( λ(entry : Prelude.Map.Entry Text Text) →
|
||||||
→ { service =
|
{ service =
|
||||||
{ name = "ROM"
|
{ name = "ROM"
|
||||||
, label = Init.LabelSelector.Type.Last entry.mapKey
|
, label = Init.LabelSelector.Type.Last entry.mapKey
|
||||||
}
|
}
|
||||||
, route =
|
, route =
|
||||||
Init.Route.Type.Child
|
Init.Route.Type.Child
|
||||||
{ name = "store_rom"
|
{ name = "store_rom"
|
||||||
|
@ -44,9 +43,9 @@ let parentROMs =
|
||||||
Prelude.List.map
|
Prelude.List.map
|
||||||
Text
|
Text
|
||||||
Init.ServiceRoute.Type
|
Init.ServiceRoute.Type
|
||||||
( λ(label : Text)
|
( λ(label : Text) →
|
||||||
→ { service =
|
{ service =
|
||||||
{ name = "ROM", label = Init.LabelSelector.Type.Last label }
|
{ name = "ROM", label = Init.LabelSelector.Type.Last label }
|
||||||
, route =
|
, route =
|
||||||
Init.Route.Type.Parent { label = Some label, diag = None Bool }
|
Init.Route.Type.Parent { label = Some label, diag = None Bool }
|
||||||
}
|
}
|
||||||
|
@ -54,9 +53,9 @@ let parentROMs =
|
||||||
|
|
||||||
let wrapHarness
|
let wrapHarness
|
||||||
: Children → Manifest/Type → Child.Type
|
: Children → Manifest/Type → Child.Type
|
||||||
= λ(children : Children)
|
= λ(children : Children) →
|
||||||
→ λ(manifest : Manifest/Type)
|
λ(manifest : Manifest/Type) →
|
||||||
→ Child.nested
|
Child.nested
|
||||||
children
|
children
|
||||||
Child.Attributes::{
|
Child.Attributes::{
|
||||||
, binary = "sotest-harness"
|
, binary = "sotest-harness"
|
||||||
|
@ -88,11 +87,11 @@ let wrapHarness
|
||||||
# Manifest/toRoutes manifest
|
# Manifest/toRoutes manifest
|
||||||
}
|
}
|
||||||
|
|
||||||
in λ(test : Test.Type)
|
in λ(test : Test.Type) →
|
||||||
→ λ(storeSize : Natural)
|
λ(storeSize : Natural) →
|
||||||
→ λ(storeManifest : Manifest/Type)
|
λ(storeManifest : Manifest/Type) →
|
||||||
→ λ(bootManifest : Manifest/Type)
|
λ(bootManifest : Manifest/Type) →
|
||||||
→ Genode.Boot::{
|
Genode.Boot::{
|
||||||
, config = Init::{
|
, config = Init::{
|
||||||
, children =
|
, children =
|
||||||
[ { mapKey = "timer"
|
[ { mapKey = "timer"
|
||||||
|
|
|
@ -1,19 +1,18 @@
|
||||||
|
|
||||||
let Genode = env:DHALL_GENODE
|
let Genode = env:DHALL_GENODE
|
||||||
|
|
||||||
let Prelude = Genode.Prelude
|
let Prelude = Genode.Prelude
|
||||||
|
|
||||||
let Init = Genode.Init
|
let Init = Genode.Init
|
||||||
|
|
||||||
in { Genode = Genode
|
in { Genode
|
||||||
, Type =
|
, Type =
|
||||||
{ children : Prelude.Map.Type Text Init.Child.Type
|
{ children : Prelude.Map.Type Text Init.Child.Type
|
||||||
, rom : Genode.BootModules.Type
|
, rom : Genode.BootModules.Type
|
||||||
}
|
}
|
||||||
, default.rom = [] : Genode.BootModules.Type
|
, default.rom = [] : Genode.BootModules.Type
|
||||||
, initToChildren =
|
, initToChildren =
|
||||||
λ(init : Init.Type)
|
λ(init : Init.Type) →
|
||||||
→ toMap
|
toMap
|
||||||
{ init =
|
{ init =
|
||||||
Init.toChild
|
Init.toChild
|
||||||
init
|
init
|
||||||
|
|
|
@ -1,4 +1,3 @@
|
||||||
|
|
||||||
let Test = ./test.dhall ? env:DHALL_GENODE_TEST
|
let Test = ./test.dhall ? env:DHALL_GENODE_TEST
|
||||||
|
|
||||||
let Genode = Test.Genode
|
let Genode = Test.Genode
|
||||||
|
@ -11,8 +10,8 @@ let ServiceRoute = Init.ServiceRoute
|
||||||
|
|
||||||
let Child = Init.Child
|
let Child = Init.Child
|
||||||
|
|
||||||
in λ(guest : { linux : Text, dtb : Text, initrd : Text })
|
in λ(guest : { linux : Text, dtb : Text, initrd : Text }) →
|
||||||
→ let init =
|
let init =
|
||||||
Init::{
|
Init::{
|
||||||
, children = toMap
|
, children = toMap
|
||||||
{ nic =
|
{ 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" }
|
, attributes = toMap { domain = "default" }
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
|
@ -1,4 +1,3 @@
|
||||||
|
|
||||||
let Test = ./test.dhall ? env:DHALL_GENODE_TEST
|
let Test = ./test.dhall ? env:DHALL_GENODE_TEST
|
||||||
|
|
||||||
let Genode = Test.Genode
|
let Genode = Test.Genode
|
||||||
|
@ -18,4 +17,4 @@ let vmm =
|
||||||
, routes = [ Genode.Init.ServiceRoute.parent "VM" ]
|
, routes = [ Genode.Init.ServiceRoute.parent "VM" ]
|
||||||
}
|
}
|
||||||
|
|
||||||
in Test::{ children = toMap { vmm = vmm } }
|
in Test::{ children = toMap { vmm } }
|
||||||
|
|
|
@ -1,4 +1,3 @@
|
||||||
|
|
||||||
let Test = ./test.dhall ? env:DHALL_GENODE_TEST
|
let Test = ./test.dhall ? env:DHALL_GENODE_TEST
|
||||||
|
|
||||||
let Genode = Test.Genode
|
let Genode = Test.Genode
|
||||||
|
@ -83,7 +82,7 @@ let pciInit =
|
||||||
, attributes = toMap { class = "ALL" }
|
, attributes = toMap { class = "ALL" }
|
||||||
}
|
}
|
||||||
]
|
]
|
||||||
, label = Init.LabelSelector.Type.Scoped "test-pci"
|
, label = Init.LabelSelector.prefix "test-pci"
|
||||||
}
|
}
|
||||||
]
|
]
|
||||||
}
|
}
|
||||||
|
|
Loading…
Reference in New Issue