0
  *   ˆl–Ü4ý( ©³( 	Å€fàB¦-ÿÂƒ-3_†I|¥�+ÂÁ ?    /* SPDX-License-Identifier: GPL-2.0 */
/*
 * Copyright (c) 2022, Oracle and/or its affiliates.
 * Copyright (c) 2022, NVIDIA CORPORATION & AFFILIATES. All rights reserved
 */
#ifndef _IOVA_BITMAP_H_
#define _IOVA_BITMAP_H_

#include <linux/types.h>
#include <linux/errno.h>

struct iova_bitmap;

typedef int (*iova_bitmap_fn_t)(struct iova_bitmap *bitmap,
				unsigned long iova, size_t length,
				void *opaque);

#if IS_ENABLED(CONFIG_IOMMUFD_DRIVER)
struct iova_bitmap *iova_bitmap_alloc(unsigned long iova, size_t length,
				      unsigned long page_size,
				      u64 __user *data);
void iova_bitmap_free(struct iova_bitmap *bitmap);
int iova_bitmap_for_each(struct iova_bitmap *bitmap, void *opaque,
			 iova_bitmap_fn_t fn);
void iova_bitmap_set(struct iova_bitmap *bitmap,
		     unsigned long iova, size_t length);
#else
static inline struct iova_bitmap *iova_bitmap_alloc(unsigned long iova,
						    size_t length,
						    unsigned long page_size,
						    u64 __user *data)
{
	return NULL;
}

static inline void iova_bitmap_free(struct iova_bitmap *bitmap)
{
}

static inline int iova_bitmap_for_each(struct iova_bitmap *bitmap, void *opaque,
				       iova_bitmap_fn_t fn)
{
	return -EOPNOTSUPP;
}

static inline void iova_bitmap_set(struct iova_bitmap *bitmap,
				   unsigned long iova, size_t length)
{
}
#endif

#endif
  5   ˆl–ßi~”Ja,jm@3q§n	•1hßÄ„d t__�uÐb&=L‰*VBl(éÄÃ ?÷     ELF          >    P"      @       xn          @ 8  @                                 Ð      Ð                                                                     @       @       @      p      p                   èY      èY      èY      è      �                   0]      0]      0]      ð      ð                   ¨      ¨      ¨                                   È      È      È      $       $              Såtd   ¨      ¨      ¨                             Påtd   E      E      E      ¤      ¤             Qåtd                                                  Råtd   èY      èY      èY                                  GNU   À                   GNU œ”¤¹¥9Þ3=X äòn£n�ö                               }Ã‹;                            è                      Þ                      U                      Ò                                             _                      �                      t                      ×                      Œ                      Á                                             È                      d                                           ,                     ²                                           ,                       F   "                   õ                          P"              __gmon_start__ _ITM_deregisterTMCloneTable _ITM_registerTMCloneTable __cxa_finalize xt_params puts xtables_strtoui xtables_service_to_port __stack_chk_fail xtables_option_parse xtables_strdup strchr inet_pton free strlen inet_ntop __strcat_chk __sprintf_chk __printf_chk xt_xlate_add libxt_NAT_init xtables_register_targets libxtables.so.12 libc.so.6 GLIBC_2.4 GLIBC_2.2.5 GLIBC_2.3.4                                     V         ii   `     ui	   j     ti	   v      èY              #      øY             à"       Z              Z       Z             ¥D      PZ             €D      ÀZ             ¥D      ðZ             €D       [             D      €[             ®D      °[             €D      à[             D      @\             ½D      p\             €D       \             D      Ð\             D       `             ÇD      `             ØD      8`             °#      X`              4      ``             �4      x`             À(      €`             0#      ˆ`             @\      �`             °<      È`             ÇD      Ø`             ÝD       a             Ð#       a             €-      (a             .      @a             À(      Ha             p#      Pa             €[      Xa         