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();
|