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  |