Lots of places in libxl return -1 as an error which is inconsistent with
libxl error codes since that is ERROR_VERSION. Also in other places the
xc_* function to implement a command is called but the return value is
either never checked or not passed on.
This patch introduces a new internal function libxl_xc_error() which
maps xc error codes to xl error codes. Callers of libxc functions are
converted to use this when returning error codes back to libxl callers.
Also a bug is fixed where a caller depends on errno being set but is
cleared by cleanup code which calls in to library functions which modify
errno as a side-effect.
Signed-off-by: Gianni Tedesco <gianni.tedesco@citrix.com>
Implements dump-core command which is similar to xm dump-core except
that it requires an additional argument which is the target filename.
Signed-off-by: Gianni Tedesco <gianni.tedesco@citrix.com>
that finds the domid and console number corresponding to the primary
console of a given vm. The domid might be different from the domid of
the VM and the console number might not be 0 when using stubdoms.
The caller (xl_cmdimpl.c in this case) has to make sure that the stubdom
is already created before calling libxl_primary_console_exec in the hvm
case. In the PV case libxl_primary_console_exec has to be called before
libxl_run_bootloader.
Signed-off-by: Stefano Stabellini <stefano.stabellini@eu.citrix.com>
Useful if you need to read a guest filesystem (e.g. pygrub).
I'm not overly thrilled with the implementation WRT tap interfaces,
particularly WRT to detach. I was unable to find a way to get at the
paramters necessary to call tap_ctl_destroy so I assumed for now it
that is OK to assume that the tap device is going to be wanted for the
actual domain at some point in the immediate future and hence there is
no pressing need to destroy it.
Signed-off-by: Ian Campbell <ian.campbell@citrix.com>
This will allow us to map and then unlink the file and therefore
delete the process on process exit or explicit unmap.
Using the mmaped versions of these files required rewriting build_pv
to use the xc_dom builder functionality directly rather than through
the xc_linux_build "compatibility layer". (The status of the
xc_linux_build interface as a compatibility layer seems a bit dubious
since all existing callers use it but if anything is going to replace
it then libxl seems like the likely candidate).
I'm not thrilled with the definition of the maps lifecycle. This could
be solved by adding a helper function to explicitly free the toplevel
structure.
Signed-off-by: Ian Campbell <ian.campbell@citrix.com>
Use this to run xenconsole as the foreground process and move the
connection to the console in the "create -c" case early enough to be
able to view output from the bootloader. This behaviour is consistent
with how both "xm console" and "xm create -c" operate.
Signed-off-by: Ian Campbell <ian.campbell@citrix.com>
There is an unfortunate warning for the empty format string by default
which I workaround by adding -Wno-format-zero-length.
Signed-off-by: Ian Campbell <ian.campbell@citrix.com>
qemu will default to one emulated NIC if no network configuration is
specified on the command-line. If there are no emualted NICs (i.e.,
no NICs or all NICs are PV), specify no nics to avoid getting an
emulated NIC by default.
Signed-off-by: George Dunlap <george.dunlap@eu.citrix.com>
Recent kernels have a reset file on sysfs per PCI device, to allow PCI
device reset from userspace.
This patch adds support to libxl for resetting PCI devices using the
reset file on sysfs, in case the do_flr file is not preset.
Signed-off-by: Stefano Stabellini <stefano.stabellini@eu.citrix.com>
Implement xen_platform_pci support in xl/libxl to allow users to
disable the xen platform pci device from the VM config file.
Signed-off-by: Stefano Stabellini <stefano.stabellini@eu.citrix.com>
We now require callers to provide a xentoollog_logger* for
libxl_ctx_init, and use that for all our own logging and also for
xc_interface_open.
Corresponding change to xl.c.
Signed-off-by: Ian Jackson <ian.jackson@eu.citrix.com>
This patch eliminate the global variables in libxenctrl (used for
logging and error reporting).
Instead the information which was in the global variables is now in a
new xc_interface* opaque structure, which xc_interface open returns
instead of the raw file descriptor; furthermore, logging is done via
xentoollog.
There are three new parameters to xc_interface_open to control the
logging, but existing callers can just pass "0" for all three to get
the old behaviour.
All libxc callers have been adjusted accordingly.
Also update QEMU_TAG for corresponding qemu change.
Signed-off-by: Ian Jackson <ian.jackson@eu.citrix.com>
The parsing of PCI resources has two problems:
1. it assumes devices are 32-bits, whereas the fields in the
"resources" file can have full 64-bit values
2. it only parses the first resource because the format string is
missing a \n
Fix both of these up, which allows my Intel 82574L to work with MSI-X.
However, this should probably be using a PCI access library rather
than rummaging around in /sys/bus/pci...
Signed-off-by: Jeremy Fitzhardinge <jeremy.fitzhardinge@citrix.com>
- When use mem-set, I got suspicious error output:
# xl mem-set 1 256g
setting domid 1 memory to : 268435456
[0] libxl.c:2535:libxl_set_memory_target: memory_dynamic_max must be
less than or equal to memory_static_max
: Success
- String generated by strdup() should be freed
- When using 'xl help', mem-max and mem-set's output is not as intend,
and it also breaks bash completion, fix it.
Signed-off-by: Yang Hongyang <yanghy@cn.fujitsu.com>
* Some of the library functions such as fscanf, system, and asprintf
are declared with warn_unused_result (ubuntu server 9.10), causing
compilation errors in libxl.
* When using asprintf, the caller is responsible for freeing the
memory.
* memset takes wrong size argument in one of the places (caught by
a builtin gcc check).
Signed-off-by: Dulloor Rao <dulloor@gmail.com>
I think xl memset should change the memory currently used by the guest
and xl memmax should change the size of the guest's address space and
not the population. For this reason libxl_set_memory_target should
provide a way to enforce the memory target, calling
xc_domain_setmaxmem. On the other hand xl memmax shouldn't call
xc_domain_setmaxmem because that is the upper bound of the memory
reservation, it should just change static-max, that at the moment
wouldn't do much, but we can imagine that in the future could trigger
something useful in the guest.
Signed-off-by: Stefano Stabellini <stefano.stabellini@eu.citrix.com>
Acked-by: Jonathan Knowles <Jonathan.Knowles@eu.citrix.com>=20
Get max memory from /local/domain/$domid/memory/static-max, and then
do value check. The value larger than static-max is invalid.
Signed-off-by: Yu Zhiguo <yuzg@cn.fujitsu.com>
The "opengl" setting is documented as having no effect unless "sdl" is
set. Make sure this is honoured.
Signed-off-by: Jeremy Fitzhardinge <jeremy.fitzhardinge@citrix.com>