virtio_gpudrmfb
     �_’I|¥‰ÓMjqØ‚¦ð¬÷À¿      File not found.
     �¾À¿      File not found.
  *   ˆl–Ü4ý( ©³( 	Å€fàB¦-ÿÂƒ/5_†I|¥�+ÂÁ h    /* SPDX-License-Identifier: GPL-2.0-only */

#ifndef __KVM_IODEV_H__
#define __KVM_IODEV_H__

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

struct kvm_io_device;
struct kvm_vcpu;

/**
 * kvm_io_device_ops are called under kvm slots_lock.
 * read and write handlers return 0 if the transaction has been handled,
 * or non-zero to have it passed to the next device.
 **/
struct kvm_io_device_ops {
	int (*read)(struct kvm_vcpu *vcpu,
		    struct kvm_io_device *this,
		    gpa_t addr,
		    int len,
		    void *val);
	int (*write)(struct kvm_vcpu *vcpu,
		     struct kvm_io_device *this,
		     gpa_t addr,
		     int len,
		     const void *val);
	void (*destructor)(struct kvm_io_device *this);
};


struct kvm_io_device {
	const struct kvm_io_device_ops *ops;
};

static inline void kvm_iodevice_init(struct kvm_io_device *dev,
				     const struct kvm_io_device_ops *ops)
{
	dev->ops = ops;
}

static inline int kvm_iodevice_read(struct kvm_vcpu *vcpu,
				    struct kvm_io_device *dev, gpa_t addr,
				    int l, void *v)
{
	return dev->ops->read ? dev->ops->read(vcpu, dev, addr, l, v)
				: -EOPNOTSUPP;
}

static inline int kvm_iodevice_write(struct kvm_vcpu *vcpu,
				     struct kvm_io_device *dev, gpa_t addr,
				     int l, const void *v)
{
	return dev->ops->write ? dev->ops->write(vcpu, dev, addr, l, v)
				 : -EOPNOTSUPP;
}

#endif /* __KVM_IODEV_H__ */
  6   	ˆl–äY>”Ð?JqA3q§® JbÑ¿Ä…|2 _�uÐb&=L‰*VBl(éÄÃ ?÷     	ELF          >    Pp     @       Í         @ 8  @                                 à     à                                       •›     •›                   À      À      À     |à     |à                  (¥     (µ     (µ     Ðê      èí                   `h     `x     `x     p      p                   ¨      ¨      ¨                                   È      È      È      $       $              Såtd   ¨      ¨      ¨                             Påtd   p`     p`     p`     „*      „*             Qåtd                                                  Råtd   (¥     (µ     (µ     ØÚ      ØÚ                      GNU   À                   GNU €z»h!%Mw)Ðø±§ŸI²¤ú    	  
  @      â� ÀÑEHÂ 0£HpÁÓ…¸f!ZŒÔ$€ €CC(L˜‚$„ZI‰  € iJC�€ � C€	 !D€‰Ã Š-j0Ä €#ä–� ”	1ÖÐ @ƒ³%°Y‰`âä+c� 3�E   Á ‚  db` `1!‘™ ‰Aq0 9nR@ @  DH`
/jÀpd²‚ € `’€úq¨G[r  @E2õe�˜²�ÀÈ€C BHP ¥6@:Z ‚ `Ì²0@„ ’FA `p©„P¶%$(¥ŒBŒp 9@   P#�4‚4 ` ‚Q ”¸B €Ã8„DKp%ÁR  €@€ ˜"¢„)i3 á¢  €&À   ÀU SA
BzŠá%" 'B"�5’AÁ0 ¨Ã.(
!��a(äÁ €@jt!¸ 
DP€@0ˆ ˆ@
 º9EØ®" L�´�2 ‰®c|T  €1�$†6Êc 
²` ä’@„  H … ”�!Î,’è4 #‚H å0ó�‘P
                                                                #      $  '  +  ,  -              /  1  4  7  8      9      :  ;  =  >  @  B      C  D  F      I      K  L  M  N  O              P  R  V  W  Y  Z  [  ]      ^  `  b  d  g  i  j  k  m  n  p  q  r  s  u  w  y      {  }    €  ƒ      …  †  ‡      ˆ  ‰  Š  ‹  Ž          �  •  —  ™  š  œ  �      Ÿ  ¡  £  ¦  ¨  «  ¬  ¯  ²  ³          ¶  ·              ¸  ¹  »          ½      ¾      ¿          À  Á  Å                  Ç  È  Ê  Ì  Ï  Ñ  Ó  Ô      Õ      Ø  Ù  Û      Ý      à  á  ã  æ  ç  é  í  ð  ó      ö  ø          ú      û  ý  ÿ                                                                  #      $      '  -  .      /      2      4  5      8  <      >  ?  A              C      E  G      H      J      M  N  P  S          V      W  X          Y  Z  ]  ^  `      d  f      h  i  j  m  p      q  s  u  w  y              z  |              €  �      ƒ  …  †          ‡  Š  Œ  �  Ž      �