Module Name: src Committed By: pgoyette Date: Sat Jun 26 07:23:57 UTC 2010
Modified Files: src/sys/kern: init_main.c kern_module.c src/sys/sys: module.h Log Message: 1. Add an allocator for 'struct module *' and use it instead of local allocations. 2. Add a new member mod_flags to the 'struct module *' and define MODFLG_MUST_FORCE. If this flag is set and the entry is on the list of builtins, it means that the module has been explicitly unloaded and any re-loads will require the MODCTL_LOAD_FORCE flag. Provide a module_require_force() method to set this flag; once set, it should never be unset. 3. Rename original module_init2() to module_start_unload_thread() to be more descriptive of what it does. 4. Add a new module_builtin_require_force() routine that sets the MODFLG_MUST_FORCE flag for any module that has not yet successfully been initialized. Call it after module_init_class(MODULE_CLASS_ANY) to disable remaining built-in modules. This makes built-in versions of the xxxVERBOSE modules work once more, resolving breakage reported by jruoho@ and nj...@. Discussed on tech-kern, and comments and suggestions implemented. No additional discussion for last week. Tested only on amd64 systems, but there's nothing here that should be port- or architecture-specific (no more specific than existing module implementation) so others should not break. To generate a diff of this commit: cvs rdiff -u -r1.421 -r1.422 src/sys/kern/init_main.c cvs rdiff -u -r1.69 -r1.70 src/sys/kern/kern_module.c cvs rdiff -u -r1.23 -r1.24 src/sys/sys/module.h Please note that diffs are not public domain; they are subject to the copyright notices on the relevant files.