summaryrefslogtreecommitdiffstats
path: root/src/include
diff options
context:
space:
mode:
Diffstat (limited to 'src/include')
-rw-r--r--src/include/ipxe/entropy.h1
-rw-r--r--src/include/ipxe/errfile.h1
-rw-r--r--src/include/ipxe/linux/linux_entropy.h32
3 files changed, 34 insertions, 0 deletions
diff --git a/src/include/ipxe/entropy.h b/src/include/ipxe/entropy.h
index 50ba4fc63..adf325e79 100644
--- a/src/include/ipxe/entropy.h
+++ b/src/include/ipxe/entropy.h
@@ -54,6 +54,7 @@ typedef uint8_t entropy_sample_t;
/* Include all architecture-independent entropy API headers */
#include <ipxe/null_entropy.h>
+#include <ipxe/linux/linux_entropy.h>
/* Include all architecture-dependent entropy API headers */
#include <bits/entropy.h>
diff --git a/src/include/ipxe/errfile.h b/src/include/ipxe/errfile.h
index 050bf3fec..bfb738a4a 100644
--- a/src/include/ipxe/errfile.h
+++ b/src/include/ipxe/errfile.h
@@ -247,6 +247,7 @@ FILE_LICENCE ( GPL2_OR_LATER );
#define ERRFILE_drbg ( ERRFILE_OTHER | 0x00250000 )
#define ERRFILE_entropy ( ERRFILE_OTHER | 0x00260000 )
#define ERRFILE_rsa ( ERRFILE_OTHER | 0x00270000 )
+#define ERRFILE_linux_entropy ( ERRFILE_OTHER | 0x00280000 )
/** @} */
diff --git a/src/include/ipxe/linux/linux_entropy.h b/src/include/ipxe/linux/linux_entropy.h
new file mode 100644
index 000000000..bd89bd52f
--- /dev/null
+++ b/src/include/ipxe/linux/linux_entropy.h
@@ -0,0 +1,32 @@
+#ifndef _IPXE_LINUX_ENTROPY_H
+#define _IPXE_LINUX_ENTROPY_H
+
+/** @file
+ *
+ * iPXE entropy API for linux
+ *
+ */
+
+FILE_LICENCE(GPL2_OR_LATER);
+
+#ifdef ENTROPY_LINUX
+#define ENTROPY_PREFIX_linux
+#else
+#define ENTROPY_PREFIX_linux __linux_
+#endif
+
+/**
+ * min-entropy per sample
+ *
+ * @ret min_entropy min-entropy of each sample
+ */
+static inline __always_inline double
+ENTROPY_INLINE ( linux, min_entropy_per_sample ) ( void ) {
+
+ /* We read single bytes from /dev/random and assume that each
+ * contains full entropy.
+ */
+ return 8;
+}
+
+#endif /* _IPXE_LINUX_ENTROPY_H */