Hi, How about following (may not be syntaxically correct):
In kernel: /* Variable holding pointer to preboot hook function. */ preboot_hook: .long 0 ... /* Check if there is preboot hook installed. */ movl preboot_hook, %eax testl %eax, %eax jne 1f call %eax 1: /* Continue boot. */ Then in module code: void grub_preboot_hook_handler(void) { /* Process list of registered preboot hooks. */ } void grub_preboot_register_hook(...); void grub_preboot_unregister_hook(...); GRUB_MOD_INIT(preboot) { preboot_hook = grub_preboot_hook_handler; } GRUB_MOD_FINI(preboot) { preboot_hook = 0; } If preboot.mod gets loaded then it goes and registers preboot handler to kernel to do its tricks. Other modules then would use preboot.mod to register their own handlers. This would have minimal impact for kernel. Thanks, Vesa Jääskeläinen _______________________________________________ Grub-devel mailing list Grub-devel@gnu.org http://lists.gnu.org/mailman/listinfo/grub-devel