diff --git a/conf/any-emu.rmk b/conf/any-emu.rmk
index ddc6b0fd4..d1e5754dc 100644
--- a/conf/any-emu.rmk
+++ b/conf/any-emu.rmk
@@ -14,7 +14,7 @@ kernel_img_SOURCES = kern/device.c kern/disk.c kern/dl.c kern/env.c \
util/hostdisk.c util/getroot.c util/mm.c util/time.c \
\
gnulib/progname.c util/hostfs.c disk/host.c
-kernel_img_HEADERS += datetime.h
+kernel_img_HEADERS += datetime.h util/misc.h
kernel_img_CFLAGS = $(TARGET_CPPFLAGS) $(TARGET_CFLAGS) -Wno-undef -I$(srcdir)/gnulib
kernel_img_LDFLAGS = $(COMMON_LDFLAGS)
TARGET_NO_STRIP = yes
@@ -88,6 +88,7 @@ pkglib_MODULES += pci.mod
pci_mod_SOURCES = util/pci.c commands/lspci.c
pci_mod_LDFLAGS = $(COMMON_LDFLAGS)
grub_emu_LDFLAGS += $(LIBPCIACCESS)
+kernel_img_HEADERS += libpciaccess.h
endif
include $(srcdir)/conf/common.mk
diff --git a/include/grub/libpciaccess.h b/include/grub/libpciaccess.h
new file mode 100644
index 000000000..4d2b3bde5
--- /dev/null
+++ b/include/grub/libpciaccess.h
@@ -0,0 +1,26 @@
+/*
+ * 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 .
+ */
+
+void EXPORT_FUNC (pci_slot_match_iterator_create) (void);
+void EXPORT_FUNC (pci_system_cleanup) (void);
+void EXPORT_FUNC (pci_device_unmap_range) (void);
+void EXPORT_FUNC (pci_iterator_destroy) (void);
+void EXPORT_FUNC (pci_device_map_range) (void);
+void EXPORT_FUNC (pci_device_cfg_read_u32) (void);
+void EXPORT_FUNC (pci_device_next) (void);
+void EXPORT_FUNC (pci_system_init) (void);
diff --git a/include/grub/util/misc.h b/include/grub/util/misc.h
index 63d4dac6d..8b78b92ea 100644
--- a/include/grub/util/misc.h
+++ b/include/grub/util/misc.h
@@ -27,6 +27,7 @@
#include
#include
+#include
#ifdef __NetBSD__
/* NetBSD uses /boot for its boot block. */
@@ -40,9 +41,9 @@
extern char *progname;
extern int verbosity;
-void grub_util_warn (const char *fmt, ...);
-void grub_util_info (const char *fmt, ...);
-void grub_util_error (const char *fmt, ...) __attribute__ ((noreturn));
+void EXPORT_FUNC(grub_util_warn) (const char *fmt, ...);
+void EXPORT_FUNC(grub_util_info) (const char *fmt, ...);
+void EXPORT_FUNC(grub_util_error) (const char *fmt, ...) __attribute__ ((noreturn));
void *xmalloc (size_t size);
void *xrealloc (void *ptr, size_t size);