10
     	�_’I|¥‰ÓMjqØ‚¦ð¬÷ÄÃ      	File not found.
  *   ˆl–Ü4ý( ©³( 	Å€fàB¦-ÿÂƒ‚ç_†I|¥�+ÆÅ À    /* SPDX-License-Identifier: GPL-2.0-or-later */
/*
 *
 *  Copyright (C) 2007 Christian Pellegrin
 */


#ifndef _LINUX_SERIAL_MAX3100_H
#define _LINUX_SERIAL_MAX3100_H 1


/**
 * struct plat_max3100 - MAX3100 SPI UART platform data
 * @loopback:            force MAX3100 in loopback
 * @crystal:             1 for 3.6864 Mhz, 0 for 1.8432
 * @max3100_hw_suspend:  MAX3100 has a shutdown pin. This is a hook
 *                       called on suspend and resume to activate it.
 * @poll_time:           poll time for CTS signal in ms, 0 disables (so no hw
 *                       flow ctrl is possible but you have less CPU usage)
 *
 * You should use this structure in your machine description to specify
 * how the MAX3100 is connected. Example:
 *
 * static struct plat_max3100 max3100_plat_data = {
 *  .loopback = 0,
 *  .crystal = 0,
 *  .poll_time = 100,
 * };
 *
 * static struct spi_board_info spi_board_info[] = {
 * {
 *  .modalias	= "max3100",
 *  .platform_data	= &max3100_plat_data,
 *  .irq		= IRQ_EINT12,
 *  .max_speed_hz	= 5*1000*1000,
 *  .chip_select	= 0,
 * },
 * };
 *
 **/
struct plat_max3100 {
	int loopback;
	int crystal;
	void (*max3100_hw_suspend) (int suspend);
	int poll_time;
};

#endif
     �ÀÆÅ      File not found.
     �Àa–ßi~”*j"Tâ€nàApS�ÿÆ      File not found.
     ˆÀÄ„-Ï¿¾Æ 4^    /* SPDX-License-Identifier: GPL-2.0-only */
/*
 * VFIO API definition
 *
 * Copyright (C) 2012 Red Hat, Inc.  All rights reserved.
 *     Author: Alex Williamson <alex.williamson@redhat.com>
 */
#ifndef VFIO_H
#define VFIO_H


#include <linux/iommu.h>
#include <linux/mm.h>
#include <linux/workqueue.h>
#include <linux/poll.h>
#include <linux/cdev.h>
#include <uapi/linux/vfio.h>
#include <linux/iova_bitmap.h>

struct kvm;
struct iommufd_ctx;
struct iommufd_device;
struct iommufd_access;

/*
 * VFIO devices can be placed in a set, this allows all devices to share this
 * structure and the VFIO core will provide a lock that is held around
 * open_device()/close_device() for all devices in the set.
 */
struct vfio_device_set {
	void *set_id;
	struct mutex lock;
	struct list_head device_list;
	unsigned int device_count;
};

struct vfio_device {
	struct device *dev;
	const struct vfio_device_ops *ops;
	/*
	 * mig_ops/log_ops is a static property of the vfio_device which must
	 * be set prior to registering the vfio_device.
	 */
	const struct vfio_migration_ops *mig_ops;
	const struct vfio_log_ops *log_ops;
#if IS_ENABLED(CONFIG_VFIO_GROUP)
	struct vfio_group *group;
	struct list_head group_next;
	struct list_head iommu_entry;
#endif
	struct vfio_device_set *dev_set;
	struct list_head dev_set_list;
	unsigned int migration_flags;
	struct kvm *kvm;

	/* Members below here are private, not for driver use */
	unsigned int index;
	struct device device;	/* device.kref covers object life circle */
#if IS_ENABLED(CONFIG_VFIO_DEVICE_CDEV)
	struct cdev cdev;
#endif
	refcount_t refcount;	/* user count on registered device*/
	unsigned int open_count;
	struct completion comp;
	struct iommufd_access *iommufd_access;
	void (*put_kvm)(struct kvm *kvm);
	struct inode *inode;
#if IS_ENABLED(CONFIG_IOMMUFD)
	struct iommufd_device *iommufd_device;
	u8 iommufd_attached:1;
#endif
	u8 cdev_opened:1;
#ifdef CONFIG_DEBUG_FS
	/*
	 * debug_root is a static property of the vfio_device
	 * which must be set prior to registering the vfio_device.
	 */
	struct dentry *debug_root;
#endif
};

/**
 * struct vfio_device_ops - VFIO bus driver device callbacks
 *
 * @name: Name of the device driver.
 * @init: initialize private fields in device structure
 * @release: Reclaim private fields in device structure
 * @bind_iommufd: Called when binding the device to an iommufd
 * @unbind_iommufd: Opposite of bind_iommufd
 * @attach_ioas: Called when attaching device to an IOAS/HWPT managed by the
 *		 bound iommufd. Undo in unbind_iommufd if @detach_ioas is not
 *		 called.
 * @detach_ioas: Opposite of attach_ioas
 * @open_device: Cal