On 3/2/2021 2:48 PM, ramesh.thomas(a)intel.com wrote:
From: Ramesh Thomas <ramesh.thomas(a)intel.com>
Makes 64 bit data type portable across 32 bit and 62 bit targets. This
fixes compilation errors reported by 32 bit compilers.
Signed-off-by: Ramesh Thomas <ramesh.thomas(a)intel.com>
Reported-by: Libor Pecháček <lpechacek(a)gmx.com>
Reported-by: Yunying Sun <yunying.sun(a)intel.com>
Reviewed-by: Dave Jiang <dave.jiang(a)intel.com>
> ---
> ***Please subscribe to mailing list***
> A server error is not allowing me to authorize postings from
> non-subsribers.
> Subsribe here -
>
https://lists.01.org/postorius/lists/accel-config.lists.01.org/
>
> accfg/config.c | 12 ++++++------
> accfg/config_attr.c | 2 +-
> accfg/enable.c | 2 +-
> accfg/lib/libaccfg.c | 38 +++++++++++++++++++-------------------
> accfg/lib/private.h | 10 +++++-----
> accfg/libaccel_config.h | 18 +++++++++---------
> accfg/list.c | 8 ++++----
> ccan/endian/endian.h | 2 +-
> util/bitmap.c | 34 +++++++++++++++++-----------------
> util/bitmap.h | 18 +++++++++---------
> util/filter.h | 2 +-
> util/json.c | 32 ++++++++++++++++----------------
> util/json.h | 18 +++++++++---------
> util/size.c | 6 +++---
> util/size.h | 12 +++++++-----
> 15 files changed, 108 insertions(+), 106 deletions(-)
>
> diff --git a/accfg/config.c b/accfg/config.c
> index dadf679..49f5631 100644
> --- a/accfg/config.c
> +++ b/accfg/config.c
> @@ -32,9 +32,9 @@ static struct config {
> char *buf;
> } config;
>
> -static unsigned long config_opts_to_flags(void)
> +static uint64_t config_opts_to_flags(void)
> {
> - unsigned long flags = 0;
> + uint64_t flags = 0;
> return flags;
> }
>
> @@ -47,7 +47,7 @@ struct device_set_table {
> struct wq_set_table {
> char *name;
> int (*set_int_func)(struct accfg_wq *wq, int val);
> - int (*set_long_func)(struct accfg_wq *wq, unsigned long val);
> + int (*set_long_func)(struct accfg_wq *wq, uint64_t val);
> int (*set_str_func)(struct accfg_wq *wq, const char *val);
> bool (*is_writable)(struct accfg_wq *wq, int val);
> };
> @@ -259,7 +259,7 @@ static int wq_json_set_val(struct accfg_wq *wq, json_object
*jobj, char *key)
>
> return 0;
> } else if (wq_table[i].set_long_func) {
> - unsigned long val = json_object_get_int64(jobj);
> + uint64_t val = json_object_get_int64(jobj);
>
> if ((val == 0) && (errno == EINVAL))
> return -errno;
> @@ -563,7 +563,7 @@ static int configure_json_value(struct accfg_ctx *ctx,
> }
>
> static struct json_object *config_group_to_json(struct accfg_group *group,
> - unsigned long flags)
> + uint64_t flags)
> {
> struct json_object *jgroup = json_object_new_object();
> struct json_object *jobj = NULL;
> @@ -819,7 +819,7 @@ static bool filter_group(struct accfg_group *group,
> struct list_filter_arg *lfa = ctx->list;
> struct json_object *jgroup;
> struct json_object *container = lfa->jdevice;
> - unsigned long group_id;
> + uint64_t group_id;
> struct accfg_device *dev = accfg_group_get_device(group);
> int max_groups = accfg_device_get_max_groups(dev);
> struct accfg_json_container *jc = NULL, *iter;
> diff --git a/accfg/config_attr.c b/accfg/config_attr.c
> index f7f43b1..52a8954 100644
> --- a/accfg/config_attr.c
> +++ b/accfg/config_attr.c
> @@ -134,7 +134,7 @@ static int accel_config_parse_wq_attribs(struct accfg_device
*device,
> struct accfg_wq *wq, struct wq_parameters *wq_params)
> {
> unsigned int max_groups, max_wq_size, max_batch_size;
> - unsigned long max_transfer_size;
> + uint64_t max_transfer_size;
> int rc = 0;
>
> if (wq_params->mode) {
> diff --git a/accfg/enable.c b/accfg/enable.c
> index 34328ca..df4b887 100644
> --- a/accfg/enable.c
> +++ b/accfg/enable.c
> @@ -237,7 +237,7 @@ static int wq_action(int argc, const char **argv, const char
*usage,
> usage,
> NULL
> };
> - unsigned long dev_id, wq_id;
> + uint64_t dev_id, wq_id;
> int i, rc = 0, success = 0, fail = 0, fail_reason = 0;
> const char *all = "all";
> enum accfg_wq_state state;
> diff --git a/accfg/lib/libaccfg.c b/accfg/lib/libaccfg.c
> index ae862f8..f91f5af 100644
> --- a/accfg/lib/libaccfg.c
> +++ b/accfg/lib/libaccfg.c
> @@ -109,7 +109,7 @@ static long accfg_get_param_long(struct accfg_ctx *ctx, int dfd,
char *name)
> return strtol(buf, NULL, 0);
> }
>
> -static unsigned long long accfg_get_param_unsigned_llong(
> +static uint64_t accfg_get_param_unsigned_llong(
> struct accfg_ctx *ctx, int dfd, char *name)
> {
> int fd = openat(dfd, name, O_RDONLY);
> @@ -317,13 +317,13 @@ ACCFG_EXPORT int accfg_new(struct accfg_ctx **ctx)
>
> env = secure_getenv("ACCFG_TIMEOUT");
> if (env != NULL) {
> - unsigned long tmo;
> + uint64_t tmo;
> char *end;
>
> tmo = strtoul(env, &end, 0);
> if (tmo < ULONG_MAX && !end)
> c->timeout = tmo;
> - dbg(c, "timeout = %ld\n", tmo);
> + dbg(c, "timeout = %" PRIu64 "\n", tmo);
> }
>
> return 0;
> @@ -642,7 +642,7 @@ static void *add_wq(void *parent, int id, const char *wq_base,
> struct accfg_ctx *ctx;
> char *path;
> char *wq_base_string;
> - unsigned long device_id, wq_id;
> + uint64_t device_id, wq_id;
> int dfd;
> char *wq_type;
>
> @@ -678,7 +678,7 @@ static void *add_wq(void *parent, int id, const char *wq_base,
> }
>
> if (sscanf(basename(wq_base_string),
> - "wq%ld.%ld", &device_id, &wq_id) != 2) {
> + "wq%" PRIu64 ".%" PRIu64, &device_id, &wq_id) != 2)
{
> close(dfd);
> goto err_wq;
> }
> @@ -739,7 +739,7 @@ static void *add_group(void *parent, int id, const char
*group_base,
> char *path;
> char *group_base_string;
> int dfd;
> - unsigned long device_id, group_id;
> + uint64_t device_id, group_id;
>
> if (!device)
> return NULL;
> @@ -770,7 +770,7 @@ static void *add_group(void *parent, int id, const char
*group_base,
> goto err_group;
> }
> if (sscanf(basename(group_base_string),
> - "group%ld.%ld", &device_id, &group_id) != 2) {
> + "group%" PRIu64 ".%" PRIu64, &device_id, &group_id)
!= 2) {
> free(group);
> close(dfd);
> goto err_group;
> @@ -828,7 +828,7 @@ static void *add_engine(void *parent, int id, const char
*engine_base,
> char *path;
> char *engine_base_string;
> int dfd;
> - unsigned long device_id, engine_id;
> + uint64_t device_id, engine_id;
>
> if (!device)
> return NULL;
> @@ -861,7 +861,7 @@ static void *add_engine(void *parent, int id, const char
*engine_base,
> goto err_engine;
> }
> if (sscanf(basename(engine_base_string),
> - "engine%ld.%ld", &device_id, &engine_id) != 2) {
> + "engine%" PRIu64 ".%" PRIu64, &device_id, &engine_id)
!= 2) {
> close(dfd);
> free(path);
> free(engine);
> @@ -1205,19 +1205,19 @@ ACCFG_EXPORT unsigned int accfg_device_get_max_batch_size(
> return device->max_batch_size;
> }
>
> -ACCFG_EXPORT unsigned long accfg_device_get_max_transfer_size(
> +ACCFG_EXPORT uint64_t accfg_device_get_max_transfer_size(
> struct accfg_device *device)
> {
> return device->max_transfer_size;
> }
>
> -ACCFG_EXPORT unsigned long accfg_device_get_op_cap(
> +ACCFG_EXPORT uint64_t accfg_device_get_op_cap(
> struct accfg_device *device)
> {
> return device->opcap;
> }
>
> -ACCFG_EXPORT unsigned long accfg_device_get_gen_cap(struct accfg_device *device)
> +ACCFG_EXPORT uint64_t accfg_device_get_gen_cap(struct accfg_device *device)
> {
> return device->gencap;
> }
> @@ -1257,7 +1257,7 @@ ACCFG_EXPORT int accfg_device_get_errors(struct accfg_device
*device,
> return -errno;
> read_error = accfg_get_param_str(ctx, dfd, "errors");
> close(dfd);
> - rc = sscanf(read_error, "%lx %lx %lx %lx",
> + rc = sscanf(read_error, "%" PRIx64 " %" PRIx64 " %"
PRIx64 " %" PRIx64,
> &error->val[0], &error->val[1],
> &error->val[2], &error->val[3]);
> if (rc < 0) {
> @@ -1626,12 +1626,12 @@ ACCFG_EXPORT const char *accfg_group_get_devname(struct
accfg_group *group)
> return devpath_to_devname(group->group_path);
> }
>
> -ACCFG_EXPORT unsigned long accfg_group_get_size(struct accfg_group *group)
> +ACCFG_EXPORT uint64_t accfg_group_get_size(struct accfg_group *group)
> {
> return group->size;
> }
>
> -ACCFG_EXPORT unsigned long accfg_group_get_available_size(
> +ACCFG_EXPORT uint64_t accfg_group_get_available_size(
> struct accfg_group *group)
> {
> struct accfg_ctx *ctx = accfg_group_get_ctx(group);
> @@ -1799,7 +1799,7 @@ ACCFG_EXPORT const char *accfg_wq_get_type_name(struct accfg_wq
*wq)
> return wq->name;
> }
>
> -ACCFG_EXPORT unsigned long accfg_wq_get_size(struct accfg_wq *wq)
> +ACCFG_EXPORT uint64_t accfg_wq_get_size(struct accfg_wq *wq)
> {
> return wq->size;
> }
> @@ -1809,7 +1809,7 @@ ACCFG_EXPORT unsigned int accfg_wq_get_max_batch_size(struct
accfg_wq *wq)
> return wq->max_batch_size;
> }
>
> -ACCFG_EXPORT unsigned long accfg_wq_get_max_transfer_size(struct accfg_wq *wq)
> +ACCFG_EXPORT uint64_t accfg_wq_get_max_transfer_size(struct accfg_wq *wq)
> {
> return wq->max_transfer_size;
> }
> @@ -2096,7 +2096,7 @@ accfg_wq_set_field(wq, val, max_batch_size)
>
> #define accfg_wq_set_long_field(wq, val, field) \
> ACCFG_EXPORT int accfg_wq_set_##field( \
> - struct accfg_wq *wq, unsigned long val) \
> + struct accfg_wq *wq, uint64_t val) \
> { \
> struct accfg_ctx *ctx = accfg_wq_get_ctx(wq); \
> char *path = wq->wq_buf; \
> @@ -2105,7 +2105,7 @@ ACCFG_EXPORT int accfg_wq_set_##field( \
> rc = sprintf(wq->wq_buf, "%s/%s", wq->wq_path, #field); \
> if (rc < 0) \
> return -errno; \
> - if (sprintf(buf, "%ld", val) < 0) { \
> + if (sprintf(buf, "%" PRId64, val) < 0) { \
> err(ctx, "%s: sprintf to buf failed: %s\n", \
> accfg_wq_get_devname(wq), \
> strerror(errno)); \
> diff --git a/accfg/lib/private.h b/accfg/lib/private.h
> index e36a474..24e2ee8 100644
> --- a/accfg/lib/private.h
> +++ b/accfg/lib/private.h
> @@ -51,9 +51,9 @@ struct accfg_device {
> unsigned int token_limit;
> unsigned int cdev_major;
> unsigned int version;
> - unsigned long max_transfer_size;
> - unsigned long opcap;
> - unsigned long gencap;
> + uint64_t max_transfer_size;
> + uint64_t opcap;
> + uint64_t gencap;
> char *pasid_enabled;
> };
>
> @@ -124,7 +124,7 @@ struct accfg_wq {
> enum accfg_wq_type type;
> char *state;
> unsigned int max_batch_size;
> - unsigned long max_transfer_size;
> + uint64_t max_transfer_size;
> };
>
> #define ACCFG_EXPORT __attribute__ ((visibility("default")))
> @@ -144,7 +144,7 @@ struct accfg_ctx {
> int devices_init;
> int groups_init;
> struct list_head devices;
> - unsigned long timeout;
> + uint64_t timeout;
> void *private_data;
> };
>
> diff --git a/accfg/libaccel_config.h b/accfg/libaccel_config.h
> index 0814601..95bb5d2 100644
> --- a/accfg/libaccel_config.h
> +++ b/accfg/libaccel_config.h
> @@ -102,7 +102,7 @@ struct wq_parameters {
> unsigned int priority;
> int block_on_fault;
> unsigned int max_batch_size;
> - unsigned long max_transfer_size;
> + uint64_t max_transfer_size;
> const char *mode;
> const char *type;
> const char *name;
> @@ -167,9 +167,9 @@ unsigned int accfg_device_get_max_work_queues_size(struct
accfg_device *device);
> int accfg_device_get_numa_node(struct accfg_device *device);
> unsigned int accfg_device_get_ims_size(struct accfg_device *device);
> unsigned int accfg_device_get_max_batch_size(struct accfg_device *device);
> -unsigned long accfg_device_get_max_transfer_size(struct accfg_device *device);
> -unsigned long accfg_device_get_op_cap(struct accfg_device *device);
> -unsigned long accfg_device_get_gen_cap(struct accfg_device *device);
> +uint64_t accfg_device_get_max_transfer_size(struct accfg_device *device);
> +uint64_t accfg_device_get_op_cap(struct accfg_device *device);
> +uint64_t accfg_device_get_gen_cap(struct accfg_device *device);
> unsigned int accfg_device_get_configurable(struct accfg_device *device);
> bool accfg_device_get_pasid_enabled(struct accfg_device *device);
> bool accfg_device_get_mdev_enabled(struct accfg_device *device);
> @@ -213,8 +213,8 @@ struct accfg_group *accfg_device_group_get_by_id(struct
accfg_device *device,
> int id);
> int accfg_group_get_device_id(struct accfg_group *group);
> const char *accfg_group_get_devname(struct accfg_group *group);
> -unsigned long accfg_group_get_size(struct accfg_group *group);
> -unsigned long accfg_group_get_available_size(struct accfg_group *group);
> +uint64_t accfg_group_get_size(struct accfg_group *group);
> +uint64_t accfg_group_get_available_size(struct accfg_group *group);
> struct accfg_device *accfg_group_get_device(struct accfg_group *group);
> struct accfg_ctx *accfg_group_get_ctx(struct accfg_group *group);
> int accfg_group_get_tokens_reserved(struct accfg_group *group);
> @@ -247,7 +247,7 @@ struct accfg_wq *accfg_device_wq_get_by_id(struct accfg_device
*device,
> int id);
> const char *accfg_wq_get_devname(struct accfg_wq *wq);
> enum accfg_wq_mode accfg_wq_get_mode(struct accfg_wq *wq);
> -unsigned long accfg_wq_get_size(struct accfg_wq *wq);
> +uint64_t accfg_wq_get_size(struct accfg_wq *wq);
> int accfg_wq_get_group_id(struct accfg_wq *wq);
> int accfg_wq_get_priority(struct accfg_wq *wq);
> unsigned int accfg_wq_get_priv(struct accfg_wq *wq);
> @@ -257,7 +257,7 @@ int accfg_wq_get_cdev_minor(struct accfg_wq *wq);
> const char *accfg_wq_get_type_name(struct accfg_wq *wq);
> enum accfg_wq_type accfg_wq_get_type(struct accfg_wq *wq);
> unsigned int accfg_wq_get_max_batch_size(struct accfg_wq *wq);
> -unsigned long accfg_wq_get_max_transfer_size(struct accfg_wq *wq);
> +uint64_t accfg_wq_get_max_transfer_size(struct accfg_wq *wq);
> int accfg_wq_get_threshold(struct accfg_wq *wq);
> int accfg_wq_get_clients(struct accfg_wq *wq);
> int accfg_wq_is_enabled(struct accfg_wq *wq);
> @@ -267,7 +267,7 @@ int accfg_wq_set_group_id(struct accfg_wq *wq, int val);
> int accfg_wq_set_threshold(struct accfg_wq *wq, int val);
> int accfg_wq_set_block_on_fault(struct accfg_wq *wq, int val);
> int accfg_wq_set_max_batch_size(struct accfg_wq *wq, int val);
> -int accfg_wq_set_max_transfer_size(struct accfg_wq *wq, unsigned long val);
> +int accfg_wq_set_max_transfer_size(struct accfg_wq *wq, uint64_t val);
> int accfg_wq_set_str_mode(struct accfg_wq *wq, const char* val);
> int accfg_wq_set_mode(struct accfg_wq *wq, enum accfg_wq_mode mode);
> int accfg_wq_set_str_type(struct accfg_wq *wq, const char* val);
> diff --git a/accfg/list.c b/accfg/list.c
> index 2234e65..998ebdd 100644
> --- a/accfg/list.c
> +++ b/accfg/list.c
> @@ -25,9 +25,9 @@ static struct {
> bool save_conf;
> } list;
>
> -static unsigned long listopts_to_flags(void)
> +static uint64_t listopts_to_flags(void)
> {
> - unsigned long flags = 0;
> + uint64_t flags = 0;
>
> if (list.idle)
> flags |= UTIL_JSON_IDLE;
> @@ -50,7 +50,7 @@ do { \
> } while (0)
>
> static struct json_object *group_to_json(struct accfg_group *group,
> - unsigned long flags)
> + uint64_t flags)
> {
> struct json_object *jgroup = json_object_new_object();
> struct json_object *jobj = NULL;
> @@ -249,7 +249,7 @@ static bool filter_engine(struct accfg_engine *engine,
> static bool filter_group(struct accfg_group *group,
> struct util_filter_ctx *ctx)
> {
> - unsigned long group_id;
> + uint64_t group_id;
> struct list_filter_arg *lfa = ctx->list;
> struct json_object *jgroup;
> struct json_object *container = lfa->jdevice;
> diff --git a/ccan/endian/endian.h b/ccan/endian/endian.h
> index dc9f62e..85ee0c9 100644
> --- a/ccan/endian/endian.h
> +++ b/ccan/endian/endian.h
> @@ -95,7 +95,7 @@ static inline uint32_t bswap_32(uint32_t val)
> * Example:
> * // Output contains "1024 is 1125899906842624 as eight bytes reversed"
> * printf("1024 is %llu as eight bytes reversed\n",
> - * (unsigned long long)bswap_64(1024));
> + * (uint64_t long)bswap_64(1024));
> */
> static inline uint64_t bswap_64(uint64_t val)
> {
> diff --git a/util/bitmap.c b/util/bitmap.c
> index 2f393f2..664251d 100644
> --- a/util/bitmap.c
> +++ b/util/bitmap.c
> @@ -22,17 +22,17 @@
> #include <ccan/minmax/minmax.h>
> #include <ccan/short_types/short_types.h>
>
> -unsigned long *bitmap_alloc(unsigned long nbits)
> +uint64_t *bitmap_alloc(uint64_t nbits)
> {
> - return calloc(BITS_TO_LONGS(nbits), sizeof(unsigned long));
> + return calloc(BITS_TO_LONGS(nbits), sizeof(uint64_t));
> }
>
> -void bitmap_set(unsigned long *map, unsigned int start, int len)
> +void bitmap_set(uint64_t *map, unsigned int start, int len)
> {
> - unsigned long *p = map + BIT_WORD(start);
> + uint64_t *p = map + BIT_WORD(start);
> const unsigned int size = start + len;
> int bits_to_set = BITS_PER_LONG - (start % BITS_PER_LONG);
> - unsigned long mask_to_set = BITMAP_FIRST_WORD_MASK(start);
> + uint64_t mask_to_set = BITMAP_FIRST_WORD_MASK(start);
>
> while (len - bits_to_set >= 0) {
> *p |= mask_to_set;
> @@ -47,12 +47,12 @@ void bitmap_set(unsigned long *map, unsigned int start, int len)
> }
> }
>
> -void bitmap_clear(unsigned long *map, unsigned int start, int len)
> +void bitmap_clear(uint64_t *map, unsigned int start, int len)
> {
> - unsigned long *p = map + BIT_WORD(start);
> + uint64_t *p = map + BIT_WORD(start);
> const unsigned int size = start + len;
> int bits_to_clear = BITS_PER_LONG - (start % BITS_PER_LONG);
> - unsigned long mask_to_clear = BITMAP_FIRST_WORD_MASK(start);
> + uint64_t mask_to_clear = BITMAP_FIRST_WORD_MASK(start);
>
> while (len - bits_to_clear >= 0) {
> *p &= ~mask_to_clear;
> @@ -72,7 +72,7 @@ void bitmap_clear(unsigned long *map, unsigned int start, int len)
> * @nr: bit number to test
> * @addr: Address to start counting from
> */
> -int test_bit(unsigned int nr, const volatile unsigned long *addr)
> +int test_bit(unsigned int nr, const volatile uint64_t *addr)
> {
> return 1UL & (addr[BIT_WORD(nr)] >> (nr & (BITS_PER_LONG-1)));
> }
> @@ -82,10 +82,10 @@ int test_bit(unsigned int nr, const volatile unsigned long
*addr)
> * find_next_zero_bit. The difference is the "invert" argument, which
> * is XORed with each fetched word before searching it for one bits.
> */
> -static unsigned long _find_next_bit(const unsigned long *addr,
> - unsigned long nbits, unsigned long start, unsigned long invert)
> +static uint64_t _find_next_bit(const uint64_t *addr,
> + uint64_t nbits, uint64_t start, uint64_t invert)
> {
> - unsigned long tmp;
> + uint64_t tmp;
>
> if (!nbits || start >= nbits)
> return nbits;
> @@ -110,19 +110,19 @@ static unsigned long _find_next_bit(const unsigned long *addr,
> /*
> * Find the next set bit in a memory region.
> */
> -unsigned long find_next_bit(const unsigned long *addr, unsigned long size,
> - unsigned long offset)
> +uint64_t find_next_bit(const uint64_t *addr, uint64_t size,
> + uint64_t offset)
> {
> return _find_next_bit(addr, size, offset, 0UL);
> }
>
> -unsigned long find_next_zero_bit(const unsigned long *addr, unsigned long size,
> - unsigned long offset)
> +uint64_t find_next_zero_bit(const uint64_t *addr, uint64_t size,
> + uint64_t offset)
> {
> return _find_next_bit(addr, size, offset, ~0UL);
> }
>
> -int bitmap_full(const unsigned long *src, unsigned int nbits)
> +int bitmap_full(const uint64_t *src, unsigned int nbits)
> {
> if (small_const_nbits(nbits))
> return ! (~(*src) & BITMAP_LAST_WORD_MASK(nbits));
> diff --git a/util/bitmap.h b/util/bitmap.h
> index e88ca63..b72fd65 100644
> --- a/util/bitmap.h
> +++ b/util/bitmap.h
> @@ -21,15 +21,15 @@
> #define small_const_nbits(nbits) \
> (__builtin_constant_p(nbits) && (nbits) <= BITS_PER_LONG)
>
> -unsigned long *bitmap_alloc(unsigned long nbits);
> -void bitmap_set(unsigned long *map, unsigned int start, int len);
> -void bitmap_clear(unsigned long *map, unsigned int start, int len);
> -int test_bit(unsigned int nr, const volatile unsigned long *addr);
> -unsigned long find_next_bit(const unsigned long *addr, unsigned long size,
> - unsigned long offset);
> -unsigned long find_next_zero_bit(const unsigned long *addr, unsigned long size,
> - unsigned long offset);
> -int bitmap_full(const unsigned long *src, unsigned int nbits);
> +uint64_t *bitmap_alloc(uint64_t nbits);
> +void bitmap_set(uint64_t *map, unsigned int start, int len);
> +void bitmap_clear(uint64_t *map, unsigned int start, int len);
> +int test_bit(unsigned int nr, const volatile uint64_t *addr);
> +uint64_t find_next_bit(const uint64_t *addr, uint64_t size,
> + uint64_t offset);
> +uint64_t find_next_zero_bit(const uint64_t *addr, uint64_t size,
> + uint64_t offset);
> +int bitmap_full(const uint64_t *src, unsigned int nbits);
>
>
> #endif /* _ACCFG_BITMAP_H_ */
> diff --git a/util/filter.h b/util/filter.h
> index 1ab496f..4ba0837 100644
> --- a/util/filter.h
> +++ b/util/filter.h
> @@ -62,7 +62,7 @@ struct list_filter_arg {
> /* linked list node for each list_filter_arg */
> struct list_node list;
> /* flags to indicate command options */
> - unsigned long flags;
> + uint64_t flags;
> /* track device number during walk-through */
> int dev_num;
> /* track group_num during walk-through */
> diff --git a/util/json.c b/util/json.c
> index f8ace0d..c3f2ade 100644
> --- a/util/json.c
> +++ b/util/json.c
> @@ -27,7 +27,7 @@ static const char *wq_type_str[] = {
> static int display_size(struct json_object *jobj, struct printbuf *pbuf,
> int level, int flags)
> {
> - unsigned long long bytes = json_object_get_int64(jobj);
> + uint64_t bytes = json_object_get_int64(jobj);
> static char buf[128];
> int c;
>
> @@ -43,7 +43,7 @@ static int display_size(struct json_object *jobj, struct printbuf
*pbuf,
> */
>
> if (bytes < 5000 * 1024)
> - snprintf(buf, sizeof(buf), "%lld", bytes);
> + snprintf(buf, sizeof(buf), "%" PRId64, bytes);
> else {
> /* IEC */
> if (bytes < 2 * 1024LL * 1024LL * 1024LL) {
> @@ -78,14 +78,14 @@ static int display_size(struct json_object *jobj, struct printbuf
*pbuf,
> static int display_hex(struct json_object *jobj, struct printbuf *pbuf,
> int level, int flags)
> {
> - unsigned long long val = json_object_get_int64(jobj);
> + uint64_t val = json_object_get_int64(jobj);
> static char buf[32];
> - snprintf(buf, sizeof(buf), "\"%#llx\"", val);
> + snprintf(buf, sizeof(buf), "\"%#" PRIx64 "\"", val);
> return printbuf_memappend(pbuf, buf, strlen(buf));
> }
>
> -struct json_object *util_json_object_size(unsigned long long size,
> - unsigned long flags)
> +struct json_object *util_json_object_size(uint64_t size,
> + uint64_t flags)
> {
> struct json_object *jobj = json_object_new_int64(size);
>
> @@ -94,8 +94,8 @@ struct json_object *util_json_object_size(unsigned long long size,
> return jobj;
> }
>
> -struct json_object *util_json_object_hex(unsigned long long val,
> - unsigned long flags)
> +struct json_object *util_json_object_hex(uint64_t val,
> + uint64_t flags)
> {
> struct json_object *jobj = json_object_new_int64(val);
>
> @@ -106,7 +106,7 @@ struct json_object *util_json_object_hex(unsigned long long val,
>
> /* API used to output json object display to console */
> void util_display_json_array(FILE * f_out, struct json_object *jarray,
> - unsigned long flags)
> + uint64_t flags)
> {
> int len = json_object_array_length(jarray);
> int jflag = JSON_C_TO_STRING_PRETTY;
> @@ -125,7 +125,7 @@ void util_display_json_array(FILE * f_out, struct json_object
*jarray,
>
> /* API used to output json object display to specified file */
> void __util_display_json_array(FILE * fd, struct json_object *jarray,
> - unsigned long flags)
> + uint64_t flags)
> {
> int len = json_object_array_length(jarray);
> int jflag = JSON_C_TO_STRING_PRETTY;
> @@ -143,15 +143,15 @@ void __util_display_json_array(FILE * fd, struct json_object
*jarray,
> }
>
> struct json_object *util_device_to_json(struct accfg_device *device,
> - unsigned long flags)
> + uint64_t flags)
> {
> struct json_object *jdevice = json_object_new_object();
> struct json_object *jobj;
> struct accfg_error *error;
> enum accfg_device_state dev_state;
> int int_val;
> - unsigned long ulong_val;
> - unsigned long long ullong_val;
> + uint64_t ulong_val;
> + uint64_t ullong_val;
> bool new_bool;
> struct accfg_device_mdev *mdev;
> struct json_object *json_uuid;
> @@ -386,11 +386,11 @@ err:
> }
>
> struct json_object *util_wq_to_json(struct accfg_wq *wq,
> - unsigned long flags)
> + uint64_t flags)
> {
> struct json_object *jaccfg = json_object_new_object();
> struct json_object *jobj = NULL;
> - unsigned long size = ULLONG_MAX;
> + uint64_t size = ULLONG_MAX;
> enum accfg_wq_mode wq_mode;
> enum accfg_wq_state wq_state;
> int int_val;
> @@ -501,7 +501,7 @@ err:
> }
>
> struct json_object *util_engine_to_json(struct accfg_engine *engine,
> - unsigned long flags)
> + uint64_t flags)
> {
> struct json_object *jaccfg = json_object_new_object();
> struct json_object *jobj = NULL;
> diff --git a/util/json.h b/util/json.h
> index 5bf685b..c185f80 100644
> --- a/util/json.h
> +++ b/util/json.h
> @@ -17,17 +17,17 @@ enum util_json_flags {
>
> struct json_object;
> void util_display_json_array(FILE *f_out, struct json_object *jarray,
> - unsigned long flags);
> + uint64_t flags);
> void __util_display_json_array(FILE *fd, struct json_object *jarray,
> - unsigned long flags);
> + uint64_t flags);
> struct json_object *util_device_to_json(struct accfg_device *device,
> - unsigned long flags);
> + uint64_t flags);
> struct json_object *util_wq_to_json(struct accfg_wq *accfg_wq,
> - unsigned long flags);
> + uint64_t flags);
> struct json_object *util_engine_to_json(struct accfg_engine *accfg_engine,
> - unsigned long flags);
> -struct json_object *util_json_object_size(unsigned long long size,
> - unsigned long flags);
> -struct json_object *util_json_object_hex(unsigned long long val,
> - unsigned long flags);
> + uint64_t flags);
> +struct json_object *util_json_object_size(uint64_t size,
> + uint64_t flags);
> +struct json_object *util_json_object_hex(uint64_t val,
> + uint64_t flags);
> #endif /* __ACCFG_JSON_H__ */
> diff --git a/util/size.c b/util/size.c
> index 5f15dee..f3ef67a 100644
> --- a/util/size.c
> +++ b/util/size.c
> @@ -5,9 +5,9 @@
> #include <limits.h>
> #include <util/size.h>
>
> -unsigned long long __parse_size64(const char *str, unsigned long long *units)
> +uint64_t __parse_size64(const char *str, uint64_t *units)
> {
> - unsigned long long val, check;
> + uint64_t val, check;
> char *end;
>
> val = strtoull(str, &end, 0);
> @@ -54,7 +54,7 @@ unsigned long long __parse_size64(const char *str, unsigned long
long *units)
> return val;
> }
>
> -unsigned long long parse_size64(const char *str)
> +uint64_t parse_size64(const char *str)
> {
> return __parse_size64(str, NULL);
> }
> diff --git a/util/size.h b/util/size.h
> index ffca256..c35ec45 100644
> --- a/util/size.h
> +++ b/util/size.h
> @@ -4,6 +4,8 @@
> #ifndef _ACCFG_SIZE_H_
> #define _ACCFG_SIZE_H_
>
> +#include <stdint.h>
> +
> #define SZ_1K 0x00000400
> #define SZ_4K 0x00001000
> #define SZ_1M 0x00100000
> @@ -14,12 +16,12 @@
> #define SZ_1G 0x40000000
> #define SZ_1T 0x10000000000ULL
>
> -unsigned long long parse_size64(const char *str);
> -unsigned long long __parse_size64(const char *str, unsigned long long *units);
> +uint64_t parse_size64(const char *str);
> +uint64_t __parse_size64(const char *str, uint64_t *units);
>
> -#define ALIGN(x, a) ((((unsigned long long) x) + (a - 1)) & ~(a - 1))
> -#define ALIGN_DOWN(x, a) (((((unsigned long long) x) + a) & ~(a - 1)) - a)
> -#define BITS_PER_LONG (sizeof(unsigned long) * 8)
> +#define ALIGN(x, a) ((((uint64_t) x) + (a - 1)) & ~(a - 1))
> +#define ALIGN_DOWN(x, a) (((((uint64_t) x) + a) & ~(a - 1)) - a)
> +#define BITS_PER_LONG (sizeof(uint64_t) * 8)
> #define HPAGE_SIZE (2 << 20)
>
> #endif /* _ACCFG_SIZE_H_ */