Lines Matching refs:module
116 module_detach(module_t *module) in module_detach() argument
118 struct rcm_mod_ops *ops = module->modops; in module_detach()
120 rcm_log_message(RCM_TRACE2, "module_detach(name=%s)\n", module->name); in module_detach()
122 ops->rcmop_unregister(module->rcmhandle); in module_detach()
130 module_attach(module_t *module) in module_attach() argument
132 struct rcm_mod_ops *ops = module->modops; in module_attach()
134 rcm_log_message(RCM_TRACE2, "module_attach(name=%s)\n", module->name); in module_attach()
136 if (ops->rcmop_register(module->rcmhandle) != RCM_SUCCESS) { in module_attach()
138 gettext("module %s register() failed\n"), module->name); in module_attach()
143 module_init(module_t *module) in module_init() argument
145 if (module->dlhandle) in module_init()
147 return (module->init()); in module_init()
150 return (script_init(module)); in module_init()
157 module_info(module_t *module) in module_info() argument
159 if (module->dlhandle) in module_info()
161 return (module->info()); in module_info()
164 return (script_info(module)); in module_info()
168 module_fini(module_t *module) in module_fini() argument
170 if (module->dlhandle) in module_fini()
172 return (module->fini()); in module_fini()
175 return (script_fini(module)); in module_fini()
182 module_unload(module_t *module) in module_unload() argument
184 int version = module->modops->version; in module_unload()
186 rcm_log_message(RCM_DEBUG, "module_unload(name=%s)\n", module->name); in module_unload()
188 (void) module_fini(module); in module_unload()
190 rcm_handle_free(module->rcmhandle); in module_unload()
191 free(module->name); in module_unload()
198 free(module->modops); in module_unload()
206 if (module->dlhandle) in module_unload()
207 rcm_module_close(module->dlhandle); in module_unload()
209 free(module); in module_unload()
218 module_t *module; in module_load() local
225 module = s_calloc(1, sizeof (*module)); in module_load()
226 module->name = s_strdup(modname); in module_load()
227 module->modops = NULL; in module_load()
228 rcm_init_queue(&module->client_q); in module_load()
232 module->dlhandle = rcm_module_open(modname); in module_load()
234 if (module->dlhandle == NULL) { in module_load()
243 module->init = (struct rcm_mod_ops *(*)())dlsym( in module_load()
244 module->dlhandle, "rcm_mod_init"); in module_load()
245 module->fini = (int (*)())dlsym( in module_load()
246 module->dlhandle, "rcm_mod_fini"); in module_load()
247 module->info = (const char *(*)())dlsym(module->dlhandle, in module_load()
249 if (module->init == NULL || module->fini == NULL || in module_load()
250 module->info == NULL) { in module_load()
258 module->dlhandle = NULL; in module_load()
259 module->init = (struct rcm_mod_ops *(*)()) NULL; in module_load()
260 module->fini = (int (*)()) NULL; in module_load()
261 module->info = (const char *(*)()) NULL; in module_load()
264 if ((module->modops = module_init(module)) == NULL) { in module_load()
265 if (module->dlhandle) in module_load()
274 switch (module->modops->version) { in module_load()
276 module->modops = modops_from_v1((void *)module->modops); in module_load()
285 modname, module->modops->version); in module_load()
286 (void) module_fini(module); in module_load()
293 if ((module->modops->rcmop_register == NULL) || in module_load()
294 (module->modops->rcmop_unregister == NULL) || in module_load()
295 (module->modops->rcmop_get_info == NULL) || in module_load()
296 (module->modops->rcmop_request_suspend == NULL) || in module_load()
297 (module->modops->rcmop_notify_resume == NULL) || in module_load()
298 (module->modops->rcmop_request_offline == NULL) || in module_load()
299 (module->modops->rcmop_notify_online == NULL) || in module_load()
300 (module->modops->rcmop_notify_remove == NULL)) { in module_load()
304 (void) module_fini(module); in module_load()
308 module->rcmhandle = rcm_handle_alloc(module); in module_load()
309 return (module); in module_load()
312 if (module->modops && module->modops->version == RCM_MOD_OPS_V1) in module_load()
313 free(module->modops); in module_load()
315 if (module->dlhandle) in module_load()
316 rcm_module_close(module->dlhandle); in module_load()
318 free(module->name); in module_load()
319 free(module); in module_load()
329 module_t *module; in cli_module_hold() local
334 module = module_head; in cli_module_hold()
335 while (module) { in cli_module_hold()
336 if (strcmp(module->name, modname) == 0) { in cli_module_hold()
339 module = module->next; in cli_module_hold()
342 if (module) { in cli_module_hold()
343 module->ref_count++; in cli_module_hold()
345 return (module); in cli_module_hold()
351 if ((module = module_load(modname)) == NULL) { in cli_module_hold()
359 module->ref_count = MOD_REFCNT_INIT; in cli_module_hold()
360 module->next = module_head; in cli_module_hold()
361 module_head = module; in cli_module_hold()
365 return (module); in cli_module_hold()
372 cli_module_rele(module_t *module) in cli_module_rele() argument
376 rcm_log_message(RCM_TRACE3, "cli_module_rele(name=%s)\n", module->name); in cli_module_rele()
379 if (--(module->ref_count) != 0) { in cli_module_rele()
384 rcm_log_message(RCM_TRACE2, "unloading module %s\n", module->name); in cli_module_rele()
389 while (curr && (curr != module)) { in cli_module_rele()
396 module->name); in cli_module_rele()
404 module_unload(module); in cli_module_rele()
527 client->module = mod; in rsrc_client_alloc()
551 strcmp(modname, client->module->name) == 0) { in rsrc_client_find()
564 client->alias, client->module->name, client->pid); in rsrc_client_add()
577 client->alias, client->module->name, client->pid); in rsrc_client_remove()
612 if (client->module) { in rsrc_clients_free()
613 cli_module_rele(client->module); in rsrc_clients_free()
638 struct rcm_mod_ops *ops = client->module->modops; in rsrc_client_action()
643 client->module->name, cmd, targ->flag); in rsrc_client_action()
649 hdl = rcm_handle_alloc(client->module); in rsrc_client_action()
906 targ->seq_num, client->module->name, info, error, in rsrc_client_action()
1564 module_t *module; in rcmd_db_init() local
1579 module = cli_module_hold(entp->d_name); in rcmd_db_init()
1580 if (module == NULL) { in rcmd_db_init()
1588 if (module->ref_count == MOD_REFCNT_INIT) { in rcmd_db_init()
1592 module_attach(module); in rcmd_db_init()
1594 cli_module_rele(module); in rcmd_db_init()
1775 user->module->name, user->pid, user->alias); in print_node()
1806 rcm_handle_alloc(module_t *module) in rcm_handle_alloc() argument
1812 hdl->modname = module->name; in rcm_handle_alloc()
1815 hdl->module = module; in rcm_handle_alloc()