summaryrefslogtreecommitdiff
path: root/sys/src/libc
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 /sys/src/libc
parentc6a9c55de7e5d1d510a717cffd42648d249269db (diff)
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.
Diffstat (limited to 'sys/src/libc')
-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;