genodeSources: 20.05 -> 20.08
Cette révision appartient à :
Parent
1f53f25419
révision
c3385aedd0
|
@ -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"
|
||||
|
|
82
flake.nix
82
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;
|
||||
|
||||
});
|
||||
|
||||
};
|
||||
|
|
|
@ -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"
|
||||
|
|
|
@ -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"
|
||||
]
|
||||
|
|
|
@ -1,4 +1,3 @@
|
|||
|
||||
let Genode = env:DHALL_GENODE
|
||||
|
||||
let Init = Genode.Init
|
||||
|
|
|
@ -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"
|
||||
]
|
||||
}
|
||||
|
|
|
@ -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
|
||||
|
|
|
@ -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"
|
||||
|
|
|
@ -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" ]
|
||||
}
|
||||
|
|
|
@ -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"
|
||||
|
|
|
@ -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"
|
||||
]
|
||||
}
|
||||
|
|
|
@ -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
|
||||
|
|
|
@ -1,6 +1,6 @@
|
|||
commit 2db637f21b83701d21aa66295cd35c737649ecdc
|
||||
commit b7d219220e10699dedb2c90e2d4010cbfab74a86
|
||||
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
|
||||
|
||||
|
@ -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")
|
||||
|
|
|
@ -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 ];
|
||||
|
|
|
@ -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) {
|
|
@ -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 <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.
|
||||
{
|
||||
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";
|
||||
|
|
|
@ -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=";
|
||||
|
|
|
@ -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";
|
||||
|
|
|
@ -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 Genode = Test.Genode
|
||||
|
|
|
@ -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"
|
||||
|
|
|
@ -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
|
||||
''
|
||||
<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"
|
||||
} }";
|
||||
inputs = map genodeMake [ "app/ping" ] ++ (map genodeDepot [
|
||||
"ram_block"
|
||||
"nic_bridge"
|
||||
"nic_loopback"
|
||||
"sequence"
|
||||
"vfs_block"
|
||||
"vfs_import"
|
||||
]);
|
||||
};
|
||||
}
|
||||
|
|
|
@ -1,4 +1,3 @@
|
|||
|
||||
let Genode = env:DHALL_GENODE
|
||||
|
||||
let Init = Genode.Init
|
||||
|
|
|
@ -1,4 +1,3 @@
|
|||
|
||||
let Genode = env:DHALL_GENODE
|
||||
|
||||
let Init = Genode.Init
|
||||
|
|
|
@ -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" }
|
||||
)
|
||||
|
||||
|
|
|
@ -1,4 +1,3 @@
|
|||
|
||||
let Test = ../test.dhall ? env:DHALL_GENODE_TEST
|
||||
|
||||
let Child = Test.Genode.Init.Child
|
||||
|
|
|
@ -1,4 +1,3 @@
|
|||
|
||||
let Genode = env:DHALL_GENODE
|
||||
|
||||
let Init = Genode.Init
|
||||
|
|
|
@ -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"
|
||||
|
|
|
@ -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
|
||||
|
|
|
@ -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" }
|
||||
}
|
||||
}
|
||||
|
|
|
@ -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 } }
|
||||
|
|
|
@ -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"
|
||||
}
|
||||
]
|
||||
}
|
||||
|
|
Chargement…
Référencer dans un nouveau ticket