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

parisc-device.h (1964B)


      1/* SPDX-License-Identifier: GPL-2.0 */
      2#ifndef _ASM_PARISC_PARISC_DEVICE_H_
      3#define _ASM_PARISC_PARISC_DEVICE_H_
      4
      5#include <linux/device.h>
      6
      7struct parisc_device {
      8	struct resource hpa;		/* Hard Physical Address */
      9	struct parisc_device_id id;
     10	struct parisc_driver *driver;	/* Driver for this device */
     11	char		name[80];	/* The hardware description */
     12	int		irq;
     13	int		aux_irq;	/* Some devices have a second IRQ */
     14
     15	char		hw_path;        /* The module number on this bus */
     16	unsigned int	num_addrs;	/* some devices have additional address ranges. */
     17	unsigned long	*addr;          /* which will be stored here */
     18 
     19#ifdef CONFIG_64BIT
     20	/* parms for pdc_pat_cell_module() call */
     21	unsigned long	pcell_loc;	/* Physical Cell location */
     22	unsigned long	mod_index;	/* PAT specific - Misc Module info */
     23
     24	/* generic info returned from pdc_pat_cell_module() */
     25	unsigned long	mod_info;	/* PAT specific - Misc Module info */
     26	unsigned long	pmod_loc;	/* physical Module location */
     27	unsigned long	mod0;
     28#endif
     29	u64		dma_mask;	/* DMA mask for I/O */
     30	struct device 	dev;
     31};
     32
     33struct parisc_driver {
     34	struct parisc_driver *next;
     35	char *name; 
     36	const struct parisc_device_id *id_table;
     37	int (*probe)(struct parisc_device *dev); /* New device discovered */
     38	void (*remove)(struct parisc_device *dev);
     39	struct device_driver drv;
     40};
     41
     42
     43#define to_parisc_device(d)	container_of(d, struct parisc_device, dev)
     44#define to_parisc_driver(d)	container_of(d, struct parisc_driver, drv)
     45#define parisc_parent(d)	to_parisc_device(d->dev.parent)
     46
     47static inline const char *parisc_pathname(struct parisc_device *d)
     48{
     49	return dev_name(&d->dev);
     50}
     51
     52static inline void
     53parisc_set_drvdata(struct parisc_device *d, void *p)
     54{
     55	dev_set_drvdata(&d->dev, p);
     56}
     57
     58static inline void *
     59parisc_get_drvdata(struct parisc_device *d)
     60{
     61	return dev_get_drvdata(&d->dev);
     62}
     63
     64extern struct bus_type parisc_bus_type;
     65
     66int iosapic_serial_irq(struct parisc_device *dev);
     67
     68#endif /*_ASM_PARISC_PARISC_DEVICE_H_*/