On Wed, 2 Dec 2009, H. Peter Anvin wrote: > Add generic support for debugging consoles (simple I/O ports which > when written to cause debugging output to be written to a target.) > The current implementation matches Bochs' port 0xe9, allowing the same > debugging code to be used for both Bochs and Qemu. > > There is no vm state associated with the debugging port, simply > because it has none -- the entire interface is a single, stateless, > write-only port. > > Most of the code was cribbed from the serial port driver. > > v2: removed non-ISA variants (they can be introduced when/if someone > wants them, using code from the serial port); added configurable > readback (Bochs returns 0xe9 on a read from this register, mimic that > by default) This retains the apparently somewhat controversial user > friendly option, however. > > v3: reimplemented the user friendly option as a synthetic option > ("-debugcon foo" basically ends up being a parser-level shorthand for > "-chardev stdio,id=debugcon -device isa-debugcon,chardev=debugcon") -- > this dramatically reduced the complexity while keeping the same level > of user friendliness. >
[..snip..] > + > +static ISADeviceInfo debugcon_isa_info = { > + .qdev.name = "isa-debugcon", > + .qdev.size = sizeof(ISADebugconState), > + .init = debugcon_isa_initfn, > + .qdev.props = (Property[]) { > + DEFINE_PROP_HEX32("iobase", ISADebugconState, iobase, 0xe9), > + DEFINE_PROP_CHR("chardev", ISADebugconState, state.chr), > + DEFINE_PROP_HEX32("readback", ISADebugconState, state.readback, 0xe9), > + DEFINE_PROP_END_OF_LIST(), > + }, > +}; The above is tab damaged. [..snip..] -- mailto:av1...@comtv.ru