Lines Matching full:mdp

70 static void			moduledir_readhints(struct moduledir *mdp);
1126 struct moduledir *mdp; in file_search() local
1147 STAILQ_FOREACH(mdp, &moduledir_list, d_link) { in file_search()
1148 result = file_lookup(mdp->d_path, name, namelen, extlist); in file_search()
1159 mod_search_hints(struct moduledir *mdp, const char *modname, in mod_search_hints() argument
1166 moduledir_readhints(mdp); in mod_search_hints()
1171 if (mdp->d_hints == NULL) in mod_search_hints()
1173 recptr = mdp->d_hints; in mod_search_hints()
1174 bufend = recptr + mdp->d_hintsz; in mod_search_hints()
1188 INT_ALIGN(mdp->d_hints, cp); in mod_search_hints()
1213 result = file_lookup(mdp->d_path, (const char *)cp, clen, NULL); in mod_search_hints()
1215 result = file_lookup(mdp->d_path, (const char *)best, blen, NULL); in mod_search_hints()
1222 result = file_lookup(mdp->d_path, modname, modnamelen, kld_ext_list); in mod_search_hints()
1329 devmatch_search_hints(struct moduledir *mdp, const char *bus, const char *dev, const char *pnpinfo) in devmatch_search_hints() argument
1336 moduledir_readhints(mdp); in devmatch_search_hints()
1338 if (mdp->d_hints == NULL) in devmatch_search_hints()
1340 walker = mdp->d_hints; in devmatch_search_hints()
1341 hints_end = walker + mdp->d_hintsz; in devmatch_search_hints()
1510 struct moduledir *mdp; in mod_searchmodule() local
1518 STAILQ_FOREACH(mdp, &moduledir_list, d_link) { in mod_searchmodule()
1519 result = mod_search_hints(mdp, name, verinfo); in mod_searchmodule()
1530 struct moduledir *mdp; in mod_searchmodule_pnpinfo() local
1538 STAILQ_FOREACH(mdp, &moduledir_list, d_link) { in mod_searchmodule_pnpinfo()
1539 result = devmatch_search_hints(mdp, bus, NULL, pnpinfo); in mod_searchmodule_pnpinfo()
1679 moduledir_fullpath(struct moduledir *mdp, const char *fname) in moduledir_fullpath() argument
1683 cp = malloc(strlen(mdp->d_path) + strlen(fname) + 2); in moduledir_fullpath()
1686 strcpy(cp, mdp->d_path); in moduledir_fullpath()
1696 moduledir_readhints(struct moduledir *mdp) in moduledir_readhints() argument
1702 if (mdp->d_hints != NULL || (mdp->d_flags & MDIR_NOHINTS)) in moduledir_readhints()
1704 path = moduledir_fullpath(mdp, "linker.hints"); in moduledir_readhints()
1709 mdp->d_flags |= MDIR_NOHINTS; in moduledir_readhints()
1717 mdp->d_hints = malloc(size); in moduledir_readhints()
1718 if (mdp->d_hints == NULL) in moduledir_readhints()
1720 if (read(fd, mdp->d_hints, size) != size) in moduledir_readhints()
1722 mdp->d_hintsz = size; in moduledir_readhints()
1727 free(mdp->d_hints); in moduledir_readhints()
1728 mdp->d_hints = NULL; in moduledir_readhints()
1729 mdp->d_flags |= MDIR_NOHINTS; in moduledir_readhints()
1739 struct moduledir *mdp, *mtmp; in moduledir_rebuild() local
1749 STAILQ_FOREACH(mdp, &moduledir_list, d_link) in moduledir_rebuild()
1750 mdp->d_flags |= MDIR_REMOVED; in moduledir_rebuild()
1761 STAILQ_FOREACH(mdp, &moduledir_list, d_link) { in moduledir_rebuild()
1762 if (strlen(mdp->d_path) != cplen || bcmp(cp, mdp->d_path, cplen) != 0) in moduledir_rebuild()
1764 mdp->d_flags &= ~MDIR_REMOVED; in moduledir_rebuild()
1767 if (mdp == NULL) { in moduledir_rebuild()
1768 mdp = malloc(sizeof(*mdp) + cplen + 1); in moduledir_rebuild()
1769 if (mdp == NULL) in moduledir_rebuild()
1771 mdp->d_path = (char*)(mdp + 1); in moduledir_rebuild()
1772 bcopy(cp, mdp->d_path, cplen); in moduledir_rebuild()
1773 mdp->d_path[cplen] = 0; in moduledir_rebuild()
1774 mdp->d_hints = NULL; in moduledir_rebuild()
1775 mdp->d_flags = 0; in moduledir_rebuild()
1776 STAILQ_INSERT_TAIL(&moduledir_list, mdp, d_link); in moduledir_rebuild()
1784 mdp = STAILQ_FIRST(&moduledir_list); in moduledir_rebuild()
1785 while (mdp) { in moduledir_rebuild()
1786 if ((mdp->d_flags & MDIR_REMOVED) == 0) { in moduledir_rebuild()
1787 mdp = STAILQ_NEXT(mdp, d_link); in moduledir_rebuild()
1789 free(mdp->d_hints); in moduledir_rebuild()
1790 mtmp = mdp; in moduledir_rebuild()
1791 mdp = STAILQ_NEXT(mdp, d_link); in moduledir_rebuild()