Lines Matching refs:mp
96 fstyp_module_t *mp);
100 fstyp_module_t *mp);
178 fstyp_module_t *mp; in fstyp_ident_all() local
185 for (mp = h->modules; mp != NULL; mp = mp->next) { in fstyp_ident_all()
186 if ((fstyp_load_module(h, mp) == 0) && in fstyp_ident_all()
187 (mp->ops.fstyp_ident(mp->mod_handle) == 0)) { in fstyp_ident_all()
193 h->ident = mp; in fstyp_ident_all()
194 *ident = &mp->fsname[0]; in fstyp_ident_all()
208 fstyp_module_t *mp; in fstyp_ident_one() local
224 mp = fstyp_find_module_by_name(h, fsname); in fstyp_ident_one()
226 mp = h->modules; in fstyp_ident_one()
228 if (mp == NULL) { in fstyp_ident_one()
232 if (((error = fstyp_load_module(h, mp)) == 0) && in fstyp_ident_one()
233 ((error = mp->ops.fstyp_ident(mp->mod_handle)) == 0)) { in fstyp_ident_one()
234 h->ident = mp; in fstyp_ident_one()
247 fstyp_module_t *mp = h->ident; in fstyp_get_attr() local
249 if (mp == NULL) { in fstyp_get_attr()
253 return (mp->ops.fstyp_get_attr(mp->mod_handle, attr)); in fstyp_get_attr()
262 fstyp_module_t *mp = h->ident; in fstyp_dump() local
264 if (mp == NULL) { in fstyp_dump()
268 if (mp->ops.fstyp_dump == NULL) { in fstyp_dump()
272 return (mp->ops.fstyp_dump(mp->mod_handle, fout, ferr)); in fstyp_dump()
342 fstyp_module_t *mp; in fstyp_find_module_by_name() local
344 for (mp = h->modules; mp != NULL; mp = mp->next) { in fstyp_find_module_by_name()
345 if (strcmp(mp->fsname, fsname) == 0) { in fstyp_find_module_by_name()
346 return (mp); in fstyp_find_module_by_name()
362 fstyp_module_t *mp; in fstyp_init_module() local
365 if ((mp = fstyp_find_module_by_name(h, fsname)) != NULL) { in fstyp_init_module()
367 *mpp = mp; in fstyp_init_module()
384 if ((mp = calloc(1, sizeof (fstyp_module_t))) == NULL) { in fstyp_init_module()
389 mp->pathname = pathname; in fstyp_init_module()
390 (void) strlcpy(mp->fsname, fsname, sizeof (mp->fsname)); in fstyp_init_module()
394 h->modules = h->modules_tail = mp; in fstyp_init_module()
396 h->modules_tail->next = mp; in fstyp_init_module()
397 h->modules_tail = mp; in fstyp_init_module()
401 *mpp = mp; in fstyp_init_module()
410 fstyp_fini_module(struct fstyp_handle *h, fstyp_module_t *mp) in fstyp_fini_module() argument
412 if (h->ident == mp) { in fstyp_fini_module()
415 fstyp_unload_module(h, mp); in fstyp_fini_module()
416 if (mp->pathname != NULL) { in fstyp_fini_module()
417 free(mp->pathname); in fstyp_fini_module()
419 free(mp); in fstyp_fini_module()
463 fstyp_module_t *mp, *mp_next; in fstyp_fini_all_modules() local
465 for (mp = h->modules; mp != NULL; mp = mp_next) { in fstyp_fini_all_modules()
466 mp_next = mp->next; in fstyp_fini_all_modules()
467 fstyp_fini_module(h, mp); in fstyp_fini_all_modules()
477 fstyp_load_module(struct fstyp_handle *h, fstyp_module_t *mp) in fstyp_load_module() argument
481 if (mp->dl_handle != NULL) { in fstyp_load_module()
485 if ((mp->dl_handle = dlopen(mp->pathname, RTLD_LAZY)) == NULL) { in fstyp_load_module()
489 mp->ops.fstyp_init = (int (*)(int, off64_t, fstyp_mod_handle_t *)) in fstyp_load_module()
490 dlsym(mp->dl_handle, "fstyp_mod_init"); in fstyp_load_module()
491 mp->ops.fstyp_fini = (void (*)(fstyp_mod_handle_t)) in fstyp_load_module()
492 dlsym(mp->dl_handle, "fstyp_mod_fini"); in fstyp_load_module()
493 mp->ops.fstyp_ident = (int (*)(fstyp_mod_handle_t)) in fstyp_load_module()
494 dlsym(mp->dl_handle, "fstyp_mod_ident"); in fstyp_load_module()
495 mp->ops.fstyp_get_attr = (int (*)(fstyp_mod_handle_t, nvlist_t **)) in fstyp_load_module()
496 dlsym(mp->dl_handle, "fstyp_mod_get_attr"); in fstyp_load_module()
497 mp->ops.fstyp_dump = (int (*)(fstyp_mod_handle_t, FILE *, FILE *)) in fstyp_load_module()
498 dlsym(mp->dl_handle, "fstyp_mod_dump"); in fstyp_load_module()
500 if (((mp->ops.fstyp_init) == NULL) || in fstyp_load_module()
501 ((mp->ops.fstyp_fini) == NULL) || in fstyp_load_module()
502 ((mp->ops.fstyp_ident) == NULL) || in fstyp_load_module()
503 ((mp->ops.fstyp_get_attr) == NULL)) { in fstyp_load_module()
504 fstyp_unload_module(h, mp); in fstyp_load_module()
508 error = mp->ops.fstyp_init(h->fd, h->offset, &mp->mod_handle); in fstyp_load_module()
510 fstyp_unload_module(h, mp); in fstyp_load_module()
519 fstyp_unload_module(struct fstyp_handle *h, fstyp_module_t *mp) in fstyp_unload_module() argument
521 if (mp->mod_handle != NULL) { in fstyp_unload_module()
522 mp->ops.fstyp_fini(mp->mod_handle); in fstyp_unload_module()
523 mp->mod_handle = NULL; in fstyp_unload_module()
525 if (mp->dl_handle != NULL) { in fstyp_unload_module()
526 (void) dlclose(mp->dl_handle); in fstyp_unload_module()
527 mp->dl_handle = NULL; in fstyp_unload_module()