Note that there are some explanatory texts on larger screens.

plurals
  1. USChristoph
    primarykey
    data
    text
    plurals
    1. This table or related slice is empty.
    1. COAnother find: the virtio_serial_port_qdev_register() function doesn't exist any more because the registration is now done natively through the Qemu Object Model (I think it is replaced by the type_register_static() calls). This happened in version 1.1.2 through commit 5ae1015 from 3 Feb 2012. So it seems that to do what I was planning you just create a class and register it, and the device should be available. I still leave the question open, however, in case somebody has a more educated opinion on this.
      singulars
    2. COIn case somebody has the same problem: What I found so far is that the device_init() mechanism was replaced with type_init(). "Type" because Qemu internally now uses a class-based mechanism (the object orientation is realized in C as a set of conventions, macros, and helper functions). Also I think one actually must add new device sources to the Qemu make files, no dynamic modules. This is all good. But, the "Virtio-serial_API" info above is outdated: the virtio_serial_port_qdev_register() function doesn't exist any more which now opens the question: how do I register a new serial device?
      singulars
    3. COThank you so much for this excellent answer! It is not what I hoped for (=an easy way to do this) but it is definitely nice to get all this background info that confirms my assumptions. In this case my above code may help others who are trying the same and I assume that Javassist will come up with an easier solution at some point. Regarding invokedynamic and invokevirtual: you are of course 100% right that invokevirtual has an extra first parameter ("this"). Therefore one may have to make sure that the method descriptor is correct (and possibly add "this" as the first parameter, if necessary).
      singulars
 

Querying!

 
Guidance

SQuiL has stopped working due to an internal error.

If you are curious you may find further information in the browser console, which is accessible through the devtools (F12).

Reload