Hi Richard,

CC-ing all the maintainers again.

Richard Henderson wrote:
> On 5/19/25 16:19, Julian Ganz wrote:
> > +QEMU_DISABLE_CFI
> > +static void plugin_vcpu_cb__discon(CPUState *cpu,
> > +                                   enum qemu_plugin_discon_type type,
> > +                                   uint64_t from)
> > +{
> > +    struct qemu_plugin_cb *cb, *next;
> > +    enum qemu_plugin_event ev;
> > +    uint64_t to = cpu->cc->get_pc(cpu);
> > +
> > +    if (cpu->cpu_index < plugin.num_vcpus) {
> > +        switch (type) {
> > +        case QEMU_PLUGIN_DISCON_INTERRUPT:
> > +            ev = QEMU_PLUGIN_EV_VCPU_INTERRUPT;
> > +            break;
> > +        case QEMU_PLUGIN_DISCON_EXCEPTION:
> > +            ev = QEMU_PLUGIN_EV_VCPU_EXCEPTION;
> > +            break;
> > +        case QEMU_PLUGIN_DISCON_HOSTCALL:
> > +            ev = QEMU_PLUGIN_EV_VCPU_HOSTCALL;
> > +            break;
> 
> No point passing in QEMU_PLUGIN_DISCON_* only to covert it to 
> QEMU_PLUGIN_EV_*.

It easily looks that way, and I myself stubled upon this at least one or two
times, but `type` is the enum we pass to the callback a few lines down and part
of the public plugin API. `ev` on the other hand is the offset in the `cb_list`.
So some translation is neccessary, unfortunately.

Regards,
Julian

Reply via email to