I am looking into a file which is i8259.c which is basically an interrupt
controller. here in end is a function which is

static int pic_initfn(ISADevice *dev)
{
    PicState *s = DO_UPCAST(PicState, dev, dev);

    memory_region_init_io(&s->base_io, &pic_base_ioport_ops, s, "pic", 2);
    memory_region_init_io(&s->elcr_io, &pic_elcr_ioport_ops, s, "elcr", 1);

    isa_register_ioport(NULL, &s->base_io, s->iobase);
    if (s->elcr_addr != -1) {
        isa_register_ioport(NULL, &s->elcr_io, s->elcr_addr);
    }

    qdev_init_gpio_out(&dev->qdev, s->int_out, ARRAY_SIZE(s->int_out));
    qdev_init_gpio_in(&dev->qdev, pic_set_irq, 8);

    qdev_set_legacy_instance_id(&dev->qdev, s->iobase, 1);

    return 0;
}

Can any one tell me what "memory_region_init_io" , "isa_register_ioport" ,
" qdev_init_gpio_out" , "qdev_init_gpio_in" and
"qdev_set_legacy_instance_id" do? and what does this qdev mean?

Reply via email to