• This allows to create monitor terminals that do not make use of the
    interactive readline back-end but rather send complete commands. The
    pass-through monitor interface of the gdbstub will be an example.
    
    Signed-off-by: Jan Kiszka <jan.kiszka@siemens.com>
    Signed-off-by: Anthony Liguori <aliguori@us.ibm.com>
    
    
    git-svn-id: svn://svn.savannah.nongnu.org/qemu/trunk@6717 c046a42c-6fe2-441c-8c8c-71466251a162
    aliguori authored
     
    Browse Code »
  • Up to now, you never really knew if you already switched the console
    after pressing CTRL-A C or if you mistyped it again. This patch
    clarifies the situation by providing a prompt in a new line and
    injecting a linebreak when switching away again. For this purpose, the
    two events CHR_EVENT_MUX_IN and CHR_EVENT_MUX_OUT are introduced and
    distributed on focus switches.
    
    Signed-off-by: Jan Kiszka <jan.kiszka@siemens.com>
    Signed-off-by: Anthony Liguori <aliguori@us.ibm.com>
    
    
    git-svn-id: svn://svn.savannah.nongnu.org/qemu/trunk@6716 c046a42c-6fe2-441c-8c8c-71466251a162
    aliguori authored
     
    Browse Code »
  • Currently all registered (and activate) monitor terminals work in
    broadcast mode: Everyone sees what someone else types on some other
    terminal and what the monitor reports back. This model is broken when
    you have a management monitor terminal that is automatically operated
    and some other terminal used for independent guest inspection. Such
    additional terminals can be multiplexed device channels or a gdb
    frontend connected to QEMU's stub.
    
    Therefore, this patch decouples the buffers and states of all monitor
    terminals, allowing the user to operate them independently. It finally
    starts to use the 'mon' parameter that was introduced earlier with the
    API rework. It also defines the default monitor: the first instantance
    that has the MONITOR_IS_DEFAULT flag set, and that is the monitor
    created via the "-monitor" command line switch (or "vc" if none is
    given).
    
    As the patch requires to rework the monitor suspension interface, it
    also takes the freedom to make it "truely" suspending (so far suspending
    meant suppressing the prompt, but inputs were still processed).
    
    Signed-off-by: Jan Kiszka <jan.kiszka@siemens.com>
    Signed-off-by: Anthony Liguori <aliguori@us.ibm.com>
    
    
    git-svn-id: svn://svn.savannah.nongnu.org/qemu/trunk@6715 c046a42c-6fe2-441c-8c8c-71466251a162
    aliguori authored
     
    Browse Code »
  • There is no use for the hide/show banner option, and it is applied
    inconsistently anyway (or what makes the difference between
     -serial mon:stdio and -nographic for the monitor?). So drop this mode.
    
    Signed-off-by: Jan Kiszka <jan.kiszka@siemens.com>
    Signed-off-by: Anthony Liguori <aliguori@us.ibm.com>
    
    
    git-svn-id: svn://svn.savannah.nongnu.org/qemu/trunk@6713 c046a42c-6fe2-441c-8c8c-71466251a162
    aliguori authored
     
    Browse Code »
  • Refactor the monitor API and prepare it for decoupled terminals:
    term_print functions are renamed to monitor_* and all monitor services
    gain a new parameter (mon) that will once refer to the monitor instance
    the output is supposed to appear on. However, the argument remains
    unused for now. All monitor command callbacks are also extended by a mon
    parameter so that command handlers are able to pass an appropriate
    reference to monitor output services.
    
    For the case that monitor outputs so far happen without clearly
    identifiable context, the global variable cur_mon is introduced that
    shall once provide a pointer either to the current active monitor (while
    processing commands) or to the default one. On the mid or long term,
    those use case will be obsoleted so that this variable can be removed
    again.
    
    Due to the broad usage of the monitor interface, this patch mostly deals
    with converting users of the monitor API. A few of them are already
    extended to pass 'mon' from the command handler further down to internal
    functions that invoke monitor_printf.
    
    At this chance, monitor-related prototypes are moved from console.h to
    a new monitor.h. The same is done for the readline API.
    
    Signed-off-by: Jan Kiszka <jan.kiszka@siemens.com>
    Signed-off-by: Anthony Liguori <aliguori@us.ibm.com>
    
    
    git-svn-id: svn://svn.savannah.nongnu.org/qemu/trunk@6711 c046a42c-6fe2-441c-8c8c-71466251a162
    aliguori authored
     
    Browse Code »
  • Currently, the intermediate input buffer of mux'ed character devices
    records data across all sub-devices. This has the side effect that we
    easily leak data recorded over one sub-devices to another once we switch
    the focus. Avoid data loss and confusion by defining exclusive buffers.
    
    Note: In contrast to the original author's claim, the buffering concept
    still breaks down when the fifo of the currently active sub-device is
    full. As we cannot accept futher data from this point on without risking
    to loose it, we will also miss escape sequences, just like without all
    that buffering. In short: There is no reliable escape sequence handling
    without infinite buffers or the risk of loosing some data.
    
    Signed-off-by: Jan Kiszka <jan.kiszka@siemens.com>
    Signed-off-by: Anthony Liguori <aliguori@us.ibm.com>
    
    
    git-svn-id: svn://svn.savannah.nongnu.org/qemu/trunk@6701 c046a42c-6fe2-441c-8c8c-71466251a162
    aliguori authored
     
    Browse Code »
  • Recent changes to the graphical console initialization broke the initial
    CHR_EVENT_RESET distribution. The reset BHs generated on char device
    initialization are now already consumed during machine init (ide init
    ... -> qemu_aio_wait -> qemu_bh_poll). Therefore, this patch moves the
    initial qemu_chr_reset calls into a separate funtion which is called
    after machine init.
    
    Signed-off-by: Jan Kiszka <jan.kiszka@siemens.com>
    Signed-off-by: Anthony Liguori <aliguori@us.ibm.com>
    
    
    git-svn-id: svn://svn.savannah.nongnu.org/qemu/trunk@6700 c046a42c-6fe2-441c-8c8c-71466251a162
    aliguori authored
     
    Browse Code »






  • The DisplayState refactoring changed the machine init function to create a
    DisplayState for each VGA device instead of being passed an existing
    DisplayState.  This change is critical to enable multiple graphics device
    support.
    
    Unfortunately, the serial/parallel/console code is structured today to run
    before machine init to fill out the CharDriverState table which the machine
    init function uses to determine whether to create the required devices.
    
    Since a 'vc' is a type of CharDriverState, the CharDriverState code requires
    that a DisplayState exist before it runs creating a circular dependency.
    
    To fix this, this splits the creation of the initial CharDriverState from
    the initialization of the text console.  We can then in a second step associate
    a DisplayState with all TextConsoles.  This allows us to create the
    CharDriverState's first, machine init, then associate the TextConsoles with
    a DisplayState.
    
    This code screams for more cleanup.
    
    Signed-off-by: Anthony Liguori <aliguori@us.ibm.com>
    
    
    
    git-svn-id: svn://svn.savannah.nongnu.org/qemu/trunk@6352 c046a42c-6fe2-441c-8c8c-71466251a162
    aliguori authored
     
    Browse Code »
  • Patch 5/7
    
    This patch changes the graphical_console_init function to return an
    allocated DisplayState instead of a QEMUConsole.
    
    This patch contains just the graphical_console_init change and few other
    modifications mainly in console.c and vl.c.
    It was necessary to move the display frontends (e.g. sdl and vnc)
    initialization after machine->init in vl.c.
    
    This patch does *not* include any required changes to any device, these
    changes come with the following patches.
    
    Patch 6/7
    
    This patch changes the QEMUMachine init functions not to take a
    DisplayState as an argument because is not needed any more;
    
    In few places the graphic hardware initialization function was called
    only if DisplayState was not NULL, now they are always called.
    Apart from these cases, the rest are all mechanical substitutions.
    
    Patch 7/7
    
    This patch updates the graphic device code to use the new
    graphical_console_init function.
    
    As for the previous patch, in few places graphical_console_init was called
    only if DisplayState was not NULL, now it is always called.
    Apart from these cases, the rest are all mechanical substitutions.
    
    Signed-off-by: Stefano Stabellini <stefano.stabellini@eu.citrix.com>
    Signed-off-by: Anthony Liguori <aliguori@us.ibm.com>
    
    
    
    git-svn-id: svn://svn.savannah.nongnu.org/qemu/trunk@6344 c046a42c-6fe2-441c-8c8c-71466251a162
    aliguori authored
     
    Browse Code »





  • This switches the tcp, telnet and unix socket support for character
    devices (serial/parallel, ...) to the new socket helpers.  Thereby they
    gain IPv6 support and also get ability to search for a free tcp port.
    Syntax is the same as for vnc, using a to= option, like this:
    
    	-serial tcp:localhost:5000,to=5099,server
    
    This will check the 5000 -> 5099 port range (inclusive) for a free tcp
    port.  Likewise you can get auto-allocated unix sockets by specifying an
    empty path:
    
    	-serial unix:,server
    
    qemu will create a randomly named socket in $TMPDIR then.
    
    tcp also got new "ipv4" and "ipv6" options to make qemu try only the
    specified internet protocol version.
    
    You can use the "info chardev" command added by the first patch in this
    series to figure the tcp port / unix socket actually allocated.
    
    Signed-off-by: Gerd Hoffmann <kraxel@redhat.com>
    Signed-off-by: Anthony Liguori <aliguori@us.ibm.com>
    
    
    
    git-svn-id: svn://svn.savannah.nongnu.org/qemu/trunk@5697 c046a42c-6fe2-441c-8c8c-71466251a162
    aliguori authored
     
    Browse Code »
  • This patch creates a new source file qemu-sockets.c with a bunch of
    helper functions to create listening and connected sockets.
    
    New features of this code are (a) support for searching for a free
    port in a given range and (b) support for IPv6.
    
    The following patches put that code into use.
    
    Compile fixes for Windows added by Anthony Liguori
    
    Signed-off-by: Gerd Hoffmann <kraxel@redhat.com>
    Signed-off-by: Anthony Liguori <aliguori@us.ibm.com>
    
    
    
    git-svn-id: svn://svn.savannah.nongnu.org/qemu/trunk@5695 c046a42c-6fe2-441c-8c8c-71466251a162
    aliguori authored
     
    Browse Code »