rem: dprintf("module = %p, info = %p\n", module, module->info);
context: init_module(module *module){	switch (module->state) {		case MODULE_QUERIED:		case MODULE_LOADED:		{			status_t status;			module->state = MODULE_INIT;			// resolve dependencies			status = get_dependent_modules(module);			if (status < B_OK) {				module->state = MODULE_LOADED;				return status;			}			// init moduledprintf("module = %p, info = %p\n", module, module->info);			TRACE(("initializing module %s (at %p)... \n", module->name, module->info->std_ops));			status = module->info->std_ops(B_MODULE_INIT);			TRACE(("...done (%s)\n", strerror(status)));			if (status >= B_OK)				module->state = MODULE_READY;			else {				put_dependent_modules(module);				module->state = MODULE_LOADED;			}			return status;		}		case MODULE_READY:			return B_OK;		case MODULE_INIT:			FATAL(("circular reference to %s\n", module->name));			return B_ERROR;		case MODULE_UNINIT:			FATAL(("tried to load module %s which is currently unloading\n", module->name));			return B_ERROR;		case MODULE_ERROR:			FATAL(("cannot load module %s because its earlier unloading failed\n", module->name));			return B_ERROR;		default:			return B_ERROR;	}	// never trespasses here}