mirror of
git://git.musl-libc.org/musl
synced 2025-03-06 20:48:29 +01:00
we make qsort a wrapper by providing a wrapper_cmp function that uses the extra argument as a function pointer. should be optimized to a tail call on most architectures, as long as it's built with -fomit-frame-pointer, so the performance impact should be minimal. to keep the git history clean, for now qsort_r is implemented in qsort.c and qsort is implemented in qsort_nr.c. qsort.c also received a few trivial cleanups, including replacing (*cmp)() calls with cmp(). qsort_nr.c contains only wrapper_cmp and qsort as a qsort_r wrapper itself.
19 lines
586 B
C
19 lines
586 B
C
#ifndef STDLIB_H
|
|
#define STDLIB_H
|
|
|
|
#include "../../include/stdlib.h"
|
|
|
|
hidden int __putenv(char *, size_t, char *);
|
|
hidden void __env_rm_add(char *, char *);
|
|
hidden int __mkostemps(char *, int, int);
|
|
hidden int __ptsname_r(int, char *, size_t);
|
|
hidden char *__randname(char *);
|
|
hidden void __qsort_r (void *, size_t, size_t, int (*)(const void *, const void *, void *), void *);
|
|
|
|
hidden void *__libc_malloc(size_t);
|
|
hidden void *__libc_malloc_impl(size_t);
|
|
hidden void *__libc_calloc(size_t, size_t);
|
|
hidden void *__libc_realloc(void *, size_t);
|
|
hidden void __libc_free(void *);
|
|
|
|
#endif
|