xlat_search: change type of integer argument to uint64_t
This is necessary for the upcoming change of xlat.val type.
All users of addflags are already prepared for this change.
* defs.h (xlat_search): Change type of integer argument to uint64_t.
* util.c (xlat_search): Likewise. Pass it by pointer.
(xlat_bsearch_compare): Treat first argument as a pointer.
Patch by Jeff Mahoney <jeffm@suse.com>.
diff --git a/defs.h b/defs.h
index 3855ce5..1643e11 100644
--- a/defs.h
+++ b/defs.h
@@ -522,7 +522,7 @@
extern int getfdpath(struct tcb *, int, char *, unsigned);
extern const char *xlookup64(const struct xlat *, const uint64_t);
-extern const char *xlat_search(const struct xlat *, const size_t, const unsigned int);
+extern const char *xlat_search(const struct xlat *, const size_t, const uint64_t);
extern unsigned long get_pagesize(void);
extern int string_to_uint(const char *str);
diff --git a/util.c b/util.c
index 2b4178c..09ce6d0 100644
--- a/util.c
+++ b/util.c
@@ -132,16 +132,16 @@
static int
xlat_bsearch_compare(const void *a, const void *b)
{
- const unsigned int val1 = (const unsigned long) a;
- const unsigned int val2 = ((const struct xlat *) b)->val;
+ const uint64_t val1 = *(const uint64_t *) a;
+ const uint64_t val2 = ((const struct xlat *) b)->val;
return (val1 > val2) ? 1 : (val1 < val2) ? -1 : 0;
}
const char *
-xlat_search(const struct xlat *xlat, const size_t nmemb, const unsigned int val)
+xlat_search(const struct xlat *xlat, const size_t nmemb, const uint64_t val)
{
const struct xlat *e =
- bsearch((const void*) (const unsigned long) val,
+ bsearch((const void*) &val,
xlat, nmemb, sizeof(*xlat), xlat_bsearch_compare);
return e ? e->str : NULL;