FreeBSD/src 1809ef7 (r344351)sys/conf files, sys/kern subr_rangeset.c

Implement rangesets.

The data structure implements non-intersecting intervals over the [0,
UINT64_MAX] range, and supports fast insert, predicated clearing of
subrange, and lookup of an interval containing the specified address.
Internally it is a pctrie over the interval start addresses.

Implementation provides additional guarantees over the structure state
in case of memory allocation failures.

Reviewed by:    markj
Tested by:      pho
Sponsored by:   The FreeBSD Foundation
MFC after:      2 weeks
Differential revision:  https://reviews.freebsd.org/D18893
DeltaFile
+365-0sys/kern/subr_rangeset.c
+88-0sys/sys/rangeset.h
+51-0sys/sys/_rangeset.h
+1-0sys/conf/files
+505-04 files

UnifiedSplitRaw