Index: trunk/i386/boot2/modules.c =================================================================== --- trunk/i386/boot2/modules.c (revision 895) +++ trunk/i386/boot2/modules.c (revision 896) @@ -92,7 +92,14 @@ return retVal; } +void start_built_in_module(char* name, void(*start_function)(void)) +{ + start_function(); + // Notify the module system that this module really exists, specificaly, let other module link with it + module_loaded(name /*, moduleName, moduleVersion, moduleCompat*/); +} + /* * Load all modules in the /Extra/modules/ directory * Module depencdies will be loaded first Index: trunk/i386/boot2/modules.h =================================================================== --- trunk/i386/boot2/modules.h (revision 895) +++ trunk/i386/boot2/modules.h (revision 896) @@ -4,6 +4,7 @@ * */ +#include #include #include @@ -53,6 +54,7 @@ int init_module_system(); void load_all_modules(); +void start_built_in_module(char* name, void(*start_function)(void)); int load_module(char* module); Index: trunk/i386/modules/MakeInc.dir =================================================================== --- trunk/i386/modules/MakeInc.dir (revision 895) +++ trunk/i386/modules/MakeInc.dir (revision 896) @@ -141,7 +141,7 @@ .PHONY: $(SYMROOT)/boot_modules.c $(SYMROOT)/boot_modules.c: - @echo "\t$(MODULE_START)(); // $(MODULE_NAME)" >> $@ + @echo "\tstart_built_in_module(\"$(MODULE_NAME)\", &$(MODULE_START));" >> $@ $(SYMROOT)/boot_modules.h: @echo "void $(MODULE_START)(); // $(MODULE_NAME)" >> $@ Index: trunk/i386/modules/Makefile =================================================================== --- trunk/i386/modules/Makefile (revision 895) +++ trunk/i386/modules/Makefile (revision 896) @@ -62,6 +62,7 @@ $(SYMROOT)/boot_modules.c: ${OBJROOT} ${SYMROOT}/modules/ ${OBJROOT} $(addprefix $(OBJROOT)/, ${MODULE_OBJS}) @echo "// Autogenerated - do not modify" > $@ + @echo "#include " >> $@ @echo "#include \"boot_modules.h\"" >> $@ @echo "void start_built_in_modules() {" >> $@ Index: trunk/TODO =================================================================== --- trunk/TODO (revision 895) +++ trunk/TODO (revision 896) @@ -1,5 +1,6 @@ TODO List for Chameleon Boot Loader ==================================== +- Create a dummy module for any modules that are compiled in. This is needed for linking modules with dependencies that are not compiled in. - Fix the module system when booting chameleon with multiboot. Cleanup the xcode 4 fix. - Integrate Prasys current work on options and quick shortcut modified version of 18seven