Rename dhall-genode to dhall-sigil

This commit is contained in:
Emery Hemingway 2021-03-28 15:07:21 +02:00
parent 88668e8dd5
commit 94c73172cb
35 changed files with 202 additions and 207 deletions

View File

@ -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" ]

View File

@ -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}"
}

View File

@ -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" } ]
}
'';

View File

@ -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

View File

@ -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}" }

View File

@ -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 =

View File

@ -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"

View File

@ -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"

View File

@ -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::{

View File

@ -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
'';

View File

@ -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;

View File

@ -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"

View File

@ -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 =

View File

@ -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!" }

View File

@ -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" } }
]
}

View File

@ -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"
}
]

View File

@ -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"

View File

@ -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 =

View File

@ -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" } }
]
}

View File

@ -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" } }
]
}

View File

@ -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

View File

@ -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

View File

@ -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
}

View File

@ -31,7 +31,7 @@ in upstream // {
device_manager = callPackage ./device_manager { };
dhallGenode = dhallPackages.genode;
dhallSigil = dhallPackages.sigil;
nic_bus = callPackage ./nic_bus { };

View File

@ -1,5 +1,5 @@
{ callPackage }:
{
genode = callPackage ./genode.nix { };
sigil = callPackage ./sigil.nix { };
}

View File

@ -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 ];
}

11
packages/dhall/sigil.nix Normal file
View File

@ -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 ];
}

View File

@ -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

View File

@ -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" ] }
}

View File

@ -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
}
}
'';

View File

@ -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
}

View File

@ -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 =

View File

@ -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

View File

@ -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)
}

View File

@ -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" ]
}