diff options
author | Ian Jackson <ian.jackson@eu.citrix.com> | 2012-05-11 18:59:00 +0100 |
---|---|---|
committer | Ian Jackson <ian.jackson@eu.citrix.com> | 2012-05-11 18:59:00 +0100 |
commit | 599c7844af1ffe83ce79b94a02515208256d20af (patch) | |
tree | 545478a544848b38809b76b268da0df6b4a6100b /tools/libxl/libxl.h | |
parent | 4572b1f8becaf7686125648398379d75a18c478a (diff) | |
download | xen-599c7844af1ffe83ce79b94a02515208256d20af.tar.gz xen-599c7844af1ffe83ce79b94a02515208256d20af.tar.bz2 xen-599c7844af1ffe83ce79b94a02515208256d20af.zip |
libxl: ao: Convert libxl_run_bootloader
Convert libxl_run_bootloader to an ao_how-taking function.
It's implemented in terms of libxl__bootloader_run, which can be used
internally. The resulting code is pretty much a rewrite.
Significant changes include:
- We direct the bootloader's results to a file, not a pipe. This
makes it simpler to deal with as we don't have to read it
concurrently along with everything else.
- We now issue a warning if we find unexpected statements in the
bootloader results.
- The arrangements for buffering of bootloader input and output
are completely changed. Now we have a fixed limit of 64k
on output, and 4k on input, and discard the oldest data when
this overflows (which it shouldn't). There is no timeout
any more.
Signed-off-by: Ian Jackson <ian.jackson@eu.citrix.com>
Acked-by: Ian Campbell <ian.campbell@citrix.com>
Changes since v6:
* Use libxl__ev_child_inuse rather than testing pid directly.
* Fix a code style error.
* Properly initialise the sub-operations' aos in _init.
* Bugfixes.
Committed-by: Ian Jackson <Ian.Jackson@eu.citrix.com>
Diffstat (limited to 'tools/libxl/libxl.h')
-rw-r--r-- | tools/libxl/libxl.h | 3 |
1 files changed, 2 insertions, 1 deletions
diff --git a/tools/libxl/libxl.h b/tools/libxl/libxl.h index fb90aedb20..3087146ee6 100644 --- a/tools/libxl/libxl.h +++ b/tools/libxl/libxl.h @@ -495,7 +495,8 @@ int libxl_get_max_cpus(libxl_ctx *ctx); int libxl_run_bootloader(libxl_ctx *ctx, libxl_domain_build_info *info, libxl_device_disk *disk, - uint32_t domid); + uint32_t domid, + libxl_asyncop_how *ao_how); /* 0 means ERROR_ENOMEM, which we have logged */ |