函数逻辑报告 |
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 插件可实现:逻辑报告 代码生成和批量转换代码 |