b2科目四模拟试题多少题驾考考爆了怎么补救
b2科目四模拟试题多少题 驾考考爆了怎么补救

系统的概念 GIC代码分析(8)

电脑杂谈  发布时间:2018-02-14 06:28:57  来源:网络整理

(2)gic_init_bases的代码如下:

void __init gic_init_bases(unsigned int gic_nr, int irq_start,

void __iomem *dist_base, void __iomem *cpu_base,

u32 percpu_offset, struct device_node *node)

{

irq_hw_number_t hwirq_base;

struct gic_chip_data *gic;

int gic_irqs, irq_base, i;

gic = &gic_data[gic_nr];

gic->dist_base.common_base = dist_base; ----省略了non banked的情况

gic->cpu_base.common_base = cpu_base;

gic_set_base_accessor(gic, gic_get_common_base);

for (i = 0; i < NR_GIC_CPU_IF; i++) ---后面会具体描述gic_cpu_map的含义

gic_cpu_map[i] = 0xff;

if (gic_nr == 0 && (irq_start & 31) > 0) { --------------------(a)

hwirq_base = 16;

if (irq_start != -1)

irq_start = (irq_start & ~31) + 16;

} else {

hwirq_base = 32;

}

gic_irqs = readl_relaxed(gic_data_dist_base(gic) + GIC_DIST_CTR) & 0x1f; ----(b)

gic_irqs = (gic_irqs + 1) * 32;

if (gic_irqs > 1020)

gic_irqs = 1020;

gic->gic_irqs = gic_irqs;

简述系统的概念_系统概念第六版_系统的概念

gic_irqs -= hwirq_base;----------------------------(c)

if (of_property_read_u32(node, "arm,routable-irqs",----------------(d)

&nr_routable_irqs)) {

irq_base = irq_alloc_descs(irq_start, 16, gic_irqs, numa_node_id()); -------(e)

if (IS_ERR_VALUE(irq_base)) {

WARN(1, "Cannot allocate irq_descs @ IRQ%d, assuming pre-allocated\n",

irq_start);

irq_base = irq_start;

}

gic->domain = irq_domain_add_legacy(node, gic_irqs, irq_base, -------(f)

hwirq_base, &gic_irq_domain_ops, gic);

} else {

gic->domain = irq_domain_add_linear(node, nr_routable_irqs, --------(f)

&gic_irq_domain_ops,


本文来自电脑杂谈,转载请注明本文网址:
http://www.pc-fly.com/a/shumachanpin/article-76887-8.html

相关阅读
    发表评论  请自觉遵守互联网相关的政策法规,严禁发布、暴力、反动的言论

    每日福利
    热点图片
    拼命载入中...