Commit Graph

8021 Commits

Author SHA1 Message Date
Samuel Ortiz
d94b5af875 qemu: Add a VGA parameter field to the Config structure
The VGA string represents the type of VGA card qemu should emulate.

Signed-off-by: Samuel Ortiz <sameo@linux.intel.com>
2016-09-17 00:41:13 +02:00
Samuel Ortiz
4892d041e7 qemu: Add a Global parameter field to the Config structure
The Global string represents the set of default Device driver properties
we want qemu to use. This is mostly useful for automatically created
devices.

Signed-off-by: Samuel Ortiz <sameo@linux.intel.com>
2016-09-17 00:41:13 +02:00
Samuel Ortiz
612a5a9e5d qemu: Add a RTC field to the Config structure
The RTC structure represents the guest Real Time Clock configuration.

Signed-off-by: Samuel Ortiz <sameo@linux.intel.com>
2016-09-17 00:41:13 +02:00
Samuel Ortiz
c63ec0965a qemu: Add a SMP field to the Config structure
The SMP structure defines the amount of virtual CPUs, sockets, and
threads per CPU that is made available to the guest.

Signed-off-by: Samuel Ortiz <sameo@linux.intel.com>
2016-09-17 00:41:13 +02:00
Samuel Ortiz
7cf386a81c qemu: Add a Memory field to the Config structure
The Memory field holds the guest memory configuration.
It is used to define the current and maximum RAM is made available to
the guest and how this amount of RAM is splitted into several slots.

Signed-off-by: Samuel Ortiz <sameo@linux.intel.com>
2016-09-17 00:41:13 +02:00
Samuel Ortiz
b198bc67e7 qemu: Add a UUID field to the Config structure
The qemu UUID will be used to set the guest system UUID.

Signed-off-by: Samuel Ortiz <sameo@linux.intel.com>
2016-09-17 00:41:13 +02:00
Samuel Ortiz
6239e846b7 qemu: Add a Character Devices slice field to the Config structure
Qemu character devices typically allow for sending traffic from the
guest to the host by emulating a console, a tty, a serial device for
example.

Signed-off-by: Samuel Ortiz <sameo@linux.intel.com>
2016-09-17 00:41:13 +02:00
Samuel Ortiz
73e2d53c9a qemu: Add a Filesystem Devices slice field to the Config structure
Each Filesystem device should have a corresponding "virtio-9p-pci"
Device driver. They represent a filesystem to be exported through 9pfs.

Signed-off-by: Samuel Ortiz <sameo@linux.intel.com>
2016-09-17 00:41:13 +02:00
Samuel Ortiz
518ba627b1 qemu: Add a Kernel field to the Config structure
The Kernel structure holds the guest kernel configuration: its path and
its parameters. This is the kernel qemu will boot the VM from.

Signed-off-by: Samuel Ortiz <sameo@linux.intel.com>
2016-09-17 00:41:13 +02:00
Samuel Ortiz
b973bc59fb qemu: Add an Object slice field to the Config structure
The Object slice tells qemu which specific object to create.
Qemu objects can represent memory backend files, random number
generators, TLS credentials, etc...

Signed-off-by: Samuel Ortiz <sameo@linux.intel.com>
2016-09-17 00:41:13 +02:00
Samuel Ortiz
8744dfe85e qemu: Add a Device slice field to the Config structure
We may need to support a large range of devices in the qemu created VM
and the Device slice allows us to define which drivers are needed.

Signed-off-by: Samuel Ortiz <sameo@linux.intel.com>
2016-09-17 00:41:13 +02:00
Samuel Ortiz
5458de70ad qemu: Add a QMP socket field to the Config structure
QMP sockets are used to send qemu specific commands to the running qemu
process.
The QMPSocket structure allows us to define the socket type we want,
along with its name.

Signed-off-by: Samuel Ortiz <sameo@linux.intel.com>
2016-09-17 00:41:13 +02:00
Samuel Ortiz
171182709d qemu: Add qemu's name to the Config structure
This allows us to set the qemu -name option.

Signed-off-by: Samuel Ortiz <sameo@linux.intel.com>
2016-09-17 00:41:13 +02:00
Samuel Ortiz
37a1f5003d qemu: Add configuration structure to simplify LaunchQemu
LaunchQemu() now takes a Config structure that contains some more
descriptive fields than raw qemu parameter strings.

LaunchQemu is now simpler to call and more extensible as supporting more
qemu parameters would mean expanding Config instead of changing the API.

Signed-off-by: Samuel Ortiz <sameo@linux.intel.com>
2016-09-17 00:41:13 +02:00
Mark Ryan
5ccbaf2b59 ciao-launcher, qemu: Upgrade to new context package.
Ciao will use the new standard library context package from now on.
This will allow us to use some of the new standard library functions
such as DialContext.

Partial fix for issue #541

Signed-off-by: Mark Ryan <mark.d.ryan@intel.com>
2016-09-12 11:51:00 +01:00
Samuel Ortiz
f57201989b qemu: Use null QMP logger when the logger parameter is nil
Or else LaunchQemu() ends up dereferencing a nil pointer and panic'ing.

Signed-off-by: Samuel Ortiz <sameo@linux.intel.com>
2016-09-09 18:45:31 +02:00
Mark Ryan
7d4199a449 qemu: Fix ineffassign error
Fix ciao/qemu/qmp.go:349:3: ineffectual assignment to ok.

Strictly speaking this is a bug in ineffassign but it's easier
to change the ciao code.

Signed-off-by: Mark Ryan <mark.d.ryan@intel.com>
2016-09-01 18:46:37 +01:00
Mark Ryan
7f50a41525 qemu: Fix a silly bug in LaunchQemu
There's no point in setting cmd.ExtraFiles if the fds array is an
empty slice.  This won't do any harm but is essentially a no-op.

Signed-off-by: Mark Ryan <mark.d.ryan@intel.com>
2016-08-26 16:52:43 +01:00
Mark Ryan
fc6bf8cf80 qemu: Add package documentation
This commit adds some package documentation to the qemu package,
including an overview of the package and an example of its use.

Signed-off-by: Mark Ryan <mark.d.ryan@intel.com>
2016-08-26 16:52:36 +01:00
Mark Ryan
306f54a907 ciao-launcher, qemu: Move launchQemu to qemu
The launcher function launchQemu has been moved to the qemu package
and is now called LaunchQemu.

Signed-off-by: Mark Ryan <mark.d.ryan@intel.com>
2016-08-26 16:33:41 +01:00
Mark Ryan
344aa22bd2 qemu: Add the qemu package
The qemu package is a self contained package used for launching, halting
and managing qemu instances.

Signed-off-by: Mark Ryan <mark.d.ryan@intel.com>
2016-08-26 16:33:34 +01:00