From 43242e6656c49ece16c8fc9490674b48cec33111 Mon Sep 17 00:00:00 2001 From: "Dmitry V. Levin" Date: Thu, 28 Apr 2016 18:37:54 +0000 Subject: [PATCH] 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 . --- defs.h | 2 +- util.c | 8 ++++---- 2 files changed, 5 insertions(+), 5 deletions(-) diff --git a/defs.h b/defs.h index 3855ce5f..1643e119 100644 --- a/defs.h +++ b/defs.h @@ -522,7 +522,7 @@ extern int pathtrace_match(struct tcb *); 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 2b4178ca..09ce6d0b 100644 --- a/util.c +++ b/util.c @@ -132,16 +132,16 @@ xlookup64(const struct xlat *xlat, const uint64_t val) 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; -- 2.40.0