Print this page
XXXX introduce drv_sectohz


 352 
 353 static int
 354 e_devid_do_discovery(void)
 355 {
 356         ASSERT(mutex_owned(&devid_discovery_mutex));
 357 
 358         if (i_ddi_io_initialized() == 0) {
 359                 if (devid_discovery_boot > 0) {
 360                         devid_discovery_boot--;
 361                         return (1);
 362                 }
 363         } else {
 364                 if (devid_discovery_postboot_always > 0)
 365                         return (1);
 366                 if (devid_discovery_postboot > 0) {
 367                         devid_discovery_postboot--;
 368                         return (1);
 369                 }
 370                 if (devid_discovery_secs > 0) {
 371                         if ((ddi_get_lbolt() - devid_last_discovery) >
 372                             drv_usectohz(devid_discovery_secs * MICROSEC)) {
 373                                 return (1);
 374                         }
 375                 }
 376         }
 377 
 378         DEVID_LOG_DISC((CE_CONT, "devid_discovery: no discovery\n"));
 379         return (0);
 380 }
 381 
 382 static void
 383 e_ddi_devid_hold_by_major(major_t major)
 384 {
 385         DEVID_LOG_DISC((CE_CONT,
 386             "devid_discovery: ddi_hold_installed_driver %d\n", major));
 387 
 388         if (ddi_hold_installed_driver(major) == NULL)
 389                 return;
 390 
 391         ddi_rele_driver(major);
 392 }




 352 
 353 static int
 354 e_devid_do_discovery(void)
 355 {
 356         ASSERT(mutex_owned(&devid_discovery_mutex));
 357 
 358         if (i_ddi_io_initialized() == 0) {
 359                 if (devid_discovery_boot > 0) {
 360                         devid_discovery_boot--;
 361                         return (1);
 362                 }
 363         } else {
 364                 if (devid_discovery_postboot_always > 0)
 365                         return (1);
 366                 if (devid_discovery_postboot > 0) {
 367                         devid_discovery_postboot--;
 368                         return (1);
 369                 }
 370                 if (devid_discovery_secs > 0) {
 371                         if ((ddi_get_lbolt() - devid_last_discovery) >
 372                             drv_sectohz(devid_discovery_secs)) {
 373                                 return (1);
 374                         }
 375                 }
 376         }
 377 
 378         DEVID_LOG_DISC((CE_CONT, "devid_discovery: no discovery\n"));
 379         return (0);
 380 }
 381 
 382 static void
 383 e_ddi_devid_hold_by_major(major_t major)
 384 {
 385         DEVID_LOG_DISC((CE_CONT,
 386             "devid_discovery: ddi_hold_installed_driver %d\n", major));
 387 
 388         if (ddi_hold_installed_driver(major) == NULL)
 389                 return;
 390 
 391         ddi_rele_driver(major);
 392 }