pv-grub: re-implement xc_map_foreign_ranges

Also get rid of va and npages members of privcmd_mmap_entry since we
do not need them any more.

Signed-off-by: Samuel Thibault <samuel.thibault@eu.citrix.com>
This commit is contained in:
Keir Fraser committed 2008-07-24 14:10:45 +01:00
1 parent 0905190686
commit fd6a37dbdc
2 files changed
+19 -18

No files matched your search

-2
View File
@@ -10,9 +10,7 @@ typedef struct privcmd_hypercall
} privcmd_hypercall_t;
typedef struct privcmd_mmap_entry {
u64 va;
u64 mfn;
u64 npages;
} privcmd_mmap_entry_t;
#endif /* __MINIOS_PUBLIC_PRIVCMD_H__ */
+19 -16
View File
@@ -80,24 +80,27 @@ void *xc_map_foreign_ranges(int xc_handle, uint32_t dom,
size_t size, int prot, size_t chunksize,
privcmd_mmap_entry_t entries[], int nentries)
{
ERROR("%s: implement me\n");
return NULL;
}
#if 0
int xc_map_foreign_ranges(int xc_handle, uint32_t dom,
privcmd_mmap_entry_t *entries, int nr)
{
int i;
for (i = 0; i < nr; i++) {
unsigned long mfn = entries[i].mfn;
do_map_frames(entries[i].va, &mfn, entries[i].npages, 0, 1, dom, 0, L1_PROT);
}
return 0;
}
unsigned long mfns[size / PAGE_SIZE];
int i, j, n;
unsigned long pt_prot = 0;
#ifdef __ia64__
/* TODO */
#else
if (prot & PROT_READ)
pt_prot = L1_PROT_RO;
if (prot & PROT_WRITE)
pt_prot = L1_PROT;
#endif
n = 0;
for (i = 0; i < nentries; i++)
for (j = 0; j < chunksize / PAGE_SIZE; j++)
mfns[n++] = entries[i].mfn + j;
return map_frames_ex(mfns, n, 1, 0, 1, dom, 0, pt_prot);
}
int do_xen_hypercall(int xc_handle, privcmd_hypercall_t *hypercall)
{
multicall_entry_t call;
Reference in new issue
Block a user
Blocking a user prevents them from interacting with repositories, such as opening or commenting on pull requests or issues. Learn more about blocking a user.