projects
/
yaffs2.git
/ blobdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
|
commitdiff
|
tree
raw
|
inline
| side by side
Improve test harness for yaffs2 mode
[yaffs2.git]
/
yaffs_qsort.c
diff --git
a/yaffs_qsort.c
b/yaffs_qsort.c
index 296701d2e41fe606870134d059d49fb846cf77a8..474be9cea39967774053d3e9756d888da07e304d 100644
(file)
--- a/
yaffs_qsort.c
+++ b/
yaffs_qsort.c
@@
-50,7
+50,7
@@
static __inline void
swapfunc(char *a, char *b, int n, int swaptype)
{
static __inline void
swapfunc(char *a, char *b, int n, int swaptype)
{
- if (swaptype <= 1)
+ if (swaptype <= 1)
swapcode(long, a, b, n)
else
swapcode(char, a, b, n)
swapcode(long, a, b, n)
else
swapcode(char, a, b, n)
@@
-74,9
+74,13
@@
med3(char *a, char *b, char *c, int (*cmp)(const void *, const void *))
:(cmp(b, c) > 0 ? b : (cmp(a, c) < 0 ? a : c ));
}
:(cmp(b, c) > 0 ? b : (cmp(a, c) < 0 ? a : c ));
}
+#ifndef min
#define min(a,b) (((a) < (b)) ? (a) : (b))
#define min(a,b) (((a) < (b)) ? (a) : (b))
+#endif
+
void
void
-qsort(void *aa, size_t n, size_t es, int (*cmp)(const void *, const void *))
+yaffs_qsort(void *aa, size_t n, size_t es,
+ int (*cmp)(const void *, const void *))
{
char *pa, *pb, *pc, *pd, *pl, *pm, *pn;
int d, r, swaptype, swap_cnt;
{
char *pa, *pb, *pc, *pd, *pl, *pm, *pn;
int d, r, swaptype, swap_cnt;
@@
-133,7
+137,7
@@
loop: SWAPINIT(a, es);
}
if (swap_cnt == 0) { /* Switch to insertion sort */
for (pm = (char *) a + es; pm < (char *) a + n * es; pm += es)
}
if (swap_cnt == 0) { /* Switch to insertion sort */
for (pm = (char *) a + es; pm < (char *) a + n * es; pm += es)
- for (pl = pm; pl > (char *) a && cmp(pl - es, pl) > 0;
+ for (pl = pm; pl > (char *) a && cmp(pl - es, pl) > 0;
pl -= es)
swap(pl, pl - es);
return;
pl -= es)
swap(pl, pl - es);
return;
@@
-145,12
+149,12
@@
loop: SWAPINIT(a, es);
r = min((long)(pd - pc), (long)(pn - pd - es));
vecswap(pb, pn - r, r);
if ((r = pb - pa) > es)
r = min((long)(pd - pc), (long)(pn - pd - es));
vecswap(pb, pn - r, r);
if ((r = pb - pa) > es)
- qsort(a, r / es, es, cmp);
- if ((r = pd - pc) > es) {
+
yaffs_
qsort(a, r / es, es, cmp);
+ if ((r = pd - pc) > es) {
/* Iterate rather than recurse to save stack space */
a = pn - r;
n = r / es;
goto loop;
}
/* Iterate rather than recurse to save stack space */
a = pn - r;
n = r / es;
goto loop;
}
-/* qsort(pn - r, r / es, es, cmp);*/
+/*
yaffs_
qsort(pn - r, r / es, es, cmp);*/
}
}