summary refs log tree commit diff
path: root/gnu/system
diff options
context:
space:
mode:
authorLudovic Courtès <ludo@gnu.org>2014-09-11 23:39:15 +0200
committerLudovic Courtès <ludo@gnu.org>2014-09-12 00:14:52 +0200
commit5dae0186dea1e72e73bf223161620cfeddef5a63 (patch)
tree7f8d7ef58c4a7eb35c0ae90b12d8e71ec51eabd2 /gnu/system
parentee7bae3bbd2030d5f2cdb88e484e1c67a063e2a3 (diff)
downloadguix-5dae0186dea1e72e73bf223161620cfeddef5a63.tar.gz
system: Add support for Linux-style mapped devices.
* gnu/system/file-systems.scm (<mapped-device>): New record type.
* gnu/system.scm (<operating-system>)[mapped-devices]: New field.
  (luks-device-mapping): New procedure.
  (other-file-system-services)[device-mappings, requirements]: New
  procedures.  Pass #:requirements to 'file-system-service'.
  (device-mapping-services): New procedure.
  (essential-services): Use it.  Append its result to the return value.
  (operating-system-initrd-file): Add comment.
* gnu/services/base.scm (file-system-service): Add #:requirements
  parameter and honor it.
  (device-mapping-service): New procedure.
* gnu/system/linux-initrd.scm (base-initrd): Add comment.
Diffstat (limited to 'gnu/system')
-rw-r--r--gnu/system/file-systems.scm21
-rw-r--r--gnu/system/linux-initrd.scm1
2 files changed, 21 insertions, 1 deletions
diff --git a/gnu/system/file-systems.scm b/gnu/system/file-systems.scm
index 48c4fc7e77..90e2b0c796 100644
--- a/gnu/system/file-systems.scm
+++ b/gnu/system/file-systems.scm
@@ -37,7 +37,13 @@
             %pseudo-terminal-file-system
             %devtmpfs-file-system
 
-            %base-file-systems))
+            %base-file-systems
+
+            mapped-device
+            mapped-device?
+            mapped-device-source
+            mapped-device-target
+            mapped-device-command))
 
 ;;; Commentary:
 ;;;
@@ -128,4 +134,17 @@
         %pseudo-terminal-file-system
         %shared-memory-file-system))
 
+
+
+;;;
+;;; Mapped devices, for Linux's device-mapper.
+;;;
+
+(define-record-type* <mapped-device> mapped-device
+  make-mapped-device
+  mapped-device?
+  (source    mapped-device-source)                ;string
+  (target    mapped-device-target)                ;string
+  (command   mapped-device-command))              ;source target -> gexp
+
 ;;; file-systems.scm ends here
diff --git a/gnu/system/linux-initrd.scm b/gnu/system/linux-initrd.scm
index e83a9a5b23..93f751b757 100644
--- a/gnu/system/linux-initrd.scm
+++ b/gnu/system/linux-initrd.scm
@@ -131,6 +131,7 @@ initrd code."
                       volatile-root?
                       (extra-modules '())
                       guile-modules-in-chroot?)
+  ;; TODO: Support boot-time device mappings.
   "Return a monadic derivation that builds a generic initrd.  FILE-SYSTEMS is
 a list of file-systems to be mounted by the initrd, possibly in addition to
 the root file system specified on the kernel command line via '--root'.