freebsd-dev/sys/dev/bhnd/nvram
Ed Schouten af3c78886f Alter the prototype of qsort_r(3) to match POSIX, which adopted the
glibc-based interface.

Unfortunately, the glibc maintainers, despite knowing the existence
of the FreeBSD qsort_r(3) interface in 2004 and refused to add the
same interface to glibc based on grounds of the lack of standardization
and portability concerns, has decided it was a good idea to introduce
their own qsort_r(3) interface in 2007 as a GNU extension with a
slightly different and incompatible interface.

With the adoption of their interface as POSIX standard, let's switch
to the same prototype, there is no need to remain incompatible.

C++ and C applications written for the historical FreeBSD interface
get source level compatibility when building in C++ mode, or when
building with a C compiler with C11 generics support, provided that
the caller passes a fifth parameter of qsort_r() that exactly matches
the historical FreeBSD comparator function pointer type and does not
redefine the historical qsort_r(3) prototype in their source code.

Symbol versioning is used to keep old binaries working.

MFC:			never
Relnotes:		yes
Reviewed by:		cem, imp, hps, pauamma
Differential revision:	https://reviews.freebsd.org/D17083
2022-09-30 15:26:30 -07:00
..
bhnd_nvram_data_bcm.c
bhnd_nvram_data_bcmraw.c bhnd(4): Correct a typo in a source code comment 2022-08-27 12:10:00 +02:00
bhnd_nvram_data_bcmreg.h
bhnd_nvram_data_bcmvar.h
bhnd_nvram_data_btxt.c
bhnd_nvram_data_sprom_subr.c
bhnd_nvram_data_sprom.c bhnd(4): Correct some typos in source code comments 2022-09-04 12:49:42 +02:00
bhnd_nvram_data_spromvar.h
bhnd_nvram_data_tlv.c
bhnd_nvram_data_tlvreg.h
bhnd_nvram_data.c
bhnd_nvram_data.h
bhnd_nvram_datavar.h
bhnd_nvram_if.m
bhnd_nvram_io.c bhnd(4): Correct some typos in source code comments 2022-09-04 12:49:42 +02:00
bhnd_nvram_io.h
bhnd_nvram_iobuf.c
bhnd_nvram_ioptr.c
bhnd_nvram_iores.c
bhnd_nvram_iovar.h
bhnd_nvram_plist.c
bhnd_nvram_plist.h
bhnd_nvram_plistvar.h
bhnd_nvram_private.h
bhnd_nvram_store_subr.c Alter the prototype of qsort_r(3) to match POSIX, which adopted the 2022-09-30 15:26:30 -07:00
bhnd_nvram_store.c
bhnd_nvram_store.h
bhnd_nvram_storevar.h
bhnd_nvram_subr.c
bhnd_nvram_value_fmts.c
bhnd_nvram_value_prf.c
bhnd_nvram_value_subr.c
bhnd_nvram_value.c
bhnd_nvram_value.h
bhnd_nvram_valuevar.h
bhnd_nvram.h
bhnd_sprom.c
bhnd_spromvar.h
nvram_map