+static void memswap(void *av, void *bv, int size)
+{
+ char tmpbuf[512];
+ char *a = av, *b = bv;
+
+ while (size > 0) {
+ int thislen = min(size, sizeof(tmpbuf));
+ memcpy(tmpbuf, a, thislen);
+ memcpy(a, b, thislen);
+ memcpy(b, tmpbuf, thislen);
+ a += thislen;
+ b += thislen;
+ size -= thislen;
+ }
+}
+