函数逻辑报告 | 
Source Code:kernel\irq\irqdomain.c | 
Create Date:2022-07-27 11:13:58 | 
| Last Modify:2020-03-12 14:18:49 | Copyright©Brick | 
| 首页 | 函数Tree | 
| 注解内核,赢得工具 | 下载SCCT | English | 
函数名称:__irq_domain_add() - Allocate a new irq_domain data structure*@fwnode: firmware node for the interrupt controller*@size: Size of linear map; 0 for radix mapping only*@hwirq_max: Maximum number of interrupts supported by controller*@direct_max: Maximum
函数原型:struct irq_domain *__irq_domain_add(struct fwnode_handle *fwnode, int size, irq_hw_number_t hwirq_max, int direct_max, const struct irq_domain_ops *ops, void *host_data)
返回类型:struct irq_domain
参数:
| 类型 | 参数 | 名称 | 
|---|---|---|
| struct fwnode_handle * | fwnode | |
| int | size | |
| irq_hw_number_t | hwirq_max | |
| int | direct_max | |
| const struct irq_domain_ops * | ops | |
| void * | host_data | 
| 135 | of_node等于to_of_node(fwnode) | 
| 141 | domain等于根据内存节点分配内存 | 
| 143 | 如果非domain则返回:NULL | 
| 146 | 如果fwnode且is_fwnode_irqchip(fwnode)则 | 
| 150 | 当:type恒等于IRQCHIP_FWNODE_NAMED | 
| 151 | 当:type恒等于IRQCHIP_FWNODE_NAMED_ID | 
| 152 | Optional data 等于fwnode | 
| 153 | 硬件中断对象名等于kstrdup(name, GFP_KERNEL) | 
| 154 | 如果非硬件中断对象名则 | 
| 155 | 释放内存 | 
| 156 | 返回:NULL | 
| 159 | 退出 | 
| 160 | 默认 | 
| 180 | 否则如果of_node则 | 
| 188 | name等于kasprintf(GFP_KERNEL, "%pOF", of_node) | 
| 189 | 如果非name则 | 
| 190 | 释放内存 | 
| 191 | 返回:NULL | 
| 194 | 替换字符串中的所有字符 | 
| 197 | Optional data 等于fwnode | 
| 201 | 如果非硬件中断对象名则 | 
| 204 | 硬件中断对象名等于kasprintf(GFP_KERNEL, "unknown-%d", atomic_inc_return( & unknown_domains)) | 
| 206 | 如果非硬件中断对象名则 | 
| 207 | 释放内存 | 
| 208 | 返回:NULL | 
| 216 | INIT_RADIX_TREE( & revmap_tree, GFP_KERNEL) | 
| 217 | mutex_init - initialize the mutex*@mutex: the mutex to be initialized* Initialize the mutex to unlocked state.* It is not allowed to initialize an already locked mutex.( & revmap_tree_mutex) | 
| 221 | revmap_size等于size | 
| 225 | mutex_lock( & irq_domain_mutex) | 
| 227 | 添加链表项 | 
| 231 | 返回:domain | 
| 名称 | 描述 | 
|---|---|
| irq_domain_add_simple | q_domain_add_simple() - Register an irq_domain and optionally map a range of irqs*@of_node: pointer to interrupt controller's device tree node.*@size: total number of irqs in mapping*@first_irq: first number of irq block assigned to the domain, | 
| irq_domain_add_legacy | q_domain_add_legacy() - Allocate and register a legacy revmap irq_domain.*@of_node: pointer to interrupt controller's device tree node.*@size: total number of irqs in legacy mapping*@first_irq: first number of irq block assigned to the domain | 
| 源代码转换工具 开放的插件接口  | X | 
|---|---|
| 支持:c/c++/esqlc/java Oracle/Informix/Mysql 插件可实现:逻辑报告 代码生成和批量转换代码  |