Print this page
XXXX introduce drv_sectohz


 613  */
 614 static int
 615 cmdksuspend(dev_info_t *dip)
 616 {
 617         struct cmdk     *dkp;
 618         int             instance;
 619         clock_t         count = 0;
 620 
 621         instance = ddi_get_instance(dip);
 622         if (!(dkp = ddi_get_soft_state(cmdk_state, instance)))
 623                 return (DDI_FAILURE);
 624         mutex_enter(&dkp->dk_mutex);
 625         if (dkp->dk_flag & CMDK_SUSPEND) {
 626                 mutex_exit(&dkp->dk_mutex);
 627                 return (DDI_SUCCESS);
 628         }
 629         dkp->dk_flag |= CMDK_SUSPEND;
 630 
 631         /* need to wait a while */
 632         while (dadk_getcmds(DKTP_DATA) != 0) {
 633                 delay(drv_usectohz(1000000));
 634                 if (count > 60) {
 635                         dkp->dk_flag &= ~CMDK_SUSPEND;
 636                         cv_broadcast(&dkp->dk_suspend_cv);
 637                         mutex_exit(&dkp->dk_mutex);
 638                         return (DDI_FAILURE);
 639                 }
 640                 count++;
 641         }
 642         mutex_exit(&dkp->dk_mutex);
 643         return (DDI_SUCCESS);
 644 }
 645 
 646 /*
 647  * resume routine, it will be run when get the command
 648  * DDI_RESUME at attach(9E) from system power management
 649  */
 650 static int
 651 cmdkresume(dev_info_t *dip)
 652 {
 653         struct cmdk     *dkp;




 613  */
 614 static int
 615 cmdksuspend(dev_info_t *dip)
 616 {
 617         struct cmdk     *dkp;
 618         int             instance;
 619         clock_t         count = 0;
 620 
 621         instance = ddi_get_instance(dip);
 622         if (!(dkp = ddi_get_soft_state(cmdk_state, instance)))
 623                 return (DDI_FAILURE);
 624         mutex_enter(&dkp->dk_mutex);
 625         if (dkp->dk_flag & CMDK_SUSPEND) {
 626                 mutex_exit(&dkp->dk_mutex);
 627                 return (DDI_SUCCESS);
 628         }
 629         dkp->dk_flag |= CMDK_SUSPEND;
 630 
 631         /* need to wait a while */
 632         while (dadk_getcmds(DKTP_DATA) != 0) {
 633                 delay(drv_sectohz(1));
 634                 if (count > 60) {
 635                         dkp->dk_flag &= ~CMDK_SUSPEND;
 636                         cv_broadcast(&dkp->dk_suspend_cv);
 637                         mutex_exit(&dkp->dk_mutex);
 638                         return (DDI_FAILURE);
 639                 }
 640                 count++;
 641         }
 642         mutex_exit(&dkp->dk_mutex);
 643         return (DDI_SUCCESS);
 644 }
 645 
 646 /*
 647  * resume routine, it will be run when get the command
 648  * DDI_RESUME at attach(9E) from system power management
 649  */
 650 static int
 651 cmdkresume(dev_info_t *dip)
 652 {
 653         struct cmdk     *dkp;