函数逻辑报告

Linux Kernel

v5.5.9

Brick Technologies Co., Ltd

Source Code:kernel\irq\irqdesc.c Create Date:2022-07-27 11:08:41
Last Modify:2020-03-12 14:18:49 Copyright©Brick
首页 函数Tree
注解内核,赢得工具下载SCCTEnglish

函数名称:__irq_alloc_descs - allocate and initialize a range of irq descriptors*@irq: Allocate for specific irq number if irq >= 0*@from: Start the search from this irq number*@cnt: Number of consecutive irqs to allocate

函数原型:int __ref __irq_alloc_descs(int irq, unsigned int from, unsigned int cnt, int node, struct module *owner, const struct irq_affinity_desc *affinity)

返回类型:int

参数:

类型参数名称
intirq
unsigned intfrom
unsigned intcnt
intnode
struct module *owner
const struct irq_affinity_desc *affinity
771  如果非cnt则返回:负EINVAL
774  如果irq大于等于0则
775  如果from大于irq则返回:负EINVAL
777  from等于irq
778  否则
784  from等于arch_dynirq_lower_bound(from)
787  mutex_lock( & sparse_irq_lock)
789  start等于map_find_next_zero_area - find a contiguous aligned zero area*@map: The address to base the search on*@size: The bitmap size in bits*@start: The bitnumber to start searching at*@nr: The number of zeroed bits we're looking for*@align_mask: Alignment mask
791  ret等于负EEXIST
792  如果irq大于等于0且start不等于irq则转到:unlock
795  如果startcnt大于nr_irqs
796  ret等于irq_expand_nr_irqs(start + cnt)
797  如果ret则转到:unlock
800  ret等于alloc_descs(start, cnt, node, affinity, owner)
801  unlock :
802  mutex_unlock - release the mutex*@lock: the mutex to be released* Unlock a mutex that has been locked by this task previously.* This function must not be used in interrupt context. Unlocking* of a not locked mutex is not allowed.
803  返回:ret
调用者
名称描述
__devm_irq_alloc_descs__devm_irq_alloc_descs - Allocate and initialize a range of irq descriptors* for a managed device*@dev: Device to allocate the descriptors for*@irq: Allocate for specific irq number if irq >= 0*@from: Start the search from this irq number*@cnt: Number of
irq_domain_alloc_descs