Rename dhall-genode to dhall-sigil
This commit is contained in:
parent
88668e8dd5
commit
94c73172cb
|
@ -1,11 +1,11 @@
|
|||
|
||||
let Genode = env:DHALL_GENODE
|
||||
let Sigil = env:DHALL_SIGIL
|
||||
|
||||
let Prelude = Genode.Prelude
|
||||
let Prelude = Sigil.Prelude
|
||||
|
||||
let XML = Prelude.XML
|
||||
|
||||
let Init = Genode.Init
|
||||
let Init = Sigil.Init
|
||||
|
||||
let Child = Init.Child
|
||||
|
||||
|
@ -69,7 +69,7 @@ let drivers =
|
|||
, priority = 1
|
||||
, resources = Resources::{
|
||||
, caps = 350
|
||||
, ram = Genode.units.MiB 4
|
||||
, ram = Sigil.units.MiB 4
|
||||
}
|
||||
, romReports = [ label "acpi" ]
|
||||
, routes =
|
||||
|
@ -86,7 +86,7 @@ let drivers =
|
|||
, binary = "platform_drv"
|
||||
, resources = Resources::{
|
||||
, caps = 400
|
||||
, ram = Genode.units.MiB 4
|
||||
, ram = Sigil.units.MiB 4
|
||||
, constrainPhys = True
|
||||
}
|
||||
, provides = [ "Acpi", "Platform" ]
|
||||
|
@ -149,7 +149,7 @@ let drivers =
|
|||
, priority = 1
|
||||
, resources = Resources::{
|
||||
, caps = 200
|
||||
, ram = Genode.units.MiB 16
|
||||
, ram = Sigil.units.MiB 16
|
||||
}
|
||||
, provides = [ "Input", "Usb" ]
|
||||
, reportRoms = [ relabel "config" "usb_drv.config" ]
|
||||
|
@ -174,7 +174,7 @@ let drivers =
|
|||
Child.Attributes::{
|
||||
, binary = "event_filter"
|
||||
, priority = 1
|
||||
, resources = Resources::{ ram = Genode.units.MiB 2 }
|
||||
, resources = Resources::{ ram = Sigil.units.MiB 2 }
|
||||
, provides = [ "Input" ]
|
||||
, routes =
|
||||
[ ServiceRoute.parentLabel
|
||||
|
@ -226,7 +226,7 @@ let drivers =
|
|||
, priority = 1
|
||||
, resources = Resources::{
|
||||
, caps = 1400
|
||||
, ram = Genode.units.MiB 64
|
||||
, ram = Sigil.units.MiB 64
|
||||
}
|
||||
, provides = [ "Framebuffer", "Block" ]
|
||||
, romReports = [ label "ahci_ports", label "nvme_ns" ]
|
||||
|
|
|
@ -1,15 +1,15 @@
|
|||
|
||||
let Genode = env:DHALL_GENODE
|
||||
let Sigil = env:DHALL_SIGIL
|
||||
|
||||
let Prelude = Genode.Prelude
|
||||
let Prelude = Sigil.Prelude
|
||||
|
||||
let BootModules = Genode.BootModules
|
||||
let BootModules = Sigil.BootModules
|
||||
|
||||
let RomEntry = Prelude.Map.Entry Text BootModules.ROM.Type
|
||||
|
||||
let compile =
|
||||
λ(addressType : Text)
|
||||
→ λ(boot : Genode.Boot.Type)
|
||||
→ λ(boot : Sigil.Boot.Type)
|
||||
→ λ(out : Text)
|
||||
→ let NaturalIndex = { index : Natural, value : Text }
|
||||
|
||||
|
@ -111,10 +111,10 @@ let compile =
|
|||
_boot_modules_binaries_end:
|
||||
''
|
||||
|
||||
in { config = Genode.Init.render boot.config
|
||||
in { config = Sigil.Init.render boot.config
|
||||
, modules_asm = asm
|
||||
, stats =
|
||||
let sum = Genode.Init.resources boot.config
|
||||
let sum = Sigil.Init.resources boot.config
|
||||
|
||||
in "RAM=${Prelude.Natural.show sum.ram}"
|
||||
}
|
||||
|
|
|
@ -3,13 +3,13 @@
|
|||
let
|
||||
inherit (pkgs) buildPackages;
|
||||
localPackages = pkgs.buildPackages.buildPackages;
|
||||
inherit (pkgs.genodePackages) dhallGenode genodeSources;
|
||||
inherit (pkgs.genodePackages) dhallSigil genodeSources;
|
||||
|
||||
dhallCachePrelude = ''
|
||||
export XDG_CACHE_HOME=$NIX_BUILD_TOP
|
||||
export DHALL_GENODE="${dhallGenode}/binary.dhall";
|
||||
export DHALL_SIGIL="${dhallSigil}/binary.dhall";
|
||||
${buildPackages.xorg.lndir}/bin/lndir -silent \
|
||||
${dhallGenode}/.cache \
|
||||
${dhallSigil}/.cache \
|
||||
$XDG_CACHE_HOME
|
||||
'';
|
||||
|
||||
|
@ -50,11 +50,11 @@ in rec {
|
|||
bootstrapDhall =
|
||||
# snippet used to nest core.elf into image.elf
|
||||
builtins.toFile "boostrap.dall" ''
|
||||
let Genode = env:DHALL_GENODE
|
||||
let Sigil = env:DHALL_SIGIL
|
||||
|
||||
in { config = Genode.Init.default
|
||||
in { config = Sigil.Init.default
|
||||
, rom =
|
||||
Genode.BootModules.toRomPaths
|
||||
Sigil.BootModules.toRomPaths
|
||||
[ { mapKey = "core.elf", mapValue = "./core.elf" } ]
|
||||
}
|
||||
'';
|
||||
|
|
|
@ -1,11 +1,11 @@
|
|||
|
||||
let Genode = env:DHALL_GENODE
|
||||
let Sigil = env:DHALL_SIGIL
|
||||
|
||||
let Prelude = Genode.Prelude
|
||||
let Prelude = Sigil.Prelude
|
||||
|
||||
let Args = { config : Genode.Init.Type, rom : Genode.BootModules.Type } : Type
|
||||
let Args = { config : Sigil.Init.Type, rom : Sigil.BootModules.Type } : Type
|
||||
|
||||
let RomEntry = Prelude.Map.Entry Text Genode.BootModules.ROM.Type
|
||||
let RomEntry = Prelude.Map.Entry Text Sigil.BootModules.ROM.Type
|
||||
|
||||
let addLine =
|
||||
λ(e : RomEntry)
|
||||
|
@ -28,7 +28,7 @@ let addLine =
|
|||
|
||||
in λ(args : Args)
|
||||
→ λ(out : Text)
|
||||
→ { config = Genode.Init.render args.config
|
||||
→ { config = Sigil.Init.render args.config
|
||||
, script =
|
||||
Prelude.List.fold
|
||||
RomEntry
|
||||
|
|
|
@ -11,9 +11,9 @@ let
|
|||
nativeBuildInputs = [ dhall-json ];
|
||||
} ''
|
||||
dhall-to-json << EOF > $out
|
||||
let Genode = env:DHALL_GENODE
|
||||
let Sigil = env:DHALL_SIGIL
|
||||
let init = ${initConfig}
|
||||
in Genode.Init.Child.binaries (Genode.Init.toChild init Genode.Init.Attributes::{=})
|
||||
in Sigil.Init.Child.binaries (Sigil.Init.toChild init Sigil.Init.Attributes::{=})
|
||||
EOF
|
||||
'';
|
||||
binariesJSON = readFile (toString extractDrv);
|
||||
|
@ -52,9 +52,9 @@ let
|
|||
lib.mapAttrsToList (name: value: { inherit name value; }) extraRoms;
|
||||
|
||||
in writeText "boot.dhall" ''
|
||||
let Genode = env:DHALL_GENODE
|
||||
let Sigil = env:DHALL_SIGIL
|
||||
in { config = ${initConfig}
|
||||
, rom = Genode.BootModules.toRomPaths ([
|
||||
, rom = Sigil.BootModules.toRomPaths ([
|
||||
${
|
||||
toString (map ({ name, value }: ''
|
||||
, { mapKey = "${name}", mapValue = "${value}" }
|
||||
|
|
|
@ -1,6 +1,6 @@
|
|||
let Genode = env:DHALL_GENODE
|
||||
let Sigil = env:DHALL_SIGIL
|
||||
|
||||
let Init = Genode.Init
|
||||
let Init = Sigil.Init
|
||||
|
||||
let Child = Init.Child
|
||||
|
||||
|
@ -8,9 +8,9 @@ in λ(binary : Text) →
|
|||
Child.flat
|
||||
Child.Attributes::{
|
||||
, binary
|
||||
, resources = Genode.Init.Resources::{
|
||||
, resources = Sigil.Init.Resources::{
|
||||
, caps = 256
|
||||
, ram = Genode.units.MiB 32
|
||||
, ram = Sigil.units.MiB 32
|
||||
}
|
||||
, config = Init.Config::{
|
||||
, policies =
|
||||
|
|
|
@ -9,13 +9,13 @@
|
|||
package = pkgs.genodePackages.vfs;
|
||||
extraErisInputs = [ vfsRump ];
|
||||
configFile = pkgs.writeText "rom-vfs.dhall" ''
|
||||
let Genode = env:DHALL_GENODE
|
||||
let Sigil = env:DHALL_SIGIL
|
||||
|
||||
let VFS = Genode.VFS
|
||||
let VFS = Sigil.VFS
|
||||
|
||||
in ${./rom-vfs.dhall}
|
||||
${../partition-type}
|
||||
Genode.Init.Resources::{ caps = 256, ram = Genode.units.MiB 16 }
|
||||
Sigil.Init.Resources::{ caps = 256, ram = Sigil.units.MiB 16 }
|
||||
( VFS.vfs
|
||||
[ VFS.leafAttrs
|
||||
"plugin"
|
||||
|
|
|
@ -7,12 +7,12 @@
|
|||
genode.core.children.eris_vfs = {
|
||||
package = pkgs.genodePackages.vfs;
|
||||
configFile = pkgs.writeText "rom-vfs.dhall" ''
|
||||
let Genode = env:DHALL_GENODE
|
||||
let Sigil = env:DHALL_SIGIL
|
||||
|
||||
let VFS = Genode.VFS
|
||||
let VFS = Sigil.VFS
|
||||
|
||||
in ${./rom-vfs.dhall}
|
||||
Genode.Init.Resources::{=}
|
||||
Sigil.Init.Resources::{=}
|
||||
( VFS.vfs
|
||||
[ VFS.leafAttrs
|
||||
"tar"
|
||||
|
|
|
@ -1,12 +1,12 @@
|
|||
let Genode = env:DHALL_GENODE
|
||||
let Sigil = env:DHALL_SIGIL
|
||||
|
||||
let Init = Genode.Init
|
||||
let Init = Sigil.Init
|
||||
|
||||
let Child = Init.Child
|
||||
|
||||
in λ(partitionType : Text) →
|
||||
λ(resources : Init.Resources.Type) →
|
||||
λ(vfsConfig : Genode.Prelude.XML.Type) →
|
||||
λ(vfsConfig : Sigil.Prelude.XML.Type) →
|
||||
λ(binary : Text) →
|
||||
Child.flat
|
||||
Child.Attributes::{
|
||||
|
|
|
@ -88,10 +88,10 @@ let
|
|||
{ service =
|
||||
{ name = "ROM"
|
||||
, label =
|
||||
Genode.Init.LabelSelector.Type.Partial
|
||||
Sigil.Init.LabelSelector.Type.Partial
|
||||
{ prefix = Some "nixos -> ${name}", suffix = Some "${suffix}" }
|
||||
}
|
||||
, route = Genode.Init.Route.parent (Some "${suffix}")
|
||||
, route = Sigil.Init.Route.parent (Some "${suffix}")
|
||||
}
|
||||
'') value.coreROMs) config.genode.init.children));
|
||||
|
||||
|
@ -104,16 +104,16 @@ let
|
|||
in with coreErisCaps;
|
||||
localPackages.runCommand "boot.dhall" { } ''
|
||||
cat > $out << EOF
|
||||
let Genode = env:DHALL_GENODE in
|
||||
let VFS = Genode.VFS
|
||||
let XML = Genode.Prelude.XML
|
||||
let Sigil = env:DHALL_SIGIL in
|
||||
let VFS = Sigil.VFS
|
||||
let XML = Sigil.Prelude.XML
|
||||
in
|
||||
${./store-wrapper.dhall}
|
||||
{ binaries = { rtc_drv = "${rtc_drv.cap}" }
|
||||
, extraCoreChildren = ${extraCoreChildren}
|
||||
, subinit = ${config.genode.init.configFile}
|
||||
, storeSize = $(stat --format '%s' ${tarball})
|
||||
, routes = [${extraRoutes} ] : List Genode.Init.ServiceRoute.Type
|
||||
, routes = [${extraRoutes} ] : List Sigil.Init.ServiceRoute.Type
|
||||
, bootManifest = ${manifest}
|
||||
}
|
||||
EOF
|
||||
|
@ -149,7 +149,7 @@ in {
|
|||
Set of children at the lowest init level, these children must not
|
||||
have any dependency on a Nix store.
|
||||
Configuration format is a Dhall configuration of type
|
||||
<literal>Genode.Init.Child.Type</literal>.
|
||||
<literal>Sigil.Init.Child.Type</literal>.
|
||||
See https://git.sr.ht/~ehmry/dhall-genode/tree/master/Init/Child/Type
|
||||
'';
|
||||
};
|
||||
|
@ -260,9 +260,9 @@ in {
|
|||
genode.core.children.jitter_sponge = {
|
||||
package = pkgs.genodePackages.jitter_sponge;
|
||||
configFile = pkgs.writeText "jitter_sponge.dhall" ''
|
||||
let Genode = env:DHALL_GENODE
|
||||
let Sigil = env:DHALL_SIGIL
|
||||
|
||||
let Init = Genode.Init
|
||||
let Init = Sigil.Init
|
||||
|
||||
in λ(binary : Text) →
|
||||
Init.Child.flat
|
||||
|
@ -294,13 +294,13 @@ in {
|
|||
|
||||
system.build.initXml = pkgs.buildPackages.runCommand "init.xml" {
|
||||
nativeBuildInputs = with pkgs.buildPackages; [ dhall xorg.lndir libxml2 ];
|
||||
DHALL_GENODE = "${pkgs.genodePackages.dhallGenode}/binary.dhall";
|
||||
DHALL_SIGIL = "${pkgs.genodePackages.dhallSigil}/binary.dhall";
|
||||
} ''
|
||||
export XDG_CACHE_HOME=$NIX_BUILD_TOP
|
||||
lndir -silent \
|
||||
${pkgs.genodePackages.dhallGenode}/.cache \
|
||||
${pkgs.genodePackages.dhallSigil}/.cache \
|
||||
$XDG_CACHE_HOME
|
||||
dhall text <<< "(env:DHALL_GENODE).Init.render (${bootConfigFile}).config" > $out
|
||||
dhall text <<< "(env:DHALL_SIGIL).Init.render (${bootConfigFile}).config" > $out
|
||||
xmllint --noout $out
|
||||
'';
|
||||
|
||||
|
|
|
@ -25,17 +25,17 @@ in {
|
|||
"Dhall configuration of this init instance before merging children.";
|
||||
type = types.str;
|
||||
default = ''
|
||||
let Genode = env:DHALL_GENODE
|
||||
let Sigil = env:DHALL_SIGIL
|
||||
|
||||
in Genode.Init::{
|
||||
in Sigil.Init::{
|
||||
, routes =
|
||||
[ Genode.Init.ServiceRoute.parent "File_system"
|
||||
, Genode.Init.ServiceRoute.parent "IO_MEM"
|
||||
, Genode.Init.ServiceRoute.parent "IO_PORT"
|
||||
, Genode.Init.ServiceRoute.parent "IRQ"
|
||||
, Genode.Init.ServiceRoute.parent "Rtc"
|
||||
, Genode.Init.ServiceRoute.parent "Terminal"
|
||||
, Genode.Init.ServiceRoute.parent "Timer"
|
||||
[ Sigil.Init.ServiceRoute.parent "File_system"
|
||||
, Sigil.Init.ServiceRoute.parent "IO_MEM"
|
||||
, Sigil.Init.ServiceRoute.parent "IO_PORT"
|
||||
, Sigil.Init.ServiceRoute.parent "IRQ"
|
||||
, Sigil.Init.ServiceRoute.parent "Rtc"
|
||||
, Sigil.Init.ServiceRoute.parent "Terminal"
|
||||
, Sigil.Init.ServiceRoute.parent "Timer"
|
||||
]
|
||||
}
|
||||
'';
|
||||
|
@ -100,9 +100,9 @@ in {
|
|||
children = mapAttrs (name: value: {
|
||||
inherit (value) extraErisInputs extraInputs;
|
||||
configFile = pkgs.writeText "${name}.child.dhall" ''
|
||||
let Genode = env:DHALL_GENODE
|
||||
let Sigil = env:DHALL_SIGIL
|
||||
|
||||
in Genode.Init.toChild ${value.configFile} Genode.Init.Attributes.default
|
||||
in Sigil.Init.toChild ${value.configFile} Sigil.Init.Attributes.default
|
||||
'';
|
||||
}) cfg.subinits;
|
||||
|
||||
|
@ -116,14 +116,16 @@ in {
|
|||
(map (label: ''
|
||||
, { service =
|
||||
{ name = "Nic"
|
||||
, label = Genode.Init.LabelSelector.prefix "${child}"
|
||||
, label = Sigil.Init.LabelSelector.prefix "${child}"
|
||||
}
|
||||
, route = Genode.Init.Route.parent (None Text)
|
||||
, route = Sigil.Init.Route.parent (None Text)
|
||||
}
|
||||
'') value.routeToNics)) config.genode.init.children;
|
||||
|
||||
in pkgs.writeText "init.dhall" ''
|
||||
let Genode = env:DHALL_GENODE
|
||||
let Sigil = env:DHALL_SIGIL
|
||||
|
||||
let Init = Sigil.Init
|
||||
|
||||
let baseConfig = ${cfg.baseConfig}
|
||||
|
||||
|
@ -131,11 +133,11 @@ in {
|
|||
, verbose = ${if config.genode.init.verbose then "True" else "False"}
|
||||
, children = baseConfig.children # ([ ${
|
||||
toString children
|
||||
} ] : Genode.Init.Children.Type)
|
||||
} ] : Init.Children.Type)
|
||||
, routes = baseConfig.routes # ([${
|
||||
toString nicRoutes
|
||||
}] : List Genode.Init.ServiceRoute.Type)
|
||||
} : Genode.Init.Type
|
||||
}] : List Init.ServiceRoute.Type)
|
||||
} : Init.Type
|
||||
'';
|
||||
|
||||
romModules = with builtins;
|
||||
|
|
|
@ -1,12 +1,12 @@
|
|||
let Genode = env:DHALL_GENODE
|
||||
let Sigil = env:DHALL_SIGIL
|
||||
|
||||
let Prelude = Genode.Prelude
|
||||
let Prelude = Sigil.Prelude
|
||||
|
||||
let VFS = Genode.VFS
|
||||
let VFS = Sigil.VFS
|
||||
|
||||
let XML = Prelude.XML
|
||||
|
||||
let Init = Genode.Init
|
||||
let Init = Sigil.Init
|
||||
|
||||
let Child = Init.Child
|
||||
|
||||
|
@ -30,7 +30,7 @@ in λ(params : { fontFile : Text }) →
|
|||
Child.Attributes::{
|
||||
, binary = "${pkgs.genodePackages.gui_fb}/bin/gui_fb"
|
||||
, exitPropagate = True
|
||||
, resources = Resources::{ ram = Genode.units.MiB 8 }
|
||||
, resources = Resources::{ ram = Sigil.units.MiB 8 }
|
||||
, config = Init.Config::{
|
||||
, attributes = toMap
|
||||
{ origin = "top_right"
|
||||
|
@ -58,7 +58,7 @@ in λ(params : { fontFile : Text }) →
|
|||
, exitPropagate = True
|
||||
, resources = Resources::{
|
||||
, caps = 256
|
||||
, ram = Genode.units.MiB 4
|
||||
, ram = Sigil.units.MiB 4
|
||||
}
|
||||
, routes =
|
||||
[ ServiceRoute.child "Framebuffer" "gui_fb"
|
||||
|
|
|
@ -18,7 +18,7 @@ in {
|
|||
genode.core.children.nitpicker = mkIf cfg.enable {
|
||||
binary = pkgs.genodePackages.nitpicker;
|
||||
configFile = pkgs.writeText "nitpicker.dhall" ''
|
||||
let Init = (env:DHALL_GENODE).Init
|
||||
let Init = (env:DHALL_SIGIL).Init
|
||||
|
||||
in ${./nitpicker.dhall}
|
||||
{ policies =
|
||||
|
|
|
@ -1,15 +1,15 @@
|
|||
let Genode = env:DHALL_GENODE
|
||||
let Sigil = env:DHALL_SIGIL
|
||||
|
||||
let XML = Genode.Prelude.XML
|
||||
let XML = Sigil.Prelude.XML
|
||||
|
||||
let Init = Genode.Init
|
||||
let Init = Sigil.Init
|
||||
|
||||
in λ(params : { policies : List Init.Config.Policy.Type }) →
|
||||
λ(binary : Text) →
|
||||
Init.Child.flat
|
||||
Init.Child.Attributes::{
|
||||
, binary
|
||||
, resources = Init.Resources::{ ram = Genode.units.MiB 4 }
|
||||
, resources = Init.Resources::{ ram = Sigil.units.MiB 4 }
|
||||
, config = Init.Config::{
|
||||
, attributes = toMap
|
||||
{ note = "Nitpicker config is extremely fragile!" }
|
||||
|
|
|
@ -13,13 +13,13 @@ with lib;
|
|||
|
||||
hardware.genode.platform.policies = lib.optional cfg.enable
|
||||
(builtins.toFile ("ahci.platform-policy.dhall") ''
|
||||
let Genode = env:DHALL_GENODE
|
||||
let Sigil = env:DHALL_SIGIL
|
||||
|
||||
in Genode.Init.Config.Policy::{
|
||||
in Sigil.Init.Config.Policy::{
|
||||
, service = "Platform"
|
||||
, label = Genode.Init.LabelSelector.prefix "drivers -> ahci"
|
||||
, label = Sigil.Init.LabelSelector.prefix "drivers -> ahci"
|
||||
, content =
|
||||
[ Genode.Prelude.XML.leaf
|
||||
[ Sigil.Prelude.XML.leaf
|
||||
{ name = "pci", attributes = toMap { class = "AHCI" } }
|
||||
]
|
||||
}
|
||||
|
|
|
@ -62,9 +62,9 @@ with lib;
|
|||
genode.core.children.acpi_drv = {
|
||||
package = pkgs.genodePackages.acpi_drv;
|
||||
configFile = pkgs.writeText "acpi_drv.dhall" ''
|
||||
let Genode = env:DHALL_GENODE
|
||||
let Sigil = env:DHALL_SIGIL
|
||||
|
||||
let Init = Genode.Init
|
||||
let Init = Sigil.Init
|
||||
|
||||
let label = λ(_ : Text) → { local = _, route = _ }
|
||||
|
||||
|
@ -74,7 +74,7 @@ with lib;
|
|||
, binary
|
||||
, resources = Init.Resources::{
|
||||
, caps = 400
|
||||
, ram = Genode.units.MiB 4
|
||||
, ram = Sigil.units.MiB 4
|
||||
, constrainPhys = True
|
||||
}
|
||||
, romReports = [ label "acpi", label "smbios_table" ]
|
||||
|
@ -93,16 +93,16 @@ with lib;
|
|||
policies =
|
||||
map (policy: ", ${policy}") config.hardware.genode.platform.policies;
|
||||
in pkgs.writeText "platform_drv.dhall" ''
|
||||
let Genode = env:DHALL_GENODE
|
||||
let Sigil = env:DHALL_SIGIL
|
||||
|
||||
let Init = Genode.Init
|
||||
let Init = Sigil.Init
|
||||
|
||||
in λ(binary : Text) -> Init.Child.flat
|
||||
Init.Child.Attributes::{
|
||||
, binary
|
||||
, resources = Init.Resources::{
|
||||
, caps = 800
|
||||
, ram = Genode.units.MiB 4
|
||||
, ram = Sigil.units.MiB 4
|
||||
, constrainPhys = True
|
||||
}
|
||||
, reportRoms = let label = "acpi" in [ { local = label, route = label } ]
|
||||
|
@ -124,15 +124,15 @@ with lib;
|
|||
genode.core.children.device_manager = {
|
||||
package = pkgs.genodePackages.device_manager;
|
||||
configFile = pkgs.writeText "device_manager.dhall" ''
|
||||
let Genode = env:DHALL_GENODE
|
||||
let Sigil = env:DHALL_SIGIL
|
||||
|
||||
in λ(cap : Text) →
|
||||
Genode.Init.Child.flat
|
||||
Sigil.Init.Child.flat
|
||||
( (${managerConfig}).device_manager
|
||||
⫽ { binary = cap
|
||||
, resources = Genode.Init.Resources::{
|
||||
, resources = Sigil.Init.Resources::{
|
||||
, caps = 256
|
||||
, ram = Genode.units.MiB 8
|
||||
, ram = Sigil.units.MiB 8
|
||||
}
|
||||
}
|
||||
)
|
||||
|
@ -141,24 +141,24 @@ with lib;
|
|||
|
||||
genode.core.children.drivers = {
|
||||
package = pkgs.genodePackages.init;
|
||||
extraErisInputs = [ partBlockEris ] ++
|
||||
lib.optional config.hardware.genode.ahci.enable ahciEris
|
||||
extraErisInputs = [ partBlockEris ]
|
||||
++ lib.optional config.hardware.genode.ahci.enable ahciEris
|
||||
++ lib.optionals config.hardware.genode.usb.enable
|
||||
(builtins.attrValues usbEris);
|
||||
configFile = pkgs.writeText "drivers.dhall" ''
|
||||
let Genode = env:DHALL_GENODE
|
||||
let Sigil = env:DHALL_SIGIL
|
||||
|
||||
let childAttrs = (${managerConfig}).drivers
|
||||
|
||||
in λ(cap : Text) →
|
||||
Genode.Init.Child.flat
|
||||
Sigil.Init.Child.flat
|
||||
( childAttrs
|
||||
⫽ { binary = cap
|
||||
, config =
|
||||
childAttrs.config
|
||||
with policies =
|
||||
[ Genode.Init.Config.Policy::{
|
||||
, label = Genode.Init.LabelSelector.none
|
||||
[ Sigil.Init.Config.Policy::{
|
||||
, label = Sigil.Init.LabelSelector.none
|
||||
, service = "Block"
|
||||
}
|
||||
]
|
||||
|
|
|
@ -22,15 +22,15 @@ with lib;
|
|||
vesa = vesa_drv;
|
||||
}.${config.hardware.genode.framebuffer.driver};
|
||||
in builtins.toFile "fb_drv.dhall" ''
|
||||
let Genode = env:DHALL_GENODE
|
||||
let Sigil = env:DHALL_SIGIL
|
||||
|
||||
let Init = Genode.Init
|
||||
let Init = Sigil.Init
|
||||
|
||||
in λ(binary : Text) →
|
||||
Init.Child.flat
|
||||
Init.Child.Attributes::{
|
||||
, binary
|
||||
, resources = Init.Resources::{ caps = 256, ram = Genode.units.MiB 32 }
|
||||
, resources = Init.Resources::{ caps = 256, ram = Sigil.units.MiB 32 }
|
||||
, routes =
|
||||
[ Init.ServiceRoute.parent "IO_MEM"
|
||||
, Init.ServiceRoute.parent "IO_PORT"
|
||||
|
|
|
@ -30,15 +30,15 @@ with lib;
|
|||
virtio = virtio_nic_drv;
|
||||
}.${driver};
|
||||
configFile = pkgs.writeText "${name}.dhall" ''
|
||||
let Genode = env:DHALL_GENODE
|
||||
let Sigil = env:DHALL_SIGIL
|
||||
|
||||
let Init = Genode.Init
|
||||
let Init = Sigil.Init
|
||||
|
||||
in λ(binary : Text) →
|
||||
Init.Child.flat
|
||||
Init.Child.Attributes::{
|
||||
, binary
|
||||
, resources = Init.Resources::{ caps = 128, ram = Genode.units.MiB 4 }
|
||||
, resources = Init.Resources::{ caps = 128, ram = Sigil.units.MiB 4 }
|
||||
, routes = [ Init.ServiceRoute.parent "IO_MEM" ]
|
||||
, config = Init.Config::{
|
||||
, attributes = toMap { verbose = "${
|
||||
|
@ -58,15 +58,15 @@ with lib;
|
|||
mkUplinkDump = { name, childName, policyPrefix }: {
|
||||
package = pkgs.genodePackages.nic_dump;
|
||||
configFile = pkgs.writeText "${name}.dhall" ''
|
||||
let Genode = env:DHALL_GENODE
|
||||
let Sigil = env:DHALL_SIGIL
|
||||
|
||||
let Init = Genode.Init
|
||||
let Init = Sigil.Init
|
||||
|
||||
in λ(binary : Text) →
|
||||
Init.Child.flat
|
||||
Init.Child.Attributes::{
|
||||
, binary
|
||||
, resources = Init.Resources::{ caps = 128, ram = Genode.units.MiB 6 }
|
||||
, resources = Init.Resources::{ caps = 128, ram = Sigil.units.MiB 6 }
|
||||
, config = Init.Config::{
|
||||
, attributes = toMap { downlink = "${childName}", uplink = "driver" }
|
||||
, policies =
|
||||
|
|
|
@ -52,13 +52,13 @@ with lib;
|
|||
|
||||
hardware.genode.platform.policies = lib.optional cfg.enable
|
||||
(builtins.toFile ("usb.platform-policy.dhall") ''
|
||||
let Genode = env:DHALL_GENODE
|
||||
let Sigil = env:DHALL_SIGIL
|
||||
|
||||
in Genode.Init.Config.Policy::{
|
||||
in Sigil.Init.Config.Policy::{
|
||||
, service = "Platform"
|
||||
, label = Genode.Init.LabelSelector.prefix "drivers -> usb"
|
||||
, label = Sigil.Init.LabelSelector.prefix "drivers -> usb"
|
||||
, content =
|
||||
[ Genode.Prelude.XML.leaf
|
||||
[ Sigil.Prelude.XML.leaf
|
||||
{ name = "pci", attributes = toMap { class = "USB" } }
|
||||
]
|
||||
}
|
||||
|
|
|
@ -11,14 +11,14 @@ mkOption {
|
|||
platformPolicy = mkOption {
|
||||
type = types.path;
|
||||
default = builtins.toFile "driver.policy.dhall" ''
|
||||
let Genode = env:DHALL_GENODE
|
||||
let Sigil = env:DHALL_SIGIL
|
||||
|
||||
in λ(driverName : Text) →
|
||||
Genode.Init.Config.Policy::{
|
||||
Sigil.Init.Config.Policy::{
|
||||
, service = "Platform"
|
||||
, label = Genode.Init.LabelSelector.prefix driverName
|
||||
, label = Sigil.Init.LabelSelector.prefix driverName
|
||||
, content =
|
||||
[ Genode.Prelude.XML.leaf
|
||||
[ Sigil.Prelude.XML.leaf
|
||||
{ name = "pci", attributes = toMap { class = "ETHERNET" } }
|
||||
]
|
||||
}
|
||||
|
|
|
@ -1,8 +1,8 @@
|
|||
let Genode = env:DHALL_GENODE
|
||||
let Sigil = env:DHALL_SIGIL
|
||||
|
||||
let Prelude = Genode.Prelude
|
||||
let Prelude = Sigil.Prelude
|
||||
|
||||
let Init = Genode.Init
|
||||
let Init = Sigil.Init
|
||||
|
||||
let Child = Init.Child
|
||||
|
||||
|
@ -21,7 +21,7 @@ in λ ( params
|
|||
, bootManifest : Manifest/Type
|
||||
}
|
||||
) →
|
||||
Genode.Boot::{
|
||||
Sigil.Boot::{
|
||||
, config = Init::{
|
||||
, routes = params.routes
|
||||
, children =
|
||||
|
@ -67,7 +67,7 @@ in λ ( params
|
|||
Init.Attributes::{
|
||||
, exitPropagate = True
|
||||
, resources = Init.Resources::{
|
||||
, ram = Genode.units.MiB 4
|
||||
, ram = Sigil.units.MiB 4
|
||||
}
|
||||
, routes =
|
||||
let parentROMs =
|
||||
|
@ -113,7 +113,7 @@ in λ ( params
|
|||
]
|
||||
}
|
||||
, rom =
|
||||
Genode.BootModules.toRomPaths
|
||||
Sigil.BootModules.toRomPaths
|
||||
( Prelude.List.concat
|
||||
(Prelude.Map.Entry Text Text)
|
||||
( Prelude.Map.values
|
||||
|
|
|
@ -1,14 +1,14 @@
|
|||
let Genode = env:DHALL_GENODE
|
||||
let Sigil = env:DHALL_SIGIL
|
||||
|
||||
let Prelude = Genode.Prelude
|
||||
let Prelude = Sigil.Prelude
|
||||
|
||||
let XML = Prelude.XML
|
||||
|
||||
let Libc = Genode.Libc
|
||||
let Libc = Sigil.Libc
|
||||
|
||||
let VFS = Genode.VFS
|
||||
let VFS = Sigil.VFS
|
||||
|
||||
let Init = Genode.Init
|
||||
let Init = Sigil.Init
|
||||
|
||||
let Child = Init.Child
|
||||
|
||||
|
@ -48,9 +48,9 @@ in λ ( params
|
|||
Child.Attributes::{
|
||||
, binary = "vfs"
|
||||
, exitPropagate = True
|
||||
, resources = Genode.Init.Resources::{
|
||||
, resources = Sigil.Init.Resources::{
|
||||
, caps = 256
|
||||
, ram = Genode.units.MiB 8
|
||||
, ram = Sigil.units.MiB 8
|
||||
}
|
||||
, config = Init.Config::{
|
||||
, content =
|
||||
|
@ -128,8 +128,8 @@ in λ ( params
|
|||
Child.flat
|
||||
Child.Attributes::{
|
||||
, binary = "cached_fs_rom"
|
||||
, resources = Genode.Init.Resources::{
|
||||
, ram = Genode.units.MiB 32
|
||||
, resources = Sigil.Init.Resources::{
|
||||
, ram = Sigil.units.MiB 32
|
||||
}
|
||||
, config = Init.Config::{
|
||||
, policies =
|
||||
|
@ -147,9 +147,9 @@ in λ ( params
|
|||
Child.Attributes::{
|
||||
, binary = params.binary
|
||||
, exitPropagate = True
|
||||
, resources = Genode.Init.Resources::{
|
||||
, resources = Sigil.Init.Resources::{
|
||||
, caps = 256
|
||||
, ram = Genode.units.MiB params.ramQuotaMiB
|
||||
, ram = Sigil.units.MiB params.ramQuotaMiB
|
||||
}
|
||||
, config =
|
||||
( Libc.toConfig
|
||||
|
|
|
@ -86,7 +86,7 @@ with lib; {
|
|||
, coreutils = "${pkgs.coreutils}"
|
||||
, extraVfs = ${
|
||||
if service.genode.extraVfs == null then
|
||||
"[] : List (env:DHALL_GENODE).Prelude.XML.Type"
|
||||
"[] : List (env:DHALL_SIGIL).Prelude.XML.Type"
|
||||
else
|
||||
service.genode.extraVfs
|
||||
}
|
||||
|
|
|
@ -31,7 +31,7 @@ in upstream // {
|
|||
|
||||
device_manager = callPackage ./device_manager { };
|
||||
|
||||
dhallGenode = dhallPackages.genode;
|
||||
dhallSigil = dhallPackages.sigil;
|
||||
|
||||
nic_bus = callPackage ./nic_bus { };
|
||||
|
||||
|
|
|
@ -1,5 +1,5 @@
|
|||
{ callPackage }:
|
||||
|
||||
{
|
||||
genode = callPackage ./genode.nix { };
|
||||
sigil = callPackage ./sigil.nix { };
|
||||
}
|
||||
|
|
|
@ -1,11 +0,0 @@
|
|||
{ lib, stdenv, fetchgit, dhallPackages }:
|
||||
|
||||
dhallPackages.buildDhallDirectoryPackage {
|
||||
name = "dhall-genode";
|
||||
src = fetchgit {
|
||||
url = "https://git.sr.ht/~ehmry/dhall-genode";
|
||||
rev = "0f782d2c5834c10330fcecd3dbd7c25c19e27ea1";
|
||||
sha256 = "1w53w04pjb11d6348gr6ggnc9jdk5nqpi0171rpmba4lnrvrgvm7";
|
||||
};
|
||||
dependencies = [ dhallPackages.Prelude ];
|
||||
}
|
|
@ -0,0 +1,11 @@
|
|||
{ lib, stdenv, fetchgit, dhallPackages }:
|
||||
|
||||
dhallPackages.buildDhallDirectoryPackage {
|
||||
name = "dhall-sigil";
|
||||
src = fetchgit {
|
||||
url = "https://git.sr.ht/~ehmry/dhall-sigil";
|
||||
rev = "e5a9bc19b23609b76512bc82173487671bd843db";
|
||||
sha256 = "0inr4a0dn0201bcklj2x9inshqcmsn26fbh9wnyv7wac384fj47k";
|
||||
};
|
||||
dependencies = [ dhallPackages.Prelude ];
|
||||
}
|
|
@ -1,12 +1,12 @@
|
|||
let Genode = env:DHALL_GENODE
|
||||
let Sigil = env:DHALL_SIGIL
|
||||
|
||||
let Prelude = Genode.Prelude
|
||||
let Prelude = Sigil.Prelude
|
||||
|
||||
let Libc = Genode.Libc
|
||||
let Libc = Sigil.Libc
|
||||
|
||||
let VFS = Genode.VFS
|
||||
let VFS = Sigil.VFS
|
||||
|
||||
let Init = Genode.Init
|
||||
let Init = Sigil.Init
|
||||
|
||||
let Child = Init.Child
|
||||
|
||||
|
@ -25,9 +25,9 @@ in λ(params : { bash : Text, coreutils : Text }) →
|
|||
Child.Attributes::{
|
||||
, binary = "vfs"
|
||||
, provides = [ "File_system" ]
|
||||
, resources = Genode.Init.Resources::{
|
||||
, resources = Sigil.Init.Resources::{
|
||||
, caps = 256
|
||||
, ram = Genode.units.MiB 8
|
||||
, ram = Sigil.units.MiB 8
|
||||
}
|
||||
, routes =
|
||||
Prelude.List.map
|
||||
|
@ -92,7 +92,7 @@ in λ(params : { bash : Text, coreutils : Text }) →
|
|||
, provides = [ "ROM" ]
|
||||
, resources = Init.Resources::{
|
||||
, caps = 256
|
||||
, ram = Genode.units.MiB 32
|
||||
, ram = Sigil.units.MiB 32
|
||||
}
|
||||
, config = Init.Config::{
|
||||
, policies =
|
||||
|
@ -108,9 +108,9 @@ in λ(params : { bash : Text, coreutils : Text }) →
|
|||
Child.Attributes::{
|
||||
, binary = "${params.bash}/bin/bash"
|
||||
, exitPropagate = True
|
||||
, resources = Genode.Init.Resources::{
|
||||
, resources = Sigil.Init.Resources::{
|
||||
, caps = 256
|
||||
, ram = Genode.units.MiB 8
|
||||
, ram = Sigil.units.MiB 8
|
||||
}
|
||||
, routes =
|
||||
Prelude.List.map
|
||||
|
|
|
@ -1,19 +1,19 @@
|
|||
let Genode = env:DHALL_GENODE
|
||||
let Sigil = env:DHALL_SIGIL
|
||||
|
||||
let Init = Genode.Init
|
||||
let Init = Sigil.Init
|
||||
|
||||
let Child = Init.Child
|
||||
|
||||
let Libc = Genode.Libc
|
||||
let Libc = Sigil.Libc
|
||||
|
||||
in λ(binary : Text) →
|
||||
Child.flat
|
||||
Child.Attributes::{
|
||||
, binary
|
||||
, exitPropagate = True
|
||||
, resources = Genode.Init.Resources::{
|
||||
, resources = Sigil.Init.Resources::{
|
||||
, caps = 500
|
||||
, ram = Genode.units.MiB 10
|
||||
, ram = Sigil.units.MiB 10
|
||||
}
|
||||
, config = Libc.toConfig Libc::{ args = [ "hello" ] }
|
||||
}
|
||||
|
|
|
@ -5,18 +5,18 @@
|
|||
genode.init.children.log = {
|
||||
package = pkgs.genodePackages.test-log;
|
||||
configFile = pkgs.writeText "test-log.dhall" ''
|
||||
let Genode = env:DHALL_GENODE
|
||||
let Sigil = env:DHALL_SIGIL
|
||||
|
||||
let Child = Genode.Init.Child
|
||||
let Child = Sigil.Init.Child
|
||||
|
||||
in λ(binary : Text) →
|
||||
Child.flat
|
||||
Child.Attributes::{
|
||||
, binary
|
||||
, exitPropagate = True
|
||||
, resources = Genode.Init.Resources::{
|
||||
, resources = Sigil.Init.Resources::{
|
||||
, caps = 500
|
||||
, ram = Genode.units.MiB 10
|
||||
, ram = Sigil.units.MiB 10
|
||||
}
|
||||
}
|
||||
'';
|
||||
|
|
|
@ -26,22 +26,22 @@
|
|||
package = testNim;
|
||||
extraInputs = with pkgs.genodePackages; [ libc stdcxx ];
|
||||
configFile = builtins.toFile "nim.dhall" ''
|
||||
let Genode = env:DHALL_GENODE
|
||||
let Sigil = env:DHALL_SIGIL
|
||||
|
||||
let Init = Genode.Init
|
||||
let Init = Sigil.Init
|
||||
|
||||
let Child = Init.Child
|
||||
|
||||
let Libc = Genode.Libc
|
||||
let Libc = Sigil.Libc
|
||||
|
||||
in λ(binary : Text) →
|
||||
Child.flat
|
||||
Child.Attributes::{
|
||||
, binary
|
||||
, exitPropagate = True
|
||||
, resources = Genode.Init.Resources::{
|
||||
, resources = Sigil.Init.Resources::{
|
||||
, caps = 500
|
||||
, ram = Genode.units.MiB 10
|
||||
, ram = Sigil.units.MiB 10
|
||||
}
|
||||
, config = Libc.toConfig Libc.default
|
||||
}
|
||||
|
|
|
@ -1,16 +1,14 @@
|
|||
let Test = ./test.dhall ? env:DHALL_GENODE_TEST
|
||||
let Test = ./test.dhall ? env:DHALL_SIGIL_TEST
|
||||
|
||||
let Genode = Test.Genode
|
||||
let Prelude = Sigil.Prelude
|
||||
|
||||
let Prelude = Genode.Prelude
|
||||
|
||||
let Init = Genode.Init
|
||||
let Init = Sigil.Init
|
||||
|
||||
let Child = Init.Child
|
||||
|
||||
let Libc = Genode.Libc
|
||||
let Libc = Sigil.Libc
|
||||
|
||||
let VFS = Genode.VFS
|
||||
let VFS = Sigil.VFS
|
||||
|
||||
in λ(params : { bash : Text, coreutils : Text, script : Text }) →
|
||||
let init =
|
||||
|
@ -49,9 +47,9 @@ in λ(params : { bash : Text, coreutils : Text, script : Text }) →
|
|||
]
|
||||
}
|
||||
, provides = [ "File_system" ]
|
||||
, resources = Genode.Init.Resources::{
|
||||
, resources = Sigil.Init.Resources::{
|
||||
, caps = 256
|
||||
, ram = Genode.units.MiB 8
|
||||
, ram = Sigil.units.MiB 8
|
||||
}
|
||||
, routes =
|
||||
Prelude.List.map
|
||||
|
@ -67,7 +65,7 @@ in λ(params : { bash : Text, coreutils : Text, script : Text }) →
|
|||
, provides = [ "ROM" ]
|
||||
, resources = Init.Resources::{
|
||||
, caps = 256
|
||||
, ram = Genode.units.MiB 4
|
||||
, ram = Sigil.units.MiB 4
|
||||
}
|
||||
, routes =
|
||||
[ Init.ServiceRoute.parentLabel
|
||||
|
@ -89,9 +87,9 @@ in λ(params : { bash : Text, coreutils : Text, script : Text }) →
|
|||
, args = [ "bash", params.script ]
|
||||
}
|
||||
, exitPropagate = True
|
||||
, resources = Genode.Init.Resources::{
|
||||
, resources = Sigil.Init.Resources::{
|
||||
, caps = 256
|
||||
, ram = Genode.units.MiB 8
|
||||
, ram = Sigil.units.MiB 8
|
||||
}
|
||||
, routes =
|
||||
[ { service =
|
||||
|
|
|
@ -1,15 +1,15 @@
|
|||
let Genode = env:DHALL_GENODE
|
||||
let Sigil = env:DHALL_SIGIL
|
||||
|
||||
let Prelude = Genode.Prelude
|
||||
let Prelude = Sigil.Prelude
|
||||
|
||||
let Init = Genode.Init
|
||||
let Init = Sigil.Init
|
||||
|
||||
in { Genode
|
||||
, Type =
|
||||
{ children : Prelude.Map.Type Text Init.Child.Type
|
||||
, rom : Genode.BootModules.Type
|
||||
, rom : Sigil.BootModules.Type
|
||||
}
|
||||
, default.rom = [] : Genode.BootModules.Type
|
||||
, default.rom = [] : Sigil.BootModules.Type
|
||||
, initToChildren =
|
||||
λ(init : Init.Type) →
|
||||
toMap
|
||||
|
|
|
@ -1,10 +1,8 @@
|
|||
let Test = ./test.dhall ? env:DHALL_GENODE_TEST
|
||||
let Test = ./test.dhall ? env:DHALL_SIGIL_TEST
|
||||
|
||||
let Genode = Test.Genode
|
||||
let XML = Sigil.Prelude.XML
|
||||
|
||||
let XML = Genode.Prelude.XML
|
||||
|
||||
let Init = Genode.Init
|
||||
let Init = Sigil.Init
|
||||
|
||||
let ServiceRoute = Init.ServiceRoute
|
||||
|
||||
|
@ -42,7 +40,7 @@ in λ(guest : { linux : Text, dtb : Text, initrd : Text }) →
|
|||
}
|
||||
}
|
||||
, provides = [ "Nic" ]
|
||||
, resources = Init.Resources::{ ram = Genode.units.MiB 8 }
|
||||
, resources = Init.Resources::{ ram = Sigil.units.MiB 8 }
|
||||
}
|
||||
, earlycon =
|
||||
Child.flat
|
||||
|
@ -62,7 +60,7 @@ in λ(guest : { linux : Text, dtb : Text, initrd : Text }) →
|
|||
, binary = "vmm"
|
||||
, resources = Init.Resources::{
|
||||
, caps = 256
|
||||
, ram = Genode.units.MiB 256
|
||||
, ram = Sigil.units.MiB 256
|
||||
}
|
||||
, routes =
|
||||
[ ServiceRoute.parent "VM"
|
||||
|
@ -92,5 +90,5 @@ in λ(guest : { linux : Text, dtb : Text, initrd : Text }) →
|
|||
|
||||
in Test::{
|
||||
, children = Test.initToChildren init
|
||||
, rom = Genode.Boot.toRomPaths (toMap guest)
|
||||
, rom = Sigil.Boot.toRomPaths (toMap guest)
|
||||
}
|
||||
|
|
|
@ -1,6 +1,6 @@
|
|||
let Genode = env:DHALL_GENODE
|
||||
let Sigil = env:DHALL_SIGIL
|
||||
|
||||
let Init = Genode.Init
|
||||
let Init = Sigil.Init
|
||||
|
||||
let Child = Init.Child
|
||||
|
||||
|
@ -9,9 +9,6 @@ in λ(binary : Text) →
|
|||
Child.Attributes::{
|
||||
, binary
|
||||
, exitPropagate = True
|
||||
, resources = Init.Resources::{
|
||||
, caps = 2048
|
||||
, ram = Genode.units.MiB 256
|
||||
}
|
||||
, routes = [ Genode.Init.ServiceRoute.parent "VM" ]
|
||||
, resources = Init.Resources::{ caps = 2048, ram = Sigil.units.MiB 256 }
|
||||
, routes = [ Sigil.Init.ServiceRoute.parent "VM" ]
|
||||
}
|
||||
|
|
Loading…
Reference in New Issue