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
73 * different purposes (for example one domain is for PCI/MSI, and the
141 * @name: Name of interrupt domain
154 * @dev: Pointer to a device that the domain represent, and that will be
189 /* Irq domain flags */
191 /* Irq domain is hierarchical */
194 /* Irq domain name was allocated in __irq_domain_add() */
197 /* Irq domain is an IPI domain with virq per cpu */
200 /* Irq domain is an IPI domain with single virq */
203 /* Irq domain implements MSIs */
206 /* Irq domain implements MSI remapping */
216 /* Irq domain doesn't translate anything */
310 extern void irq_domain_update_bus_token(struct irq_domain *domain,
353 * @size: Number of interrupts in the domain.
354 * @ops: map/unmap domain callbacks
401 extern int irq_domain_associate(struct irq_domain *domain, unsigned int irq,
403 extern void irq_domain_associate_many(struct irq_domain *domain,
419 extern struct irq_desc *__irq_resolve_mapping(struct irq_domain *domain,
423 static inline struct irq_desc *irq_resolve_mapping(struct irq_domain *domain, in irq_resolve_mapping() argument
426 return __irq_resolve_mapping(domain, hwirq, NULL); in irq_resolve_mapping()
431 * @domain: domain owning this hardware interrupt
432 * @hwirq: hardware irq number in that domain space
434 static inline unsigned int irq_find_mapping(struct irq_domain *domain, in irq_find_mapping() argument
439 if (__irq_resolve_mapping(domain, hwirq, &irq)) in irq_find_mapping()
445 static inline unsigned int irq_linear_revmap(struct irq_domain *domain, in irq_linear_revmap() argument
448 return irq_find_mapping(domain, hwirq); in irq_linear_revmap()
475 int irq_reserve_ipi(struct irq_domain *domain, const struct cpumask *dest);
479 extern struct irq_data *irq_domain_get_irq_data(struct irq_domain *domain,
481 extern void irq_domain_set_info(struct irq_domain *domain, unsigned int virq,
505 extern int __irq_domain_alloc_irqs(struct irq_domain *domain, int irq_base,
513 static inline int irq_domain_alloc_irqs(struct irq_domain *domain, in irq_domain_alloc_irqs() argument
516 return __irq_domain_alloc_irqs(domain, -1, nr_irqs, node, arg, false, in irq_domain_alloc_irqs()
520 extern int irq_domain_alloc_irqs_hierarchy(struct irq_domain *domain,
523 extern int irq_domain_set_hwirq_and_chip(struct irq_domain *domain,
528 extern void irq_domain_free_irqs_common(struct irq_domain *domain,
531 extern void irq_domain_free_irqs_top(struct irq_domain *domain,
534 extern int irq_domain_push_irq(struct irq_domain *domain, int virq, void *arg);
535 extern int irq_domain_pop_irq(struct irq_domain *domain, int virq);
537 extern int irq_domain_alloc_irqs_parent(struct irq_domain *domain,
541 extern void irq_domain_free_irqs_parent(struct irq_domain *domain,
545 extern int irq_domain_disconnect_hierarchy(struct irq_domain *domain,
548 static inline bool irq_domain_is_hierarchy(struct irq_domain *domain) in irq_domain_is_hierarchy() argument
550 return domain->flags & IRQ_DOMAIN_FLAG_HIERARCHY; in irq_domain_is_hierarchy()
553 static inline bool irq_domain_is_ipi(struct irq_domain *domain) in irq_domain_is_ipi() argument
555 return domain->flags & in irq_domain_is_ipi()
559 static inline bool irq_domain_is_ipi_per_cpu(struct irq_domain *domain) in irq_domain_is_ipi_per_cpu() argument
561 return domain->flags & IRQ_DOMAIN_FLAG_IPI_PER_CPU; in irq_domain_is_ipi_per_cpu()
564 static inline bool irq_domain_is_ipi_single(struct irq_domain *domain) in irq_domain_is_ipi_single() argument
566 return domain->flags & IRQ_DOMAIN_FLAG_IPI_SINGLE; in irq_domain_is_ipi_single()
569 static inline bool irq_domain_is_msi(struct irq_domain *domain) in irq_domain_is_msi() argument
571 return domain->flags & IRQ_DOMAIN_FLAG_MSI; in irq_domain_is_msi()
574 static inline bool irq_domain_is_msi_remap(struct irq_domain *domain) in irq_domain_is_msi_remap() argument
576 return domain->flags & IRQ_DOMAIN_FLAG_MSI_REMAP; in irq_domain_is_msi_remap()
579 extern bool irq_domain_hierarchical_is_msi_remap(struct irq_domain *domain);
582 static inline int irq_domain_alloc_irqs(struct irq_domain *domain, in irq_domain_alloc_irqs() argument
591 static inline bool irq_domain_is_hierarchy(struct irq_domain *domain) in irq_domain_is_hierarchy() argument
596 static inline bool irq_domain_is_ipi(struct irq_domain *domain) in irq_domain_is_ipi() argument
601 static inline bool irq_domain_is_ipi_per_cpu(struct irq_domain *domain) in irq_domain_is_ipi_per_cpu() argument
606 static inline bool irq_domain_is_ipi_single(struct irq_domain *domain) in irq_domain_is_ipi_single() argument
611 static inline bool irq_domain_is_msi(struct irq_domain *domain) in irq_domain_is_msi() argument
616 static inline bool irq_domain_is_msi_remap(struct irq_domain *domain) in irq_domain_is_msi_remap() argument
622 irq_domain_hierarchical_is_msi_remap(struct irq_domain *domain) in irq_domain_hierarchical_is_msi_remap() argument