diff options
author | Christopher Baines <mail@cbaines.net> | 2024-04-21 10:42:31 +0100 |
---|---|---|
committer | Guix Patches Tester <> | 2024-04-21 11:53:18 +0200 |
commit | 9676d5d868dfdf3ab922ff4996d2b4f5b1b23c99 (patch) | |
tree | e48307667210e1213a30f9faddbbd2be47da661e | |
parent | 63d9c3f3cfb84d02168ae10f787cd25da8cc75ad (diff) | |
download | guix-patches-9676d5d868dfdf3ab922ff4996d2b4f5b1b23c99.tar guix-patches-9676d5d868dfdf3ab922ff4996d2b4f5b1b23c99.tar.gz |
syscalls: Add unshare.
* guix/build/syscalls.scm (unshare): New procedure.
Change-Id: I7caad207117b17b349290e680277f650c51d2f3b
-rw-r--r-- | guix/build/syscalls.scm | 12 |
1 files changed, 12 insertions, 0 deletions
diff --git a/guix/build/syscalls.scm b/guix/build/syscalls.scm index 487ee68b43..492a229938 100644 --- a/guix/build/syscalls.scm +++ b/guix/build/syscalls.scm @@ -36,6 +36,7 @@ #:use-module (srfi srfi-11) #:use-module (srfi srfi-19) #:use-module (srfi srfi-26) + #:use-module (srfi srfi-71) #:use-module (ice-9 rdelim) #:use-module (ice-9 regex) #:use-module (ice-9 match) @@ -121,6 +122,7 @@ mkdtemp! fdatasync pivot-root + unshare scandir* getxattr setxattr @@ -1183,6 +1185,16 @@ system to PUT-OLD." (list new-root put-old (strerror err)) (list err))))))) +(define unshare + (false-if-exception + (let ((proc (syscall->procedure int "unshare" (list int)))) + (lambda (flags) + (let ((ret err (proc flags))) + (unless (zero? ret) + (throw 'system-error "unshare" "~d ~d: ~A" + (list flags (strerror err)) + (list err)))))))) + ;;; ;;; Opendir & co. |