freebsd-dev/sys/conf
Conrad Meyer 8a0edc914f Add prng(9) API
Add prng(9) as a replacement for random(9) in the kernel.

There are two major differences from random(9) and random(3):

- General prng(9) APIs (prng32(9), etc) do not guarantee an
  implementation or particular sequence; they should not be used for
  repeatable simulations.

- However, specific named API families are also exposed (for now: PCG),
  and those are expected to be repeatable (when so-guaranteed by the named
  algorithm).

Some minor differences from random(3) and earlier random(9):

- PRNG state for the general prng(9) APIs is per-CPU; this eliminates
  contention on PRNG state in SMP workloads.  Each PCPU generator in an
  SMP system produces a unique sequence.

- Better statistical properties than the Park-Miller ("minstd") PRNG
  (longer period, uniform distribution in all bits, passes
  BigCrush/PractRand analysis).

- Faster than Park-Miller ("minstd") PRNG -- no division is required to
  step PCG-family PRNGs.

For now, random(9) becomes a thin shim around prng32().  Eventually I
would like to mechanically switch consumers over to the explicit API.

Reviewed by:	kib, markj (previous version both)
Discussed with:	markm
Differential Revision:	https://reviews.freebsd.org/D25916
2020-08-13 20:48:14 +00:00
..
config.mk Add SCTP_SUPPORT handling to config.mk. 2020-06-25 15:25:00 +00:00
dtb.build.mk Introduce bsd.sysdir.mk to consolidate looking for the kernel. 2019-11-21 15:59:33 +00:00
dtb.mk Allow kernel config to specify DTS/DTSO to build, and out-of-tree support 2019-03-26 02:45:23 +00:00
files Add prng(9) API 2020-08-13 20:48:14 +00:00
files.amd64 ixl(4): Add FW recovery mode support and other things 2020-06-09 22:42:54 +00:00
files.arm Remove support for DES and Triple DES from OCF. 2020-05-11 21:34:29 +00:00
files.arm64 Add a GPIO driver for the Raspberry Pi firmware GPIOs 2020-08-03 17:18:12 +00:00
files.i386 Remove support for DES and Triple DES from OCF. 2020-05-11 21:34:29 +00:00
files.mips Remove support for DES and Triple DES from OCF. 2020-05-11 21:34:29 +00:00
files.powerpc ixl(4): Add FW recovery mode support and other things 2020-06-09 22:42:54 +00:00
files.riscv riscv: Include syscon_power device driver in GENERIC kernel config 2020-07-26 18:21:02 +00:00
files.x86 Move Intel GAS to dev/iommu/ as now a part of generic iommu framework. 2020-07-25 11:34:50 +00:00
kern.mk Remove tests for obsolete compilers in the build system 2020-05-12 15:22:40 +00:00
kern.opts.mk Add SCTP_SUPPORT to the default kernel options. 2020-06-25 19:12:27 +00:00
kern.post.mk Remove tests for obsolete compilers in the build system 2020-05-12 15:22:40 +00:00
kern.pre.mk Allow linking the kernel with a linker that doesn't support -z ifunc-noplt 2020-08-11 16:47:00 +00:00
kmod_syms_prefix.awk
kmod_syms.awk
kmod.mk kmod.mk: Don't split out debug symbols if requested 2020-06-23 18:25:31 +00:00
kmod.opts.mk Add a kmod.opts.mk. 2019-11-21 18:14:26 +00:00
ldscript.amd64 Tighten mapping protections on preloaded files on amd64. 2019-10-18 14:05:13 +00:00
ldscript.arm Eliminate the generated ldscript for arm and arm64, and strip $a/$d marker 2019-12-29 18:17:12 +00:00
ldscript.arm64 Eliminate the generated ldscript for arm and arm64, and strip $a/$d marker 2019-12-29 18:17:12 +00:00
ldscript.i386 Expose the kernel's build-ID through sysctl 2019-06-04 13:07:10 +00:00
ldscript.kmod.amd64 Add an ldscript for amd64 kernel modules. 2019-10-17 21:39:23 +00:00
ldscript.kmod.i386 Formalize the use of linker scripts for kernel modules. 2019-10-16 22:19:56 +00:00
ldscript.mips Expose the kernel's build-ID through sysctl 2019-06-04 13:07:10 +00:00
ldscript.mips.cfe Expose the kernel's build-ID through sysctl 2019-06-04 13:07:10 +00:00
ldscript.mips.mips64 Expose the kernel's build-ID through sysctl 2019-06-04 13:07:10 +00:00
ldscript.mips.octeon1 Fix linking OCTEON1 kernel with LLD 2020-03-22 22:18:00 +00:00
ldscript.powerpc [PowerPC] kernel ifunc support for powerpc*, fix ppc64 relocation oddities. 2020-05-07 19:32:49 +00:00
ldscript.powerpc64 [PowerPC] Fix build-id note on powerpc64 kernel 2020-06-01 19:40:59 +00:00
ldscript.powerpcspe [PowerPC] kernel ifunc support for powerpc*, fix ppc64 relocation oddities. 2020-05-07 19:32:49 +00:00
ldscript.riscv Set the LMA of the riscv kernel to the OpenSBI jump target by default 2020-02-04 00:06:16 +00:00
Makefile.amd64 Don't try ctfconvert on file without debug info. 2020-04-28 16:09:25 +00:00
Makefile.arm Remove tests for obsolete compilers in the build system 2020-05-12 15:22:40 +00:00
Makefile.arm64 Eliminate the generated ldscript for arm and arm64, and strip $a/$d marker 2019-12-29 18:17:12 +00:00
Makefile.i386 Retire CLANG_NO_IAS34 2018-11-01 23:11:47 +00:00
Makefile.mips Compile hack.c with normal CFLAGS + -shared -nostdlib. 2020-01-26 14:19:08 +00:00
Makefile.powerpc Remove tests for obsolete compilers in the build system 2020-05-12 15:22:40 +00:00
Makefile.riscv Simplify the RISC-V kernel linker invocation 2020-05-22 18:54:56 +00:00
makeLINT.mk Move arm back to having one LINT 2020-02-02 08:27:08 +00:00
makeLINT.sed
newvers.sh Fix newvers.sh on macOS 10.15 2020-03-23 17:51:44 +00:00
NOTES geom(4): Kill GEOM_PART_EBR_COMPAT option 2020-07-01 02:16:36 +00:00
options geom(4): Kill GEOM_PART_EBR_COMPAT option 2020-07-01 02:16:36 +00:00
options.amd64 Initial support for bhyve save and restore. 2020-05-05 00:02:04 +00:00
options.arm Kill old armv4 busdma 2020-02-02 08:27:14 +00:00
options.arm64 Add i.MX 8M Quad support 2020-07-01 00:33:16 +00:00
options.i386 i386: Merge PAE and non-PAE pmaps into same kernel. 2019-01-30 02:07:13 +00:00
options.mips Add SMP support for BERI CPU. 2018-04-12 17:43:19 +00:00
options.powerpc powerpc: Axe PPC4xx support. 2020-03-18 01:09:43 +00:00
options.riscv o Add driver for PLIC (Platform-Level Interrupt Controller) device. 2018-06-12 17:45:15 +00:00
sysent.mk Rebuild sysent when capabilities.conf is updated. 2020-07-07 16:35:52 +00:00
systags.sh Fix kernel-tags target. 2020-01-23 13:56:12 +00:00
WITHOUT_SOURCELESS
WITHOUT_SOURCELESS_HOST
WITHOUT_SOURCELESS_UCODE retire cx,ctau drivers 2020-03-20 16:50:19 +00:00