Fix character devices after DisplayState refactoring
authoraliguori <aliguori@c046a42c-6fe2-441c-8c8c-71466251a162>
Fri, 16 Jan 2009 20:23:27 +0000 (20:23 +0000)
committeraliguori <aliguori@c046a42c-6fe2-441c-8c8c-71466251a162>
Fri, 16 Jan 2009 20:23:27 +0000 (20:23 +0000)
commit5f310733267a53f63304159f852bf0f592459ec7
tree5d3eb2885b20f7b94732af7fcd709112b842629e
parentc2f54b0b0ae701630b072b345ce30d7ac8788cfc
Fix character devices after DisplayState refactoring

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
console.c
console.h
qemu-char.c
vl.c