Function report |
Source Code:kernel\irq\ipi.c |
Create Date:2022-07-28 10:15:32 |
Last Modify:2020-03-12 14:18:49 | Copyright©Brick |
home page | Tree |
Annotation kernel can get tool activity | Download SCCT | Chinese |
Name:q_reserve_ipi() - Setup an IPI to destination cpumask*@domain: IPI domain*@dest: cpumask of cpus which can receive the IPI* Allocate a virq that can be used to send IPI to any CPU in dest mask
Proto:int irq_reserve_ipi(struct irq_domain *domain, const struct cpumask *dest)
Type:int
Parameter:
Type | Parameter | Name |
---|---|---|
struct irq_domain * | domain | |
const struct cpumask * | dest |
30 | If Not domain || Not irq_domain_is_ipi(domain) Then |
40 | nr_irqs = pumask_weight - Count of bits in *srcp*@srcp: the cpumask to count bits (< nr_cpu_ids) in. |
41 | If Not nr_irqs Then |
46 | If irq_domain_is_ipi_single(domain) Then |
55 | Else |
69 | next = cpumask_next_zero(offset, dest) |
72 | If next < nr_cpu_ids Then |
78 | virq = irq_domain_alloc_descs( - 1, nr_irqs, 0, NUMA_NO_NODE, NULL) |
79 | If virq <= 0 Then |
84 | virq = __irq_domain_alloc_irqs(domain, virq, nr_irqs, NUMA_NO_NODE, (void * )dest, true, NULL) |
87 | If virq <= 0 Then |
88 | pr_warn("Can't reserve IPI, failed to alloc hw irqs\n") |
89 | Go to free_descs |
93 | data = irq_get_irq_data(virq + i) |
95 | ipi_offset = offset |
98 | Return virq |
100 | free_descs : |
102 | Return -EBUSY |
Source code conversion tool public plug-in interface | X |
---|---|
Support c/c++/esqlc/java Oracle/Informix/Mysql Plug-in can realize: logical Report Code generation and batch code conversion |