summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorOri Bernstein <ori@eigenstate.org>2021-08-11 02:27:48 +0000
committerOri Bernstein <ori@eigenstate.org>2021-08-11 02:27:48 +0000
commita9bccf9e9b1bd408629edaac277f6b3a3a4ab6fb (patch)
treef848694591fb38d3d0391b8ce7a59e562fe2419b
parentc6a9c55de7e5d1d510a717cffd42648d249269db (diff)
downloadplan9front-a9bccf9e9b1bd408629edaac277f6b3a3a4ab6fb.tar.xz
qsort: allow usize-sized arrays.
As part of the transition to 64 bit userspace APIs, we need to make our libc functions which take arrays all accept and deal with large sizes. This does the work for qsort.
-rw-r--r--sys/src/libc/port/qsort.c18
1 files changed, 9 insertions, 9 deletions
diff --git a/sys/src/libc/port/qsort.c b/sys/src/libc/port/qsort.c
index c38a49da7..60dafc070 100644
--- a/sys/src/libc/port/qsort.c
+++ b/sys/src/libc/port/qsort.c
@@ -8,12 +8,12 @@ typedef
struct
{
int (*cmp)(void*, void*);
- void (*swap)(char*, char*, long);
- long es;
+ void (*swap)(char*, char*, usize);
+ usize es;
} Sort;
static void
-swapb(char *i, char *j, long es)
+swapb(char *i, char *j, usize es)
{
char c;
@@ -27,7 +27,7 @@ swapb(char *i, char *j, long es)
}
static void
-swapi(char *ii, char *ij, long es)
+swapi(char *ii, char *ij, usize es)
{
long *i, *j, c;
@@ -42,9 +42,9 @@ swapi(char *ii, char *ij, long es)
}
static char*
-pivot(char *a, long n, Sort *p)
+pivot(char *a, usize n, Sort *p)
{
- long j;
+ usize j;
char *pi, *pj, *pk;
j = n/6 * p->es;
@@ -69,9 +69,9 @@ pivot(char *a, long n, Sort *p)
}
static void
-qsorts(char *a, long n, Sort *p)
+qsorts(char *a, usize n, Sort *p)
{
- long j, es;
+ usize j, es;
char *pi, *pj, *pn;
es = p->es;
@@ -111,7 +111,7 @@ qsorts(char *a, long n, Sort *p)
}
void
-qsort(void *va, long n, long es, int (*cmp)(void*, void*))
+qsort(void *va, usize n, usize es, int (*cmp)(void*, void*))
{
Sort s;