Lines Matching defs:devid
47 * instances, to search for the device referenced by a devid. Obviously,
50 * discovery at the devid cache level.
82 * devid cache backing store. Probably there's no reason to ever
113 * Any updates to the devid cache will not be preserved across a reboot.
116 * Set to 1 to enable some error messages related to devid
119 * The devid is packed in the cache file as a byte array. For
136 * State to manage discovery of devices providing a devid
163 * devid cache file registration for cache reads and updates
174 * handle to registered devid cache handlers
180 * Initialize devid cache file management
196 * Read and initialize the devid cache from the persistent store
246 * Unpack a device path/nvlist pair to the list of devid cache elements.
262 * check path for a devid
277 "%s: invalid devid\n", name));
281 "%s: devid not available\n", name));
288 * Pack the list of devid cache elements into a single nvlist
328 "%s: nvlist add error %d (devid)\n",
400 e_ddi_devid_hold_installed_driver(ddi_devid_t devid)
402 impl_devid_t *id = (impl_devid_t *)devid;
418 /* search for the devid using the hint driver */
425 * search for the devid with each driver declaring
426 * itself as a devid registrant.
455 e_ddi_devid_discovery(ddi_devid_t devid)
472 e_ddi_devid_hold_installed_driver(devid);
490 DEVID_LOG_DISC((CE_CONT, "no devid discovery\n"));
499 * As part of registering a devid for a device,
500 * update the devid cache with this device/devid pair
504 * devid against, otherwise we use ddi_pathname(dip). In both cases
509 e_devid_cache_register_cmn(dev_info_t *dip, ddi_devid_t devid, char *devpath)
522 ASSERT(ddi_devid_valid(devid) == DDI_SUCCESS);
545 DEVID_LOG_REG(("register", devid, path));
548 new_devid_size = ddi_devid_sizeof(devid);
550 (void) bcopy(devid, new_devid, new_devid_size);
574 /* replace invalid devid */
580 * Does the device's devid match the cache?
582 if (ddi_devid_compare(devid, np->nvp_devid) != 0) {
583 DEVID_DEBUG((CE_CONT, "devid register: "
584 "devid %s does not match\n", path));
586 * Replace cached devid for this path
587 * with newly registered devid. A devid
589 * should only map to one devid.
596 "devid register: %s devid match\n", path));
610 * Add newly registered devid to the cache
638 e_devid_cache_register(dev_info_t *dip, ddi_devid_t devid)
640 return (e_devid_cache_register_cmn(dip, devid, NULL));
644 * Unregister a device's devid; the devinfo may hit on multiple entries
647 * Invalidate the devid's devinfo reference.
675 e_devid_cache_pathinfo(mdi_pathinfo_t *pip, ddi_devid_t devid)
679 return (e_devid_cache_register_cmn(mdi_pi_get_client(pip), devid,
684 * Purge devid cache of stale devids
719 * Build a list of dev_t's for a device/devid
723 * devid.
773 * Search for cached entries matching a devid
776 * a list of pathnames whose instances registered the given devid
782 e_devid_cache_devi_path_lists(ddi_devid_t devid, int retmax,
801 "find: invalid devid %s\n",
805 if (ddi_devid_compare(devid, np->nvp_devid) == 0) {
807 "find: devid match: %s 0x%x\n",
809 DEVID_LOG_MATCH(("find", devid, np->nvp_devpath));
814 * devid. Place a hold on it to prevent detach
857 * Search the devid cache, returning dev_t list for all
859 * given devid.
864 e_devid_cache_to_devt_list(ddi_devid_t devid, char *minor_name,
876 DEVID_LOG_FIND(("find", devid, NULL));
878 ASSERT(ddi_devid_valid(devid) == DDI_SUCCESS);
879 if (ddi_devid_valid(devid) != DDI_SUCCESS) {
880 DEVID_LOG_ERR(("invalid devid", devid, NULL));
891 n = e_devid_cache_devi_path_lists(devid, nalloced,
910 DEVID_LOG_ERR(("no devid found", devid, NULL));
936 devid, paths[i]));
940 * Verify the newly attached device registered a matching devid
945 "%s: no devid registered on attach\n",
951 if (ddi_devid_compare(devid, match_devid) != 0) {
952 DEVID_LOG_STALE(("new devid registered",
953 devid, paths[i]));
982 DEVID_LOG_ERR(("no devid found", devid, NULL));
1037 * devid of the matched entry into the given devid (caller
1043 * duplicate the devid as before (caller must free) and copy into
1084 "pathsearch: invalid devid %s\n",
1160 devid_log(char *fmt, ddi_devid_t devid, char *path)
1162 char *devidstr = ddi_devid_str_encode(devid, NULL);