int EXPORT_FUNC(grub_dl_unload) (grub_dl_t mod);
void grub_dl_unload_unneeded (void);
void grub_dl_unload_all (void);
-#if defined (GRUB_UTIL) || defined (GRUB_TARGET_NO_MODULES)
-#define GRUB_NO_MODULES 1
-#else
-#define GRUB_NO_MODULES 0
-#endif
int EXPORT_FUNC(grub_dl_ref) (grub_dl_t mod);
int EXPORT_FUNC(grub_dl_unref) (grub_dl_t mod);
- void EXPORT_FUNC(grub_dl_iterate) (int (*hook) (grub_dl_t mod));
+ extern grub_dl_t EXPORT_VAR(grub_dl_head);
+
+ #define FOR_DL_MODULES(var) FOR_LIST_ELEMENTS ((var), (grub_dl_head))
+
grub_dl_t EXPORT_FUNC(grub_dl_get) (const char *name);
grub_err_t grub_dl_register_symbol (const char *name, void *addr,
grub_dl_t mod);
#ifdef GRUB_MACHINE_PCBIOS
/* Halt the system, using APM if possible. If NO_APM is true, don't
* use APM even if it is available. */
- void EXPORT_FUNC (grub_halt) (int no_apm);
+ void EXPORT_FUNC (grub_halt) (int no_apm) __attribute__ ((noreturn));
#else
- void EXPORT_FUNC (grub_halt) (void);
+ void EXPORT_FUNC (grub_halt) (void) __attribute__ ((noreturn));
#endif
+#ifdef GRUB_MACHINE_EMU
+/* Flag to control module autoloading in normal mode. */
+extern int EXPORT_VAR(grub_no_autoload);
+#else
+#define grub_no_autoload 0
+#endif
+
#endif /* ! GRUB_MISC_HEADER */