aboutsummaryrefslogtreecommitdiffstats
path: root/tools/libxc/xc_dom_bzimageloader.c
diff options
context:
space:
mode:
authorBastian Blank <bastian@waldi.eu.org>2013-04-18 12:49:54 +0100
committerIan Campbell <ian.campbell@citrix.com>2013-04-22 12:46:30 +0100
commit592d3ef961cafda917a7f123999dc04d426254ee (patch)
tree98f82705cbb7348589b2c2630f069dc25e05ed5b /tools/libxc/xc_dom_bzimageloader.c
parent071c61e7367987a9f71dc18c3c58a5dba659a5c8 (diff)
downloadxen-592d3ef961cafda917a7f123999dc04d426254ee.tar.gz
xen-592d3ef961cafda917a7f123999dc04d426254ee.tar.bz2
xen-592d3ef961cafda917a7f123999dc04d426254ee.zip
libxc: Add unsafe decompressors
Add decompressors based on hypervisor code. This are used in mini-os by pv-grub. This enables pv-grub to boot kernels compressed with e.g. xz, which are becoming more common. Signed-off-by: Bastian Blank <waldi@debian.org> Adjusted to use terminology "unsafe" rather than "trusted" to indicate that the user had better sanitise the data (or not care, as in stub domains) as suggested by Tim Deegan. This was effectively a sed script. Minimise the changes to hypervisor code by moving the "compat layer" into the relevant libxc source files (which include the Xen ones). Signed-off-by: Ian Campbell <ian.campbell@citrix.com> Acked-by: Samuel Thibault <samuel.thibault@ens-lyon.org>
Diffstat (limited to 'tools/libxc/xc_dom_bzimageloader.c')
-rw-r--r--tools/libxc/xc_dom_bzimageloader.c11
1 files changed, 11 insertions, 0 deletions
diff --git a/tools/libxc/xc_dom_bzimageloader.c b/tools/libxc/xc_dom_bzimageloader.c
index 6daa78ce2a..3870c6d5f5 100644
--- a/tools/libxc/xc_dom_bzimageloader.c
+++ b/tools/libxc/xc_dom_bzimageloader.c
@@ -35,6 +35,8 @@
#include "xg_private.h"
#include "xc_dom.h"
+#ifndef __MINIOS__
+
#if defined(HAVE_BZLIB)
#include <bzlib.h>
@@ -562,6 +564,15 @@ static int xc_try_lzo1x_decode(
#endif
+#else /* __MINIOS__ */
+
+int xc_try_bzip2_decode(struct xc_dom_image *dom, void **blob, size_t *size);
+int xc_try_lzma_decode(struct xc_dom_image *dom, void **blob, size_t *size);
+int xc_try_lzo1x_decode(struct xc_dom_image *dom, void **blob, size_t *size);
+int xc_try_xz_decode(struct xc_dom_image *dom, void **blob, size_t *size);
+
+#endif /* !__MINIOS__ */
+
struct setup_header {
uint8_t _pad0[0x1f1]; /* skip uninteresting stuff */
uint8_t setup_sects;