+void adns__isort(void *array, int nobjs, int sz, void *tempbuf,
+ int (*needswap)(const void *a, const void *b));
+/* Does an insertion sort of array which must contain nobjs objects
+ * each sz bytes long. tempbuf must point to a buffer at least
+ * sz bytes long. needswap should return !0 if a>b (strictly, ie
+ * wrong order) 0 if a<=b (ie, order is fine).
+ */
+