Lines Matching full:domain
14 * Interrupt controller "domain" data structure. This could be defined as a
15 * irq domain controller. That is, it handles the mapping between hardware
16 * and virtual interrupt numbers for a given interrupt domain. The domain
18 * (though a domain can cover more than one PIC if they have a flat number
19 * model). It's the domain callbacks that are responsible for setting the
23 * identify the domain. In some cases, and in order to preserve source
69 * different purposes (for example one domain is for PCI/MSI, and the
137 * @name: Name of interrupt domain
182 /* Irq domain flags */
184 /* Irq domain is hierarchical */
187 /* Irq domain name was allocated in __irq_domain_add() */
190 /* Irq domain is an IPI domain with virq per cpu */
193 /* Irq domain is an IPI domain with single virq */
196 /* Irq domain implements MSIs */
199 /* Irq domain implements MSI remapping */
209 /* Irq domain doesn't translate anything */
296 extern void irq_domain_update_bus_token(struct irq_domain *domain,
339 * @size: Number of interrupts in the domain.
340 * @ops: map/unmap domain callbacks
387 extern int irq_domain_associate(struct irq_domain *domain, unsigned int irq,
389 extern void irq_domain_associate_many(struct irq_domain *domain,
405 extern struct irq_desc *__irq_resolve_mapping(struct irq_domain *domain,
409 static inline struct irq_desc *irq_resolve_mapping(struct irq_domain *domain, in irq_resolve_mapping() argument
412 return __irq_resolve_mapping(domain, hwirq, NULL); in irq_resolve_mapping()
417 * @domain: domain owning this hardware interrupt
418 * @hwirq: hardware irq number in that domain space
420 static inline unsigned int irq_find_mapping(struct irq_domain *domain, in irq_find_mapping() argument
425 if (__irq_resolve_mapping(domain, hwirq, &irq)) in irq_find_mapping()
431 static inline unsigned int irq_linear_revmap(struct irq_domain *domain, in irq_linear_revmap() argument
434 return irq_find_mapping(domain, hwirq); in irq_linear_revmap()
461 int irq_reserve_ipi(struct irq_domain *domain, const struct cpumask *dest);
465 extern struct irq_data *irq_domain_get_irq_data(struct irq_domain *domain,
467 extern void irq_domain_set_info(struct irq_domain *domain, unsigned int virq,
490 extern int __irq_domain_alloc_irqs(struct irq_domain *domain, int irq_base,
498 static inline int irq_domain_alloc_irqs(struct irq_domain *domain, in irq_domain_alloc_irqs() argument
501 return __irq_domain_alloc_irqs(domain, -1, nr_irqs, node, arg, false, in irq_domain_alloc_irqs()
505 extern int irq_domain_alloc_irqs_hierarchy(struct irq_domain *domain,
508 extern int irq_domain_set_hwirq_and_chip(struct irq_domain *domain,
513 extern void irq_domain_free_irqs_common(struct irq_domain *domain,
516 extern void irq_domain_free_irqs_top(struct irq_domain *domain,
519 extern int irq_domain_push_irq(struct irq_domain *domain, int virq, void *arg);
520 extern int irq_domain_pop_irq(struct irq_domain *domain, int virq);
522 extern int irq_domain_alloc_irqs_parent(struct irq_domain *domain,
526 extern void irq_domain_free_irqs_parent(struct irq_domain *domain,
530 extern int irq_domain_disconnect_hierarchy(struct irq_domain *domain,
533 static inline bool irq_domain_is_hierarchy(struct irq_domain *domain) in irq_domain_is_hierarchy() argument
535 return domain->flags & IRQ_DOMAIN_FLAG_HIERARCHY; in irq_domain_is_hierarchy()
538 static inline bool irq_domain_is_ipi(struct irq_domain *domain) in irq_domain_is_ipi() argument
540 return domain->flags & in irq_domain_is_ipi()
544 static inline bool irq_domain_is_ipi_per_cpu(struct irq_domain *domain) in irq_domain_is_ipi_per_cpu() argument
546 return domain->flags & IRQ_DOMAIN_FLAG_IPI_PER_CPU; in irq_domain_is_ipi_per_cpu()
549 static inline bool irq_domain_is_ipi_single(struct irq_domain *domain) in irq_domain_is_ipi_single() argument
551 return domain->flags & IRQ_DOMAIN_FLAG_IPI_SINGLE; in irq_domain_is_ipi_single()
554 static inline bool irq_domain_is_msi(struct irq_domain *domain) in irq_domain_is_msi() argument
556 return domain->flags & IRQ_DOMAIN_FLAG_MSI; in irq_domain_is_msi()
559 static inline bool irq_domain_is_msi_remap(struct irq_domain *domain) in irq_domain_is_msi_remap() argument
561 return domain->flags & IRQ_DOMAIN_FLAG_MSI_REMAP; in irq_domain_is_msi_remap()
564 extern bool irq_domain_hierarchical_is_msi_remap(struct irq_domain *domain);
567 static inline int irq_domain_alloc_irqs(struct irq_domain *domain, in irq_domain_alloc_irqs() argument
576 static inline bool irq_domain_is_hierarchy(struct irq_domain *domain) in irq_domain_is_hierarchy() argument
581 static inline bool irq_domain_is_ipi(struct irq_domain *domain) in irq_domain_is_ipi() argument
586 static inline bool irq_domain_is_ipi_per_cpu(struct irq_domain *domain) in irq_domain_is_ipi_per_cpu() argument
591 static inline bool irq_domain_is_ipi_single(struct irq_domain *domain) in irq_domain_is_ipi_single() argument
596 static inline bool irq_domain_is_msi(struct irq_domain *domain) in irq_domain_is_msi() argument
601 static inline bool irq_domain_is_msi_remap(struct irq_domain *domain) in irq_domain_is_msi_remap() argument
607 irq_domain_hierarchical_is_msi_remap(struct irq_domain *domain) in irq_domain_hierarchical_is_msi_remap() argument