|
Embedded Artistry Framework
Embedded Systems C++ Framework
|


Macros | |
| #define | min(a, b) (a) < (b) ? a : b |
| #define | swapcode(TYPE, parmi, parmj, n) |
| #define | SWAPINIT(a, es) swaptype = (uintptr_t)a % sizeof(long) || es % sizeof(long) ? 2 : es == sizeof(long) ? 0 : 1; |
| #define | swap(a, b) swapfunc(a, b, (size_t)es, (size_t)swaptype) |
| #define | vecswap(a, b, n) |
| #define | CMP(t, x, y) (cmp((x), (y))) |
| #define | DEPTH(x) (2 * (fls((int)(x)) - 1)) |
| #define | thunk NULL |
Typedefs | |
| typedef int | cmp_t(const void *, const void *) |
Functions | |
| static char * | med3 (char *a, char *b, char *c, cmp_t *cmd, void *thunk) __attribute__((always_inline)) |
| static void | swapfunc (char *a, char *b, size_t n, size_t swaptype) __attribute__((always_inline)) |
| static char * | med3 (char *a, char *b, char *c, cmp_t *cmp, void *thunk __attribute__((unused))) |
| static void | _qsort (void *a, size_t n, size_t es, #define thunk cmp_t *cmp, int depth_limit) |
| void | qsort (void *a, size_t n, size_t es, cmp_t *cmp) |
| #define DEPTH | ( | x | ) | (2 * (fls((int)(x)) - 1)) |
| #define swapcode | ( | TYPE, | |
| parmi, | |||
| parmj, | |||
| n | |||
| ) |
| #define SWAPINIT | ( | a, | |
| es | |||
| ) | swaptype = (uintptr_t)a % sizeof(long) || es % sizeof(long) ? 2 : es == sizeof(long) ? 0 : 1; |
| #define thunk NULL |
| typedef int cmp_t(const void *, const void *) |
|
inlinestatic |
Referenced by _qsort().
References _qsort(), a, cmp(), DEPTH, I_AM_QSORT_R, n, and thunk.
Referenced by char_test(), qsort_int_test(), qsort_string_test(), and uint64_test().
1.8.15