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
71 * different purposes (for example one domain is for PCI/MSI, and the
139 * @name: Name of interrupt domain
153 * @debugfs_file: dentry for the domain debugfs file
190 /* Irq domain flags */
192 /* Irq domain is hierarchical */
195 /* Irq domain name was allocated in __irq_domain_add() */
198 /* Irq domain is an IPI domain with virq per cpu */
201 /* Irq domain is an IPI domain with single virq */
204 /* Irq domain implements MSIs */
207 /* Irq domain implements MSI remapping */
295 extern void irq_domain_update_bus_token(struct irq_domain *domain,
329 * @size: Number of interrupts in the domain.
330 * @ops: map/unmap domain callbacks
379 extern int irq_domain_associate(struct irq_domain *domain, unsigned int irq,
381 extern void irq_domain_associate_many(struct irq_domain *domain,
384 extern void irq_domain_disassociate(struct irq_domain *domain,
402 * @domain: domain owning this hardware interrupt
403 * @hwirq: hardware irq number in that domain space
410 static inline unsigned int irq_linear_revmap(struct irq_domain *domain, in irq_linear_revmap() argument
413 return hwirq < domain->revmap_size ? domain->linear_revmap[hwirq] : 0; in irq_linear_revmap()
418 extern int irq_create_strict_mappings(struct irq_domain *domain,
452 int irq_reserve_ipi(struct irq_domain *domain, const struct cpumask *dest);
456 extern struct irq_data *irq_domain_get_irq_data(struct irq_domain *domain,
458 extern void irq_domain_set_info(struct irq_domain *domain, unsigned int virq,
481 extern int __irq_domain_alloc_irqs(struct irq_domain *domain, int irq_base,
489 static inline int irq_domain_alloc_irqs(struct irq_domain *domain, in irq_domain_alloc_irqs() argument
492 return __irq_domain_alloc_irqs(domain, -1, nr_irqs, node, arg, false, in irq_domain_alloc_irqs()
496 extern int irq_domain_alloc_irqs_hierarchy(struct irq_domain *domain,
499 extern int irq_domain_set_hwirq_and_chip(struct irq_domain *domain,
504 extern void irq_domain_free_irqs_common(struct irq_domain *domain,
507 extern void irq_domain_free_irqs_top(struct irq_domain *domain,
510 extern int irq_domain_push_irq(struct irq_domain *domain, int virq, void *arg);
511 extern int irq_domain_pop_irq(struct irq_domain *domain, int virq);
513 extern int irq_domain_alloc_irqs_parent(struct irq_domain *domain,
517 extern void irq_domain_free_irqs_parent(struct irq_domain *domain,
521 extern int irq_domain_disconnect_hierarchy(struct irq_domain *domain,
524 static inline bool irq_domain_is_hierarchy(struct irq_domain *domain) in irq_domain_is_hierarchy() argument
526 return domain->flags & IRQ_DOMAIN_FLAG_HIERARCHY; in irq_domain_is_hierarchy()
529 static inline bool irq_domain_is_ipi(struct irq_domain *domain) in irq_domain_is_ipi() argument
531 return domain->flags & in irq_domain_is_ipi()
535 static inline bool irq_domain_is_ipi_per_cpu(struct irq_domain *domain) in irq_domain_is_ipi_per_cpu() argument
537 return domain->flags & IRQ_DOMAIN_FLAG_IPI_PER_CPU; in irq_domain_is_ipi_per_cpu()
540 static inline bool irq_domain_is_ipi_single(struct irq_domain *domain) in irq_domain_is_ipi_single() argument
542 return domain->flags & IRQ_DOMAIN_FLAG_IPI_SINGLE; in irq_domain_is_ipi_single()
545 static inline bool irq_domain_is_msi(struct irq_domain *domain) in irq_domain_is_msi() argument
547 return domain->flags & IRQ_DOMAIN_FLAG_MSI; in irq_domain_is_msi()
550 static inline bool irq_domain_is_msi_remap(struct irq_domain *domain) in irq_domain_is_msi_remap() argument
552 return domain->flags & IRQ_DOMAIN_FLAG_MSI_REMAP; in irq_domain_is_msi_remap()
555 extern bool irq_domain_hierarchical_is_msi_remap(struct irq_domain *domain);
558 static inline int irq_domain_alloc_irqs(struct irq_domain *domain, in irq_domain_alloc_irqs() argument
567 static inline bool irq_domain_is_hierarchy(struct irq_domain *domain) in irq_domain_is_hierarchy() argument
572 static inline bool irq_domain_is_ipi(struct irq_domain *domain) in irq_domain_is_ipi() argument
577 static inline bool irq_domain_is_ipi_per_cpu(struct irq_domain *domain) in irq_domain_is_ipi_per_cpu() argument
582 static inline bool irq_domain_is_ipi_single(struct irq_domain *domain) in irq_domain_is_ipi_single() argument
587 static inline bool irq_domain_is_msi(struct irq_domain *domain) in irq_domain_is_msi() argument
592 static inline bool irq_domain_is_msi_remap(struct irq_domain *domain) in irq_domain_is_msi_remap() argument
598 irq_domain_hierarchical_is_msi_remap(struct irq_domain *domain) in irq_domain_hierarchical_is_msi_remap() argument