Blame view

include/linux/htirq.h 1.08 KB
b24413180   Greg Kroah-Hartman   License cleanup: ...
1
  /* SPDX-License-Identifier: GPL-2.0 */
95d77884c   Eric W. Biederman   [PATCH] htirq: ti...
2
3
  #ifndef LINUX_HTIRQ_H
  #define LINUX_HTIRQ_H
49e07d8f2   Jiang Liu   x86/htirq: Use hi...
4
5
  struct pci_dev;
  struct irq_data;
ec68307cc   Eric W. Biederman   [PATCH] htirq: re...
6
7
8
9
  struct ht_irq_msg {
  	u32	address_lo;	/* low 32 bits of the ht irq message */
  	u32	address_hi;	/* high 32 bits of the it irq message */
  };
49e07d8f2   Jiang Liu   x86/htirq: Use hi...
10
11
12
13
14
15
16
17
18
19
20
  typedef void (ht_irq_update_t)(struct pci_dev *dev, int irq,
  			       struct ht_irq_msg *msg);
  
  struct ht_irq_cfg {
  	struct pci_dev *dev;
  	 /* Update callback used to cope with buggy hardware */
  	ht_irq_update_t *update;
  	unsigned pos;
  	unsigned idx;
  	struct ht_irq_msg msg;
  };
95d77884c   Eric W. Biederman   [PATCH] htirq: ti...
21
  /* Helper functions.. */
ec68307cc   Eric W. Biederman   [PATCH] htirq: re...
22
23
  void fetch_ht_irq_msg(unsigned int irq, struct ht_irq_msg *msg);
  void write_ht_irq_msg(unsigned int irq, struct ht_irq_msg *msg);
e9f7ac664   Thomas Gleixner   ht: Convert to ne...
24
25
  void mask_ht_irq(struct irq_data *data);
  void unmask_ht_irq(struct irq_data *data);
95d77884c   Eric W. Biederman   [PATCH] htirq: ti...
26
27
  
  /* The arch hook for getting things started */
49e07d8f2   Jiang Liu   x86/htirq: Use hi...
28
29
30
  int arch_setup_ht_irq(int idx, int pos, struct pci_dev *dev,
  		      ht_irq_update_t *update);
  void arch_teardown_ht_irq(unsigned int irq);
95d77884c   Eric W. Biederman   [PATCH] htirq: ti...
31

43539c38c   Eric W. Biederman   [PATCH] htirq: al...
32
  /* For drivers of buggy hardware */
43539c38c   Eric W. Biederman   [PATCH] htirq: al...
33
  int __ht_create_irq(struct pci_dev *dev, int idx, ht_irq_update_t *update);
95d77884c   Eric W. Biederman   [PATCH] htirq: ti...
34
  #endif /* LINUX_HTIRQ_H */