Lines Matching defs:es
46 void qsort(void *a, size_t n, size_t es, cmp_t *cmp);
62 #define SWAPINIT(a, es) swaptype = ((char *)a - (char *)0) % sizeof(long) || \
63 es % sizeof(long) ? 2 : es == sizeof(long)? 0 : 1;
80 swapfunc(a, b, es, swaptype)
93 qsort(void *a, size_t n, size_t es, cmp_t *cmp)
99 SWAPINIT(a, es);
102 for (pm = (char *)a + es; pm < (char *)a + n * es; pm += es)
103 for (pl = pm; pl > (char *)a && cmp(pl - es, pl) > 0;
104 pl -= es)
105 swap(pl, pl - es);
108 pm = (char *)a + (n / 2) * es;
111 pn = (char *)a + (n - 1) * es;
113 d = (n / 8) * es;
121 pa = pb = (char *)a + es;
123 pc = pd = (char *)a + (n - 1) * es;
129 pa += es;
131 pb += es;
137 pd -= es;
139 pc -= es;
145 pb += es;
146 pc -= es;
149 for (pm = (char *)a + es; pm < (char *)a + n * es; pm += es)
150 for (pl = pm; pl > (char *)a && cmp(pl - es, pl) > 0;
151 pl -= es)
152 swap(pl, pl - es);
156 pn = (char *)a + n * es;
159 r = min(pd - pc, pn - pd - es);
161 if ((size_t)(r = pb - pa) > es)
162 qsort(a, r / es, es, cmp);
163 if ((size_t)(r = pd - pc) > es) {
166 n = r / es;
169 /* qsort(pn - r, r / es, es, cmp);*/