freebsd-dev/lib
Hans Petter Selasky 8dcf3a82c5 libc: Implement bsort(3) a bitonic type of sorting algorithm.
The bsort(3) algorithm works by swapping objects, similarly to qsort(3),
and does not require any significant amount of additional memory.

The bsort(3) algorithm doesn't suffer from the processing time issues
known the plague the qsort(3) family of algorithms, and is bounded by
a complexity of O(log2(N) * log2(N) * N), where N is the number of
elements in the sorting array. The additional complexity compared to
mergesort(3) is a fair tradeoff in situations where no memory may
be allocated.

The bsort(3) APIs are identical to those of qsort(3), allowing for
easy drop-in and testing.

The design of the bsort(3) algorithm allows for future parallell CPU
execution when sorting arrays. The current version of the bsort(3)
algorithm is single threaded. This is possible because fixed areas
of the sorting data is compared at a time, and can easily be divided
among different CPU's to sort large arrays faster.

Reviewed by:	gbe@, delphij@, pauamma_gundo.com (manpages)
Sponsored by:	NVIDIA Networking
Differential Revision:	https://reviews.freebsd.org/D36493
2023-04-19 14:04:22 +02:00
..
atf Update/fix Makefile.depend for userland 2023-04-18 17:14:23 -07:00
clang Stop stripping 'sf' suffixes from architecture names. 2023-04-12 11:11:02 -07:00
csu csu: move common code to libc 2023-03-12 00:50:03 +02:00
flua flua: Fix a typo in a source code comment 2022-09-15 10:25:54 +02:00
geom Update/fix Makefile.depend for userland 2023-04-18 17:14:23 -07:00
googletest googletest: remove unused auto_ptr warning suppression 2022-11-30 19:34:52 -05:00
lib9p Update/fix Makefile.depend for userland 2023-04-18 17:14:23 -07:00
lib80211
libalias Update/fix Makefile.depend for userland 2023-04-18 17:14:23 -07:00
libarchive libarchive: Remove MIPS build glue. 2023-03-29 15:05:53 -07:00
libauditd Update/fix Makefile.depend for userland 2023-04-18 17:14:23 -07:00
libbe Update/fix Makefile.depend for userland 2023-04-18 17:14:23 -07:00
libbearssl Fix DIRDEPS_BUILD for libgcc_eh 2023-04-14 16:56:30 -07:00
libbegemot libbegemot: Disable -Wuse-after-free. 2022-10-03 16:10:43 -07:00
libblacklist
libblocksruntime
libbluetooth
libbsddialog Update/fix Makefile.depend for userland 2023-04-18 17:14:23 -07:00
libbsdstat
libbsm
libbsnmp
libbz2
libc libc: Implement bsort(3) a bitonic type of sorting algorithm. 2023-04-19 14:04:22 +02:00
libc_nonshared libc_nonshared: Move to clibs package 2022-11-01 10:17:07 +00:00
libc++ Merge llvm-project release/15.x llvmorg-15.0.2-10-gf3c5289e7846 2023-02-08 20:05:09 +01:00
libc++experimental Merge llvm-project main llvmorg-15-init-15358-g53dc0f10787 2023-02-08 20:02:26 +01:00
libcalendar
libcam cam_get_device: resolve path links before parsing device name 2022-01-26 11:25:31 +02:00
libcapsicum
libcasper Update/fix Makefile.depend for userland 2023-04-18 17:14:23 -07:00
libcbor
libclang_rt Stop stripping 'sf' suffixes from architecture names. 2023-04-12 11:11:02 -07:00
libcom_err
libcompat
libcompiler_rt libcompiler_rt/libgcc_s: Remove MIPS build glue. 2023-03-29 15:05:42 -07:00
libcrypt libcrypt: Drop inclusion of libutil.h 2021-12-07 00:24:19 +00:00
libcuse cuse(3): Make some clarifications in the manual page. 2022-07-20 10:41:11 +02:00
libcxxrt Sort SRCS in libcxxrt's Makefile, and use += to list sources 2022-01-22 21:08:55 +01:00
libdevctl libdevctl: Add devctl_getpath 2022-03-01 08:06:41 -07:00
libdevdctl libdevdctl: update deprecated deprecation warning comment 2022-12-04 10:17:37 -05:00
libdevinfo pkgbase: Put devmatch in its own package 2022-10-26 19:46:38 +02:00
libdevstat
libdl Update/fix Makefile.depend for userland 2023-04-18 17:14:23 -07:00
libdpv Update/fix Makefile.depend for userland 2023-04-18 17:14:23 -07:00
libdwarf Update/fix Makefile.depend for userland 2023-04-18 17:14:23 -07:00
libedit Update/fix Makefile.depend for userland 2023-04-18 17:14:23 -07:00
libefivar efivar: Really look for labels for the provider with right efimedia 2023-02-16 08:54:39 -07:00
libelf libelf: Link gelf_getchdr.3 to the build 2021-11-29 13:57:24 -05:00
libelftc pkgbase: Create a FreeBSD-elftoolchain package 2023-02-08 08:49:12 +01:00
libevent1
libexecinfo
libexpat Update/fix Makefile.depend for userland 2023-04-18 17:14:23 -07:00
libfetch libfetch: Pass a zeroed digest to DigestCalcResponse. 2022-11-15 19:18:58 -08:00
libfido2
libfigpar
libgcc_eh Fix DIRDEPS_BUILD for libgcc_eh 2023-04-14 16:56:30 -07:00
libgcc_s libcompiler_rt/libgcc_s: Remove MIPS build glue. 2023-03-29 15:05:42 -07:00
libgeom Reference correct section for free(3). 2022-09-17 13:12:44 +02:00
libgpio
libgssapi pkgbase: split kerberos binaries and libs 2022-08-03 11:02:28 +01:00
libiconv_modules Update/fix Makefile.depend for userland 2023-04-18 17:14:23 -07:00
libifconfig Update/fix Makefile.depend for userland 2023-04-18 17:14:23 -07:00
libipsec libipsec: ansify 2023-04-03 22:48:48 +03:00
libipt
libiscsiutil Update/fix Makefile.depend for userland 2023-04-18 17:14:23 -07:00
libjail Refer to a related manpage 2023-02-04 08:22:28 -07:00
libkiconv Update/fix Makefile.depend for userland 2023-04-18 17:14:23 -07:00
libkvm kvm_close(3): Check kd->sparse_map != NULL before munmap 2022-10-16 16:49:16 +00:00
libldns ldns: Disable -Warray-parameter warnings from GCC 12 on sha2.c. 2022-09-28 14:02:30 -07:00
liblua lua: Update to 5.4.4 2023-02-08 10:33:26 -07:00
liblutok Explicitly set CXXSTD to c++11 for old C++ code using std::auto_ptr<>. 2022-12-04 16:25:21 -08:00
liblzma Update/fix Makefile.depend for userland 2023-04-18 17:14:23 -07:00
libmagic file: upgrade to 5.43. 2022-09-24 19:16:39 -07:00
libmd libmd: ansify 2023-03-16 19:02:56 +00:00
libmemstat sys/bitset.h: reduce visibility of BIT_* macros 2021-12-05 23:00:25 +01:00
libmilter Update/fix Makefile.depend for userland 2023-04-18 17:14:23 -07:00
libmixer Update/fix Makefile.depend for userland 2023-04-18 17:14:23 -07:00
libmp
libmt mt(3): Fix a typo in the manual page 2022-04-06 18:41:08 +02:00
libnetbsd libnetbsd: Fix a typo in a source code comment 2022-04-02 14:53:56 +02:00
libnetgraph ng_atmllc: remove 2023-03-09 18:04:21 +00:00
libnetmap pkgbase: Create a FreeBSD-netmap package 2023-02-08 08:49:28 +01:00
libnv libnv: bump library version 2022-07-22 00:23:08 +02:00
libomp Merge llvm-project main llvmorg-15-init-15358-g53dc0f10787 2023-02-08 20:02:26 +01:00
libopenbsd
libopencsd Include Embedded Trace Extensions (ETE) source code to the OpenCSD build. 2023-03-27 17:10:26 +01:00
libpam Update/fix Makefile.depend for userland 2023-04-18 17:14:23 -07:00
libpathconv Update/fix Makefile.depend for userland 2023-04-18 17:14:23 -07:00
libpcap libpcap: Update to 1.10.3 2023-03-31 16:02:22 -03:00
libpe
libpfctl Update/fix Makefile.depend for userland 2023-04-18 17:14:23 -07:00
libpjdlog Update/fix Makefile.depend for userland 2023-04-18 17:14:23 -07:00
libpmc Update/fix Makefile.depend for userland 2023-04-18 17:14:23 -07:00
libpmcstat libpmcstat: Fix a few ARM-specific issues with function symbols. 2022-03-10 15:39:53 -08:00
libproc Update/fix Makefile.depend for userland 2023-04-18 17:14:23 -07:00
libprocstat Update/fix Makefile.depend for userland 2023-04-18 17:14:23 -07:00
libradius
libregex Update/fix Makefile.depend for userland 2023-04-18 17:14:23 -07:00
librpcsec_gss Update/fix Makefile.depend for userland 2023-04-18 17:14:23 -07:00
librpcsvc pkgbase: Put more binaries/lib in runtime 2021-12-21 10:17:27 +01:00
librss librss: Remove rss_socket_set_rss_bucket() 2023-02-28 15:57:11 -05:00
librt Update/fix Makefile.depend for userland 2023-04-18 17:14:23 -07:00
librtld_db librtld_db: Handle shlibs with discontiguous mappings. 2021-12-03 11:07:30 -08:00
libsbuf
libsdp
libsecureboot libsecureboot allow site.trust.mk to override settings 2023-04-14 17:28:10 -07:00
libsm sendmail: Silence -Wdeprecated-non-prototype warnings. 2023-04-18 11:19:48 -07:00
libsmb Update/fix Makefile.depend for userland 2023-04-18 17:14:23 -07:00
libsmdb sendmail: Silence -Wdeprecated-non-prototype warnings. 2023-04-18 11:19:48 -07:00
libsmutil Update/fix Makefile.depend for userland 2023-04-18 17:14:23 -07:00
libsqlite3
libssp Update/fix Makefile.depend for userland 2023-04-18 17:14:23 -07:00
libssp_nonshared Fix DIRDEPS_BUILD for libgcc_eh 2023-04-14 16:56:30 -07:00
libstats Update/fix Makefile.depend for userland 2023-04-18 17:14:23 -07:00
libstdbuf Update/fix Makefile.depend for userland 2023-04-18 17:14:23 -07:00
libstdthreads
libsysdecode Update/fix Makefile.depend for userland 2023-04-18 17:14:23 -07:00
libtacplus
libtelnet
libthr Update/fix Makefile.depend for userland 2023-04-18 17:14:23 -07:00
libthread_db arm: Add support for using VFP in kernel 2023-02-04 20:21:43 +01:00
libucl
libufs Fix for tunefs(8) unable to add a UFS/FFS soft update journal. 2022-11-12 15:37:27 -08:00
libugidfw
libulog
libunbound Update/fix Makefile.depend for userland 2023-04-18 17:14:23 -07:00
libusb libusb(3): Implement libusb_init_context() and the needed structures and definitions. 2023-03-30 17:26:55 +02:00
libusbhid usbhid(3): Fix a typo in the manual page 2022-06-04 19:54:25 +02:00
libutil Allow a comma-separated list in login class capabilities, 2023-01-14 10:48:29 -08:00
libveriexec libveriexec: add function to check a label based on a path 2023-04-17 11:47:33 -04:00
libvgl
libvmmapi Update/fix Makefile.depend for userland 2023-04-18 17:14:23 -07:00
libwrap pkgbase: Put libwrap in FreeBSD-tcpd package 2022-10-26 19:46:32 +02:00
libxo Update/fix Makefile.depend for userland 2023-04-18 17:14:23 -07:00
liby
libypclnt pkgbase: Put more binaries/lib in runtime 2021-12-21 10:17:27 +01:00
libz libz: silence K&R warns 2023-03-16 18:22:24 +00:00
libzstd cppcheck: explicitly exclude kernel code from userspace checks 2022-05-10 10:20:55 -07:00
msun libc: Simplify soft-float on 32-bit arm 2023-02-14 09:53:08 -07:00
ncurses Update/fix Makefile.depend for userland 2023-04-18 17:14:23 -07:00
ofed libirdma: Drop clang-specific -ferror-limit. 2022-10-03 16:10:42 -07:00
tests
Makefile NgATM: Remove netgraph ATM support 2023-03-09 18:04:02 +00:00
Makefile.inc