]>
Commit | Line | Data |
---|---|---|
736baef4 JR |
1 | /* |
2 | * Copyright (C) 2012 Advanced Micro Devices, Inc. | |
3 | * Author: Joerg Roedel <joerg.roedel@amd.com> | |
4 | * | |
5 | * This program is free software; you can redistribute it and/or modify it | |
6 | * under the terms of the GNU General Public License version 2 as published | |
7 | * by the Free Software Foundation. | |
8 | * | |
9 | * This program is distributed in the hope that it will be useful, | |
10 | * but WITHOUT ANY WARRANTY; without even the implied warranty of | |
11 | * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the | |
12 | * GNU General Public License for more details. | |
13 | * | |
14 | * You should have received a copy of the GNU General Public License | |
15 | * along with this program; if not, write to the Free Software | |
16 | * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA | |
17 | * | |
18 | * This header file contains the interface of the interrupt remapping code to | |
19 | * the x86 interrupt management code. | |
20 | */ | |
21 | ||
8a8f422d SS |
22 | #ifndef __X86_IRQ_REMAPPING_H |
23 | #define __X86_IRQ_REMAPPING_H | |
736baef4 JR |
24 | |
25 | #ifdef CONFIG_IRQ_REMAP | |
26 | ||
0c3f173a JR |
27 | struct IO_APIC_route_entry; |
28 | struct io_apic_irq_attr; | |
5e2b930b | 29 | struct pci_dev; |
0c3f173a | 30 | |
95a02e97 | 31 | extern int irq_remapping_enabled; |
736baef4 | 32 | |
95a02e97 SS |
33 | extern void setup_irq_remapping_ops(void); |
34 | extern int irq_remapping_supported(void); | |
35 | extern int irq_remapping_prepare(void); | |
36 | extern int irq_remapping_enable(void); | |
37 | extern void irq_remapping_disable(void); | |
38 | extern int irq_remapping_reenable(int); | |
39 | extern int irq_remap_enable_fault_handling(void); | |
40 | extern int setup_ioapic_remapped_entry(int irq, | |
41 | struct IO_APIC_route_entry *entry, | |
42 | unsigned int destination, | |
43 | int vector, | |
44 | struct io_apic_irq_attr *attr); | |
45 | extern int set_remapped_irq_affinity(struct irq_data *data, | |
46 | const struct cpumask *mask, | |
47 | bool force); | |
48 | extern void free_remapped_irq(int irq); | |
49 | extern void compose_remapped_msi_msg(struct pci_dev *pdev, | |
50 | unsigned int irq, unsigned int dest, | |
51 | struct msi_msg *msg, u8 hpet_id); | |
52 | extern int msi_alloc_remapped_irq(struct pci_dev *pdev, int irq, int nvec); | |
53 | extern int msi_setup_remapped_irq(struct pci_dev *pdev, unsigned int irq, | |
54 | int index, int sub_handle); | |
55 | extern int setup_hpet_msi_remapped(unsigned int irq, unsigned int id); | |
736baef4 JR |
56 | |
57 | #else /* CONFIG_IRQ_REMAP */ | |
58 | ||
95a02e97 | 59 | #define irq_remapping_enabled 0 |
736baef4 | 60 | |
95a02e97 SS |
61 | static inline void setup_irq_remapping_ops(void) { } |
62 | static inline int irq_remapping_supported(void) { return 0; } | |
63 | static inline int irq_remapping_prepare(void) { return -ENODEV; } | |
64 | static inline int irq_remapping_enable(void) { return -ENODEV; } | |
65 | static inline void irq_remapping_disable(void) { } | |
66 | static inline int irq_remapping_reenable(int eim) { return -ENODEV; } | |
67 | static inline int irq_remap_enable_fault_handling(void) { return -ENODEV; } | |
68 | static inline int setup_ioapic_remapped_entry(int irq, | |
69 | struct IO_APIC_route_entry *entry, | |
70 | unsigned int destination, | |
71 | int vector, | |
72 | struct io_apic_irq_attr *attr) | |
0c3f173a JR |
73 | { |
74 | return -ENODEV; | |
75 | } | |
95a02e97 SS |
76 | static inline int set_remapped_irq_affinity(struct irq_data *data, |
77 | const struct cpumask *mask, | |
78 | bool force) | |
4c1bad6a JR |
79 | { |
80 | return 0; | |
81 | } | |
95a02e97 SS |
82 | static inline void free_remapped_irq(int irq) { } |
83 | static inline void compose_remapped_msi_msg(struct pci_dev *pdev, | |
84 | unsigned int irq, unsigned int dest, | |
85 | struct msi_msg *msg, u8 hpet_id) | |
5e2b930b JR |
86 | { |
87 | } | |
95a02e97 | 88 | static inline int msi_alloc_remapped_irq(struct pci_dev *pdev, int irq, int nvec) |
5e2b930b JR |
89 | { |
90 | return -ENODEV; | |
91 | } | |
95a02e97 SS |
92 | static inline int msi_setup_remapped_irq(struct pci_dev *pdev, unsigned int irq, |
93 | int index, int sub_handle) | |
5e2b930b JR |
94 | { |
95 | return -ENODEV; | |
96 | } | |
95a02e97 | 97 | static inline int setup_hpet_msi_remapped(unsigned int irq, unsigned int id) |
5e2b930b JR |
98 | { |
99 | return -ENODEV; | |
100 | } | |
736baef4 JR |
101 | #endif /* CONFIG_IRQ_REMAP */ |
102 | ||
8a8f422d | 103 | #endif /* __X86_IRQ_REMAPPING_H */ |