freebsd-dev/sys/dev/drm2
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
..
ttm pmap_unmapdev/bios: Accept a pointer instead of a vm_offset_t. 2022-09-22 15:08:52 -07:00
drm_agpsupport.c
drm_atomic.h
drm_auth.c
drm_buffer.c
drm_buffer.h
drm_bufs.c kmem_malloc/free: Use void * instead of vm_offset_t for kernel pointers. 2022-09-22 15:09:19 -07:00
drm_context.c
drm_core.h
drm_crtc_helper.c
drm_crtc_helper.h
drm_crtc.c
drm_crtc.h
drm_dma.c
drm_dp_helper.c
drm_dp_helper.h
drm_dp_iic_helper.c drm2: Remove unused devclass argument to DRIVER_MODULE. 2022-05-10 10:21:39 -07:00
drm_drv.c
drm_edid_modes.h
drm_edid.c
drm_edid.h
drm_fb_helper.c Adjust function definition in drm_fb_helper.c to avoid clang 15 warning 2022-08-14 21:27:34 +02:00
drm_fb_helper.h
drm_fixed.h
drm_fops.c Make device_busy/unbusy work w/o Giant held 2021-11-30 15:18:01 -07:00
drm_fourcc.h
drm_gem_names.c
drm_gem_names.h
drm_gem.c vm_object: Modify various drivers to allocate OBJT_SWAP objects 2022-07-12 09:10:15 -04:00
drm_global.c drm2: Remove unused variables. 2022-04-13 16:08:22 -07:00
drm_global.h
drm_hashtab.c
drm_hashtab.h
drm_ioc32.c
drm_ioctl.c
drm_irq.c
drm_linux_list_sort.c Alter the prototype of qsort_r(3) to match POSIX, which adopted the 2022-09-30 15:26:30 -07:00
drm_linux_list.h
drm_lock.c
drm_mem_util.h
drm_memory.c pmap_unmapdev/bios: Accept a pointer instead of a vm_offset_t. 2022-09-22 15:08:52 -07:00
drm_mm.c
drm_mm.h
drm_mode.h
drm_modes.c drm2: Remove unused variables. 2022-04-13 16:08:22 -07:00
drm_os_freebsd.c drm2: Remove unused drm_devclass. 2022-05-10 10:21:39 -07:00
drm_os_freebsd.h
drm_pci.c
drm_pciids.h
drm_platform.c
drm_sarea.h
drm_scatter.c kmem_malloc/free: Use void * instead of vm_offset_t for kernel pointers. 2022-09-22 15:09:19 -07:00
drm_stub.c
drm_sysctl.c
drm_vm.c Revert "drm2: Fix a typo in a source code comment" 2022-04-14 09:01:29 +02:00
drm.h
drmP.h kmem_malloc/free: Use void * instead of vm_offset_t for kernel pointers. 2022-09-22 15:09:19 -07:00