summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--lib/igt_aux.c16
-rw-r--r--lib/igt_aux.h1
2 files changed, 17 insertions, 0 deletions
diff --git a/lib/igt_aux.c b/lib/igt_aux.c
index 8ca0b60d..a23375a4 100644
--- a/lib/igt_aux.c
+++ b/lib/igt_aux.c
@@ -578,6 +578,22 @@ void igt_exchange_int(void *array, unsigned i, unsigned j)
}
/**
+ * igt_exchange_int64:
+ * @array: pointer to the array of int64_t
+ * @i: first position
+ * @j: second position
+ *
+ * Exchanges the two values at array indices @i and @j. Useful as an exchange
+ * function for igt_permute_array().
+ */
+void igt_exchange_int64(void *array, unsigned i, unsigned j)
+{
+ int64_t *a = array;
+
+ igt_swap(a[i], a[j]);
+}
+
+/**
* igt_permute_array:
* @array: pointer to array
* @size: size of the array
diff --git a/lib/igt_aux.h b/lib/igt_aux.h
index f9c75992..43dd15fe 100644
--- a/lib/igt_aux.h
+++ b/lib/igt_aux.h
@@ -118,6 +118,7 @@ bool __igt_sigiter_continue(struct __igt_sigiter *iter, bool interrupt);
for (struct timespec t__={}; igt_nsec_elapsed(&t__)>>20 < (t); )
void igt_exchange_int(void *array, unsigned i, unsigned j);
+void igt_exchange_int64(void *array, unsigned i, unsigned j);
void igt_permute_array(void *array, unsigned size,
void (*exchange_func)(void *array,
unsigned i,