aboutsummaryrefslogtreecommitdiffstats
path: root/xen/include/public/xen.h
diff options
context:
space:
mode:
authorKeir Fraser <keir@xen.org>2010-11-09 11:50:14 +0000
committerKeir Fraser <keir@xen.org>2010-11-09 11:50:14 +0000
commit9f41c22a559a7ec039a195f6dc8bca32c66fcd5a (patch)
tree5653b49c08df067083bd24123a2cbb5539c2ede7 /xen/include/public/xen.h
parent5a771800114c437fb857b44b3ed74f60e87979c2 (diff)
downloadxen-9f41c22a559a7ec039a195f6dc8bca32c66fcd5a.tar.gz
xen-9f41c22a559a7ec039a195f6dc8bca32c66fcd5a.tar.bz2
xen-9f41c22a559a7ec039a195f6dc8bca32c66fcd5a.zip
x86: allow passing initrd to kernel without exposing it through the initial mapping
The (Dom0 only for now) kernel can indicate that it doesn't need its initrd mapped through a newly added ELF note - it gets passed the PFN of the initrd in this case instead of the virtual address. Even for kernels not making use of the new feature, the initrd will no longer get copied into the initial mapping, but the memory it lives in will get assigned to and mapped for the guest instead. Signed-off-by: Jan Beulich <jbeulich@novell.com>
Diffstat (limited to 'xen/include/public/xen.h')
-rw-r--r--xen/include/public/xen.h5
1 files changed, 4 insertions, 1 deletions
diff --git a/xen/include/public/xen.h b/xen/include/public/xen.h
index 6c783412cf..572d98c66c 100644
--- a/xen/include/public/xen.h
+++ b/xen/include/public/xen.h
@@ -581,7 +581,9 @@ struct start_info {
unsigned long pt_base; /* VIRTUAL address of page directory. */
unsigned long nr_pt_frames; /* Number of bootstrap p.t. frames. */
unsigned long mfn_list; /* VIRTUAL address of page-frame list. */
- unsigned long mod_start; /* VIRTUAL address of pre-loaded module. */
+ unsigned long mod_start; /* VIRTUAL address of pre-loaded module */
+ /* (PFN of pre-loaded module if */
+ /* SIF_MOD_START_PFN set in flags). */
unsigned long mod_len; /* Size (bytes) of pre-loaded module. */
int8_t cmd_line[MAX_GUEST_CMDLINE];
/* The pfn range here covers both page table and p->m table frames. */
@@ -600,6 +602,7 @@ typedef struct start_info start_info_t;
#define SIF_PRIVILEGED (1<<0) /* Is the domain privileged? */
#define SIF_INITDOMAIN (1<<1) /* Is this the initial control domain? */
#define SIF_MULTIBOOT_MOD (1<<2) /* Is mod_start a multiboot module? */
+#define SIF_MOD_START_PFN (1<<3) /* Is mod_start a PFN? */
#define SIF_PM_MASK (0xFF<<8) /* reserve 1 byte for xen-pm options */
/*