diff options
author | Mathieu Othacehe <m.othacehe@gmail.com> | 2019-10-10 17:32:24 +0200 |
---|---|---|
committer | Mathieu Othacehe <m.othacehe@gmail.com> | 2019-10-10 17:32:24 +0200 |
commit | 4d14902b9402a83db444d8d6818d0a4f438ce8c4 (patch) | |
tree | 85f05a0540ebcd4a1f192096c36271a287eb9fe8 /guix/build/syscalls.scm | |
parent | 647cfcf68184e8558fcea751ef6d95b6e5d86ae1 (diff) | |
parent | 6c50e1dc0625f89884cff40b22627091efa37708 (diff) |
Merge branch 'master' into core-updates
Diffstat (limited to 'guix/build/syscalls.scm')
-rw-r--r-- | guix/build/syscalls.scm | 28 |
1 files changed, 28 insertions, 0 deletions
diff --git a/guix/build/syscalls.scm b/guix/build/syscalls.scm index f2fdb4d9d1..bbf2531c79 100644 --- a/guix/build/syscalls.scm +++ b/guix/build/syscalls.scm @@ -68,6 +68,7 @@ statfs free-disk-space device-in-use? + add-to-entropy-count processes mkdtemp! @@ -708,6 +709,33 @@ backend device." ;;; +;;; Random. +;;; + +;; From <uapi/linux/random.h>. +(define RNDADDTOENTCNT #x40045201) + +(define (add-to-entropy-count port-or-fd n) + "Add N to the kernel's entropy count (the value that can be read from +/proc/sys/kernel/random/entropy_avail). PORT-OR-FD must correspond to +/dev/urandom or /dev/random. Raise to 'system-error with EPERM when the +caller lacks root privileges." + (let ((fd (if (port? port-or-fd) + (fileno port-or-fd) + port-or-fd)) + (box (make-bytevector (sizeof int)))) + (bytevector-sint-set! box 0 n (native-endianness) + (sizeof int)) + (let-values (((ret err) + (%ioctl fd RNDADDTOENTCNT + (bytevector->pointer box)))) + (unless (zero? err) + (throw 'system-error "add-to-entropy-count" "~A" + (list (strerror err)) + (list err)))))) + + +;;; ;;; Containers. ;;; |