Thank you very much for the answer,
so the only think to do to raise correctly an interrupt (I think) is only to raise it when a read funciton is completed (in case of my simple memory) because it will alarm the process in waiting status to read the value in the register.

the workaround of a read operation of a cell of this memory is:
1)write address of the cell that I want to read in the address register,
2)send the execution request to get the value of the cell indicated by the address reg (write on the command register the read opcode),
3)wait for control register response untill read operation is executed.
4)read the data register.

so I think that interrupt request must be between point 3 and 4.
Do you agree with my consideration?

I hope that writed something understandable :)

Thanks

Ale


2006/11/2, Paul Brook <[EMAIL PROTECTED]>:
On Wednesday 01 November 2006 23:25, Roger Lathrop wrote:
> Alessandro,
>
> All you should need to do to raise an IRQ in your code is:
> pic_set_irq(s->irq,1);
>
> When the irq is serviced (in one of your ioport traps, I would assume),
> knock the irq down:
> pic_set_irq(s->irq,0);

No. You should use pic_set_irq_new. Otherwise your code will break on machines
with multiple interrupt controllers.

Paul


_______________________________________________
Qemu-devel mailing list
Qemu-devel@nongnu.org
http://lists.nongnu.org/mailman/listinfo/qemu-devel

_______________________________________________
Qemu-devel mailing list
Qemu-devel@nongnu.org
http://lists.nongnu.org/mailman/listinfo/qemu-devel

Reply via email to