diff --git a/conf/any-emu.rmk b/conf/any-emu.rmk
index 5f6798d79..ffaabcd2f 100644
--- a/conf/any-emu.rmk
+++ b/conf/any-emu.rmk
@@ -9,10 +9,11 @@ kernel_img_SOURCES = kern/device.c kern/disk.c kern/dl.c kern/env.c \
kern/corecmd.c kern/file.c kern/fs.c kern/main.c kern/misc.c \
kern/parser.c kern/partition.c kern/term.c \
kern/rescue_reader.c kern/rescue_parser.c \
- \
- kern/emu/misc.c kern/emu/getroot.c kern/emu/time.c \
- kern/emu/hostdisk.c kern/emu/hostfs.c kern/emu/console.c \
- \
+ \
+ kern/emu/main.c kern/emu/misc.c kern/emu/getroot.c \
+ kern/emu/time.c kern/emu/hostdisk.c kern/emu/hostfs.c \
+ kern/emu/console.c \
+ \
gnulib/progname.c disk/host.c
kernel_img_HEADERS += datetime.h emu/misc.h
kernel_img_CFLAGS = $(TARGET_CPPFLAGS) $(TARGET_CFLAGS) -Wno-undef -I$(srcdir)/gnulib
@@ -85,7 +86,7 @@ endif
ifeq ($(enable_grub_emu_pci), yes)
pkglib_MODULES += pci.mod
-pci_mod_SOURCES = util/pci.c commands/lspci.c
+pci_mod_SOURCES = bus/emu/pci.c commands/lspci.c
pci_mod_LDFLAGS = $(COMMON_LDFLAGS)
grub_emu_LDFLAGS += $(LIBPCIACCESS)
kernel_img_HEADERS += libpciaccess.h
@@ -104,13 +105,8 @@ DISTCLEANFILES += grub_emu_init.c
CLEANFILES += grub-emu
ifneq ($(TARGET_NO_MODULES), yes)
grub-emu: $(pkglib_PROGRAMS)
- $(CC) -o $@ $(pkglib_PROGRAMS) $(grub_emu_LDFLAGS) $(LDFLAGS)
+ $(CC) -o $@ $^ $(grub_emu_LDFLAGS) $(LDFLAGS)
else
-
-pkglib_MODULES += emu.mod
-emu_mod_SOURCES = kern/emu/main.c
-emu_mod_CFLAGS = -I$(srcdir)/gnulib
-
grub-emu: $(pkglib_MODULES) $(pkglib_PROGRAMS)
$(CC) -o $@ $^ $(grub_emu_LDFLAGS) $(LDFLAGS)
endif
diff --git a/include/grub/dl.h b/include/grub/dl.h
index cfb7c2f99..cf5da7fd5 100644
--- a/include/grub/dl.h
+++ b/include/grub/dl.h
@@ -96,23 +96,8 @@ void grub_dl_unload_all (void);
#else
#define GRUB_NO_MODULES 0
#endif
-#if GRUB_NO_MODULES
-static inline int
-grub_dl_ref (grub_dl_t mod)
-{
- (void) mod;
- return 0;
-}
-static inline int
-grub_dl_unref (grub_dl_t mod)
-{
- (void) mod;
- return 0;
-}
-#else
int EXPORT_FUNC(grub_dl_ref) (grub_dl_t mod);
int EXPORT_FUNC(grub_dl_unref) (grub_dl_t mod);
-#endif
void EXPORT_FUNC(grub_dl_iterate) (int (*hook) (grub_dl_t mod));
grub_dl_t EXPORT_FUNC(grub_dl_get) (const char *name);
grub_err_t grub_dl_register_symbol (const char *name, void *addr,
diff --git a/kern/dl.c b/kern/dl.c
index 19ee13243..c6a038cfa 100644
--- a/kern/dl.c
+++ b/kern/dl.c
@@ -469,12 +469,14 @@ grub_dl_resolve_dependencies (grub_dl_t mod, Elf_Ehdr *e)
return GRUB_ERR_NONE;
}
-#if !GRUB_NO_MODULES
int
grub_dl_ref (grub_dl_t mod)
{
grub_dl_dep_t dep;
+ if (!mod)
+ return 0;
+
for (dep = mod->dep; dep; dep = dep->next)
grub_dl_ref (dep->mod);
@@ -486,12 +488,14 @@ grub_dl_unref (grub_dl_t mod)
{
grub_dl_dep_t dep;
+ if (!mod)
+ return 0;
+
for (dep = mod->dep; dep; dep = dep->next)
grub_dl_unref (dep->mod);
return --mod->ref_count;
}
-#endif
static void
grub_dl_flush_cache (grub_dl_t mod)
diff --git a/kern/emu/cache.S b/kern/emu/cache.S
deleted file mode 100644
index 087b2b495..000000000
--- a/kern/emu/cache.S
+++ /dev/null
@@ -1,17 +0,0 @@
-#ifndef GRUB_MACHINE_EMU
-#error "This source is only meant for grub-emu platform"
-#endif
-
-#if GRUB_CPU_I386
-#elif GRUB_CPU_X86_64
-#elif GRUB_CPU_SPARC64
-#include "../sparc64/cache.S"
-#elif GRUB_CPU_MIPS
-#include "../mips/cache.S"
-#elif GRUB_CPU_MIPSEL
-#include "../mips/cache.S"
-#elif GRUB_CPU_POWERPC
-#include "../powerpc/cache.S"
-#else
-#error "No target cpu type is defined"
-#endif
diff --git a/kern/emu/dummy/dl.c b/kern/emu/dummy/dl.c
deleted file mode 100644
index 8e9fabfc2..000000000
--- a/kern/emu/dummy/dl.c
+++ /dev/null
@@ -1,51 +0,0 @@
-/*
- * GRUB -- GRand Unified Bootloader
- * Copyright (C) 2010 Free Software Foundation, Inc.
- *
- * GRUB is free software: you can redistribute it and/or modify
- * it under the terms of the GNU General Public License as published by
- * the Free Software Foundation, either version 3 of the License, or
- * (at your option) any later version.
- *
- * GRUB is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- * GNU General Public License for more details.
- *
- * You should have received a copy of the GNU General Public License
- * along with GRUB. If not, see .
- */
-
-#include
-#include
-
-grub_err_t
-grub_arch_dl_check_header (void *ehdr)
-{
- (void) ehdr;
-
- return GRUB_ERR_BAD_MODULE;
-}
-
-grub_err_t
-grub_arch_dl_relocate_symbols (grub_dl_t mod, void *ehdr)
-{
- (void) mod;
- (void) ehdr;
-
- return GRUB_ERR_BAD_MODULE;
-}
-
-/* int */
-/* grub_dl_ref (grub_dl_t mod) */
-/* { */
-/* (void) mod; */
-/* return 0; */
-/* } */
-
-/* int */
-/* grub_dl_unref (grub_dl_t mod) */
-/* { */
-/* (void) mod; */
-/* return 0; */
-/* } */
diff --git a/kern/emu/lite.c b/kern/emu/lite.c
deleted file mode 100644
index 1f06e39dc..000000000
--- a/kern/emu/lite.c
+++ /dev/null
@@ -1,16 +0,0 @@
-#include
-#include
-
-/* grub-emu-lite supports dynamic module loading, so it won't have any
- embedded modules. */
-void
-grub_init_all(void)
-{
- return;
-}
-
-void
-grub_fini_all(void)
-{
- return;
-}
diff --git a/kern/emu/main.c b/kern/emu/main.c
index 978919f2a..c9b1d6595 100644
--- a/kern/emu/main.c
+++ b/kern/emu/main.c
@@ -27,6 +27,7 @@
#include
#include
+#include
#include
#include
#include
diff --git a/util/misc.c b/util/misc.c
index 17fa6d5e4..c413352e7 100644
--- a/util/misc.c
+++ b/util/misc.c
@@ -564,3 +564,17 @@ grub_util_init_nls (void)
#endif /* (defined(ENABLE_NLS) && ENABLE_NLS) */
}
#endif
+
+int
+grub_dl_ref (grub_dl_t mod)
+{
+ (void) mod;
+ return 0;
+}
+
+int
+grub_dl_unref (grub_dl_t mod)
+{
+ (void) mod;
+ return 0;
+}