Print this page
XXXX pass in cpu_pause_func via pause_cpus


 827         }
 828 
 829         /*
 830          * finally, grab all cpus
 831          */
 832         SR_SET_STATE(srh, SBDP_SRSTATE_FULL);
 833 
 834         /*
 835          * if watchdog was activated, disable it
 836          */
 837         if (watchdog_activated) {
 838                 mutex_enter(&tod_lock);
 839                 saved_watchdog_seconds = tod_ops.tod_clear_watchdog_timer();
 840                 mutex_exit(&tod_lock);
 841                 SR_SET_FLAG(srh, SR_FLAG_WATCHDOG);
 842         } else {
 843                 SR_CLEAR_FLAG(srh, SR_FLAG_WATCHDOG);
 844         }
 845 
 846         mutex_enter(&cpu_lock);
 847         pause_cpus(NULL);
 848         sbdp_stop_intr();
 849 
 850         /*
 851          * update the signature block
 852          */
 853         CPU_SIGNATURE(OS_SIG, SIGST_QUIESCED, SIGSUBST_NULL, CPU->cpu_id);
 854 
 855         return (rc);
 856 }
 857 
 858 /*ARGSUSED*/
 859 int
 860 sbdp_test_suspend(sbdp_handle_t *hp)
 861 {
 862         sbdp_sr_handle_t        *srh;
 863         int                     err;
 864 
 865         SBDP_DBG_QR("%s...\n", "sbdp_test_suspend");
 866 
 867         srh = sbdp_get_sr_handle();




 827         }
 828 
 829         /*
 830          * finally, grab all cpus
 831          */
 832         SR_SET_STATE(srh, SBDP_SRSTATE_FULL);
 833 
 834         /*
 835          * if watchdog was activated, disable it
 836          */
 837         if (watchdog_activated) {
 838                 mutex_enter(&tod_lock);
 839                 saved_watchdog_seconds = tod_ops.tod_clear_watchdog_timer();
 840                 mutex_exit(&tod_lock);
 841                 SR_SET_FLAG(srh, SR_FLAG_WATCHDOG);
 842         } else {
 843                 SR_CLEAR_FLAG(srh, SR_FLAG_WATCHDOG);
 844         }
 845 
 846         mutex_enter(&cpu_lock);
 847         pause_cpus(NULL, NULL);
 848         sbdp_stop_intr();
 849 
 850         /*
 851          * update the signature block
 852          */
 853         CPU_SIGNATURE(OS_SIG, SIGST_QUIESCED, SIGSUBST_NULL, CPU->cpu_id);
 854 
 855         return (rc);
 856 }
 857 
 858 /*ARGSUSED*/
 859 int
 860 sbdp_test_suspend(sbdp_handle_t *hp)
 861 {
 862         sbdp_sr_handle_t        *srh;
 863         int                     err;
 864 
 865         SBDP_DBG_QR("%s...\n", "sbdp_test_suspend");
 866 
 867         srh = sbdp_get_sr_handle();