Lines Matching refs:lf

195 linker_file_sysinit(linker_file_t lf)
200 lf->filename));
204 if (linker_file_lookup_set(lf, "sysinit_set", &start, &stop, NULL) != 0)
243 linker_file_sysuninit(linker_file_t lf)
248 lf->filename));
252 if (linker_file_lookup_set(lf, "sysuninit_set", &start, &stop,
293 linker_file_register_sysctls(linker_file_t lf, bool enable)
299 lf->filename));
303 if (linker_file_lookup_set(lf, "sysctl_set", &start, &stop, NULL) != 0)
319 linker_file_enable_sysctls(linker_file_t lf)
325 lf->filename));
329 if (linker_file_lookup_set(lf, "sysctl_set", &start, &stop, NULL) != 0)
341 linker_file_unregister_sysctls(linker_file_t lf)
346 " for %s\n", lf->filename));
350 if (linker_file_lookup_set(lf, "sysctl_set", &start, &stop, NULL) != 0)
362 linker_file_register_modules(linker_file_t lf)
369 " in %s\n", lf->filename));
373 if (linker_file_lookup_set(lf, MDT_SETNAME, &start, &stop, NULL) != 0) {
379 if (lf == linker_kernel_file) {
391 moddata->name, lf->filename));
392 error = module_register(moddata, lf);
419 linker_file_t lf;
427 lf = linker_find_file_by_name(filename);
428 if (lf) {
431 *result = lf;
432 lf->refs++;
446 error = LINKER_LOAD_FILE(lc, filename, &lf);
453 if (lf) {
454 error = linker_file_register_modules(lf);
456 linker_file_unload(lf, LINKER_UNLOAD_FORCE);
459 modules = !TAILQ_EMPTY(&lf->modules);
460 linker_file_register_sysctls(lf, false);
461 linker_file_sysinit(lf);
462 lf->flags |= LINKER_FILE_LINKED;
469 if (modules && TAILQ_EMPTY(&lf->modules)) {
470 linker_file_unload(lf, LINKER_UNLOAD_FORCE);
473 linker_file_enable_sysctls(lf);
474 EVENTHANDLER_INVOKE(kld_load, lf);
475 *result = lf;
530 linker_file_t lf)
536 if (lf == NULL) {
544 lf = mod->container;
548 error = linker_file_unload(lf, LINKER_UNLOAD_NORMAL);
556 linker_file_t lf;
563 TAILQ_FOREACH(lf, &linker_files, link) {
564 if (strcmp(lf->filename, koname) == 0)
566 if (strcmp(lf->filename, filename) == 0)
570 return (lf);
576 linker_file_t lf;
579 TAILQ_FOREACH(lf, &linker_files, link)
580 if (lf->id == fileid && lf->flags & LINKER_FILE_LINKED)
582 return (lf);
588 linker_file_t lf;
592 TAILQ_FOREACH(lf, &linker_files, link) {
593 retval = predicate(lf, context);
604 linker_file_t lf;
612 lf = (linker_file_t)kobj_create((kobj_class_t)lc, M_LINKER, M_WAITOK);
613 if (lf == NULL)
615 lf->ctors_addr = 0;
616 lf->ctors_size = 0;
617 lf->refs = 1;
618 lf->userrefs = 0;
619 lf->flags = 0;
620 lf->filename = strdup(filename, M_LINKER);
621 lf->pathname = strdup(pathname, M_LINKER);
622 LINKER_GET_NEXT_FILE_ID(lf->id);
623 lf->ndeps = 0;
624 lf->deps = NULL;
625 lf->loadcnt = ++loadcnt;
627 lf->exidx_addr = 0;
628 lf->exidx_size = 0;
630 STAILQ_INIT(&lf->common);
631 TAILQ_INIT(&lf->modules);
632 TAILQ_INSERT_TAIL(&linker_files, lf, link);
633 return (lf);
649 KLD_DPF(FILE, ("linker_file_unload: lf->refs=%d\n", file->refs));
801 linker_file_function_listall(linker_file_t lf,
804 return (LINKER_EACH_FUNCTION_NAMEVAL(lf, callback_func, arg));
911 linker_file_t lf;
913 TAILQ_FOREACH(lf, &linker_files, link) {
914 if (LINKER_LOOKUP_SYMBOL(lf, symstr, sym) == 0)
924 linker_file_t lf;
931 TAILQ_FOREACH(lf, &linker_files, link) {
932 if (LINKER_SEARCH_SYMBOL(lf, value, &es, &diff) != 0)
955 linker_file_t lf;
957 TAILQ_FOREACH(lf, &linker_files, link) {
958 if (LINKER_SYMBOL_VALUES(lf, sym, symval) == 0)
1045 linker_file_t lf;
1074 error = linker_load_module(kldname, modname, NULL, NULL, &lf);
1079 lf->userrefs++;
1081 *fileid = lf->id;
1111 linker_file_t lf;
1122 lf = linker_find_file_by_id(fileid);
1123 if (lf) {
1124 KLD_DPF(FILE, ("kldunload: lf->userrefs=%d\n", lf->userrefs));
1126 if (lf->userrefs == 0) {
1134 lf->userrefs--;
1135 error = linker_file_unload(lf, flags);
1137 lf->userrefs++;
1169 linker_file_t lf;
1186 lf = linker_find_file_by_name(filename);
1187 if (lf)
1188 td->td_retval[0] = lf->id;
1200 linker_file_t lf;
1211 lf = TAILQ_FIRST(&linker_files);
1213 lf = linker_find_file_by_id(uap->fileid);
1214 if (lf == NULL) {
1218 lf = TAILQ_NEXT(lf, link);
1222 while (lf != NULL && !(lf->flags & LINKER_FILE_LINKED))
1223 lf = TAILQ_NEXT(lf, link);
1225 if (lf)
1226 td->td_retval[0] = lf->id;
1261 linker_file_t lf;
1272 lf = linker_find_file_by_id(fileid);
1273 if (lf == NULL) {
1279 namelen = strlen(lf->filename) + 1;
1282 bcopy(lf->filename, &stat->name[0], namelen);
1283 stat->refs = lf->refs;
1284 stat->id = lf->id;
1285 stat->address = lf->address;
1286 stat->size = lf->size;
1288 namelen = strlen(lf->pathname) + 1;
1291 bcopy(lf->pathname, &stat->pathname[0], namelen);
1301 linker_file_t lf;
1306 TAILQ_FOREACH(lf, &linker_files, link) {
1309 db_printf("%2d %4d %p %-8zx %s\n", lf->id, lf->refs,
1310 lf->address, lf->size, lf->filename);
1318 linker_file_t lf;
1329 lf = linker_find_file_by_id(uap->fileid);
1330 if (lf) {
1332 mp = TAILQ_FIRST(&lf->modules);
1350 linker_file_t lf;
1370 lf = linker_find_file_by_id(uap->fileid);
1371 if (lf == NULL)
1373 else if (LINKER_LOOKUP_SYMBOL(lf, symstr, &sym) == 0 &&
1374 LINKER_SYMBOL_VALUES(lf, sym, &symval) == 0) {
1381 TAILQ_FOREACH(lf, &linker_files, link) {
1382 if (LINKER_LOOKUP_SYMBOL(lf, symstr, &sym) == 0 &&
1383 LINKER_SYMBOL_VALUES(lf, sym, &symval) == 0) {
1391 if (lf == NULL)
1456 linker_addmodules(linker_file_t lf, struct mod_metadata **start,
1474 modlist_newmodule(modname, ver, lf);
1484 linker_file_t lf, nlf;
1520 lf = NULL;
1522 error = LINKER_LINK_PRELOAD(lc, modname, &lf);
1525 lf = NULL;
1527 if (lf)
1528 TAILQ_INSERT_TAIL(&loaded_files, lf, loaded);
1543 TAILQ_FOREACH(lf, &loaded_files, loaded) {
1544 error = linker_file_lookup_set(lf, MDT_SETNAME, &start,
1596 lf, loaded);
1597 linker_file_unload(lf,
1602 modlist_newmodule(modname, nver, lf);
1605 TAILQ_REMOVE(&loaded_files, lf, loaded);
1606 TAILQ_INSERT_TAIL(&depended_files, lf, loaded);
1620 while ((lf = TAILQ_FIRST(&loaded_files)) != NULL) {
1621 TAILQ_REMOVE(&loaded_files, lf, loaded);
1622 printf("KLD file %s is missing dependencies\n", lf->filename);
1623 linker_file_unload(lf, LINKER_UNLOAD_FORCE);
1629 TAILQ_FOREACH_SAFE(lf, &depended_files, loaded, nlf) {
1632 error = linker_file_add_dependency(lf,
1637 error = linker_file_lookup_set(lf, MDT_SETNAME, &start,
1650 lf->filename, modname);
1654 if (lf == mod->container)
1657 error = linker_file_add_dependency(lf,
1667 error = LINKER_LINK_PRELOAD_FINISH(lf);
1670 lf->filename);
1673 linker_file_register_modules(lf);
1674 if (!TAILQ_EMPTY(&lf->modules))
1675 lf->flags |= LINKER_FILE_MODULES;
1676 if (linker_file_lookup_set(lf, "sysinit_set", &si_start,
1679 linker_file_register_sysctls(lf, true);
1680 lf->flags |= LINKER_FILE_LINKED;
1683 TAILQ_REMOVE(&depended_files, lf, loaded);
1684 linker_file_unload(lf, LINKER_UNLOAD_FORCE);
1698 linker_file_t lf, nlf;
1701 TAILQ_FOREACH_SAFE(lf, &linker_files, link, nlf) {
1707 if ((lf->flags & LINKER_FILE_MODULES) != 0 &&
1708 TAILQ_EMPTY(&lf->modules)) {
1709 linker_file_unload(lf, LINKER_UNLOAD_FORCE);
1713 lf->flags &= ~LINKER_FILE_MODULES;
1714 lf->userrefs++; /* so we can (try to) kldunload it */
2014 linker_file_t lf;
2020 TAILQ_FOREACH(lf, &linker_files, link)
2027 TAILQ_FOREACH(lf, &linker_files, link) {
2030 kobase[i].pm_file = lf->filename;
2031 kobase[i].pm_address = (uintptr_t)lf->address;
2125 linker_load_dependencies(linker_file_t lf)
2141 error = linker_file_add_dependency(lf, linker_kernel_file);
2145 if (linker_file_lookup_set(lf, MDT_SETNAME, &start, &stop,
2184 error = linker_file_add_dependency(lf, lfdep);
2189 error = linker_load_module(NULL, modname, lf, verinfo, NULL);
2192 " version mismatch\n", lf->filename, modname);
2199 linker_addmodules(lf, start, stop, 0);
2219 linker_file_t lf;
2231 TAILQ_FOREACH(lf, &linker_files, link) {
2232 error = LINKER_EACH_FUNCTION_NAME(lf,