diff options
Diffstat (limited to 'include/linux/interrupt.h')
| -rw-r--r-- | include/linux/interrupt.h | 19 | 
1 files changed, 17 insertions, 2 deletions
| diff --git a/include/linux/interrupt.h b/include/linux/interrupt.h index 1d6711c28271..c672f34235e7 100644 --- a/include/linux/interrupt.h +++ b/include/linux/interrupt.h @@ -247,10 +247,23 @@ struct irq_affinity_notify {   *			the MSI(-X) vector space   * @post_vectors:	Don't apply affinity to @post_vectors at end of   *			the MSI(-X) vector space + * @nr_sets:		Length of passed in *sets array + * @sets:		Number of affinitized sets   */  struct irq_affinity {  	int	pre_vectors;  	int	post_vectors; +	int	nr_sets; +	int	*sets; +}; + +/** + * struct irq_affinity_desc - Interrupt affinity descriptor + * @mask:	cpumask to hold the affinity assignment + */ +struct irq_affinity_desc { +	struct cpumask	mask; +	unsigned int	is_managed : 1;  };  #if defined(CONFIG_SMP) @@ -299,7 +312,9 @@ extern int irq_set_affinity_hint(unsigned int irq, const struct cpumask *m);  extern int  irq_set_affinity_notifier(unsigned int irq, struct irq_affinity_notify *notify); -struct cpumask *irq_create_affinity_masks(int nvec, const struct irq_affinity *affd); +struct irq_affinity_desc * +irq_create_affinity_masks(int nvec, const struct irq_affinity *affd); +  int irq_calc_affinity_vectors(int minvec, int maxvec, const struct irq_affinity *affd);  #else /* CONFIG_SMP */ @@ -333,7 +348,7 @@ irq_set_affinity_notifier(unsigned int irq, struct irq_affinity_notify *notify)  	return 0;  } -static inline struct cpumask * +static inline struct irq_affinity_desc *  irq_create_affinity_masks(int nvec, const struct irq_affinity *affd)  {  	return NULL; | 
