aboutsummaryrefslogtreecommitdiff
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
guix-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'.