cachepc-linux

Fork of AMDESE/linux with modifications for CachePC side-channel attack
git clone https://git.sinitax.com/sinitax/cachepc-linux
Log | Files | Refs | README | LICENSE | sfeed.txt

gio_device.h (1411B)


      1/* SPDX-License-Identifier: GPL-2.0 */
      2#include <linux/device.h>
      3#include <linux/mod_devicetable.h>
      4
      5struct gio_device_id {
      6	__u8 id;
      7};
      8
      9struct gio_device {
     10	struct device	dev;
     11	struct resource resource;
     12	unsigned int	irq;
     13	unsigned int	slotno;
     14
     15	const char	*name;
     16	struct gio_device_id id;
     17	unsigned	id32:1;
     18	unsigned	gio64:1;
     19};
     20#define to_gio_device(d) container_of(d, struct gio_device, dev)
     21
     22struct gio_driver {
     23	const char    *name;
     24	struct module *owner;
     25	const struct gio_device_id *id_table;
     26
     27	int  (*probe)(struct gio_device *, const struct gio_device_id *);
     28	void (*remove)(struct gio_device *);
     29	void (*shutdown)(struct gio_device *);
     30
     31	struct device_driver driver;
     32};
     33#define to_gio_driver(drv) container_of(drv, struct gio_driver, driver)
     34
     35extern struct gio_device *gio_dev_get(struct gio_device *);
     36extern void gio_dev_put(struct gio_device *);
     37
     38extern int gio_device_register(struct gio_device *);
     39extern void gio_device_unregister(struct gio_device *);
     40extern void gio_release_dev(struct device *);
     41
     42static inline void gio_device_free(struct gio_device *dev)
     43{
     44	gio_release_dev(&dev->dev);
     45}
     46
     47extern int gio_register_driver(struct gio_driver *);
     48extern void gio_unregister_driver(struct gio_driver *);
     49
     50#define gio_get_drvdata(_dev)	     dev_get_drvdata(&(_dev)->dev)
     51#define gio_set_drvdata(_dev, data)  dev_set_drvdata(&(_dev)->dev, (data))
     52
     53extern void gio_set_master(struct gio_device *);