module support in grub-emu

This commit is contained in:
Vladimir 'phcoder' Serbinenko 2010-02-07 16:13:59 +01:00
parent f38873b80b
commit 3dca5319c6
5 changed files with 27 additions and 71 deletions

View file

@ -38,8 +38,6 @@
#include <grub/partition.h>
#include <grub/i18n.h>
#include <grub_emu_init.h>
#define ENABLE_RELOCATABLE 0
#include "progname.h"
@ -55,6 +53,7 @@ grub_arch_modules_addr (void)
return 0;
}
#if GRUB_NO_MODULES
grub_err_t
grub_arch_dl_check_header (void *ehdr)
{
@ -71,6 +70,7 @@ grub_arch_dl_relocate_symbols (grub_dl_t mod, void *ehdr)
return GRUB_ERR_BAD_MODULE;
}
#endif
void
grub_reboot (void)
@ -148,6 +148,8 @@ usage (int status)
void grub_hostfs_init (void);
void grub_hostfs_fini (void);
void grub_host_init (void);
void grub_host_fini (void);
int
main (int argc, char *argv[])
@ -207,6 +209,7 @@ main (int argc, char *argv[])
signal (SIGINT, SIG_IGN);
grub_console_init ();
grub_host_init ();
grub_hostfs_init ();
/* XXX: This is a bit unportable. */
@ -232,7 +235,10 @@ main (int argc, char *argv[])
}
}
dir = grub_get_prefix (dir);
if (strcmp (root_dev, "host") == 0)
dir = xstrdup (dir);
else
dir = grub_get_prefix (dir);
prefix = xmalloc (strlen (root_dev) + 2 + strlen (dir) + 1);
sprintf (prefix, "(%s)%s", root_dev, dir);
free (dir);
@ -245,6 +251,7 @@ main (int argc, char *argv[])
grub_fini_all ();
#endif
grub_hostfs_fini ();
grub_host_fini ();
grub_machine_fini ();

View file

@ -168,7 +168,7 @@ grub_util_biosdisk_open (const char *name, grub_disk_t disk)
drive = find_grub_drive (name);
if (drive < 0)
return grub_error (GRUB_ERR_BAD_DEVICE,
return grub_error (GRUB_ERR_UNKNOWN_DEVICE,
"no mapping exists for `%s'", name);
disk->has_partitions = 1;
@ -949,7 +949,7 @@ grub_util_biosdisk_get_grub_dev (const char *os_dev)
drive = find_system_device (os_dev);
if (drive < 0)
{
grub_error (GRUB_ERR_BAD_DEVICE,
grub_error (GRUB_ERR_UNKNOWN_DEVICE,
"no mapping exists for `%s'", os_dev);
return 0;
}

View file

@ -262,56 +262,6 @@ grub_util_write_image (const char *img, size_t size, FILE *out)
grub_util_error ("write failed");
}
void *
grub_malloc (grub_size_t size)
{
return xmalloc (size);
}
void *
grub_zalloc (grub_size_t size)
{
void *ret;
ret = xmalloc (size);
memset (ret, 0, size);
return ret;
}
void
grub_free (void *ptr)
{
free (ptr);
}
void *
grub_realloc (void *ptr, grub_size_t size)
{
return xrealloc (ptr, size);
}
void *
grub_memalign (grub_size_t align, grub_size_t size)
{
void *p;
#if defined(HAVE_POSIX_MEMALIGN)
if (posix_memalign (&p, align, size) != 0)
p = 0;
#elif defined(HAVE_MEMALIGN)
p = memalign (align, size);
#else
(void) align;
(void) size;
grub_util_error ("grub_memalign is not supported");
#endif
if (! p)
grub_util_error ("out of memory");
return p;
}
/* Some functions that we don't use. */
void
grub_mm_init_region (void *addr __attribute__ ((unused)),
@ -376,7 +326,7 @@ grub_millisleep (grub_uint32_t ms)
#endif
#if !(defined (__i386__) || defined (__x86_64__))
#if !(defined (__i386__) || defined (__x86_64__)) && GRUB_NO_MODULES
void
grub_arch_sync_caches (void *address __attribute__ ((unused)),
grub_size_t len __attribute__ ((unused)))