Implement XEN VFB support.

This commit is contained in:
Vladimir Serbinenko 2013-12-17 13:07:26 +01:00
parent 60d1dd3d72
commit 71669c3b76
14 changed files with 937 additions and 9 deletions

View file

@ -27,6 +27,8 @@
#include <grub/i386/tsc.h>
#include <grub/term.h>
#include <grub/loader.h>
#include <grub/keyboard_layouts.h>
#include <grub/video.h>
grub_addr_t grub_modbase;
struct start_info *grub_xen_start_page_addr;
@ -67,6 +69,7 @@ grub_xen_alloc_shared_page (domid_t dom, grub_xen_grant_t * grnum)
ret = grub_memalign (GRUB_XEN_PAGE_SIZE, GRUB_XEN_PAGE_SIZE);
if (!ret)
return NULL;
grub_memset (ret, 0, GRUB_XEN_PAGE_SIZE);
mfn = grub_xen_ptr2mfn (ret);
entry->full_page.pad0 = 0;
entry->full_page.frame = mfn;
@ -254,6 +257,8 @@ grub_xenstore_write_file (const char *dir, const void *buf, grub_size_t len)
grub_size_t dirlen = grub_strlen (dir) + 1;
char *resp;
grub_dprintf ("xen", "writing `%s'\n", dir);
grub_memset (&msg, 0, sizeof (msg));
msg.type = XS_WRITE;
msg.len = dirlen + len;
@ -540,6 +545,13 @@ grub_machine_init (void)
map_all_pages ();
grub_video_xen_init ();
grub_font_init ();
grub_gfxterm_init ();
grub_keylayouts_init ();
grub_xen_keyboard_init ();
grub_console_init ();
grub_tsc_init ();
@ -563,6 +575,8 @@ void
grub_machine_fini (int flags __attribute__ ((unused)))
{
grub_xendisk_fini ();
grub_video_xen_fini ();
grub_xen_keyboard_fini ();
grub_boot_fini ();
}