1*3138Sfrits# 2*3138Sfrits# Copyright 2006 Sun Microsystems, Inc. All rights reserved. 3*3138Sfrits# Use is subject to license terms. 4*3138Sfrits# 5*3138Sfrits#ident "%Z%%M% %I% %E% SMI" 6*3138Sfrits 7*3138Sfrits### Warlock commands for analyzing the isp driver alone. 8*3138Sfrits 9*3138Sfrits### Tell warlock there's only one isp struct, so that it will complain 10*3138Sfrits### if the lock is acquired when it is already locked. 11*3138Sfrits 12*3138Sfritsone isp 13*3138Sfrits 14*3138Sfrits### Tell warlock that isp_scsi_reset_notify(), which gets called from 15*3138Sfrits### the scsa stuff through the transport table, is a root function. 16*3138Sfrits 17*3138Sfritsroot isp_scsi_reset_notify isp_i_print_response 18*3138Sfrits 19*3138Sfrits### Give warlock the lock order we use to prevent deadlocks. 20*3138Sfrits 21*3138Sfritsassert order \ 22*3138Sfrits isp::isp_response_mutex \ 23*3138Sfrits isp::isp_request_mutex \ 24*3138Sfrits isp::isp_waitq_mutex 25*3138Sfrits 26*3138Sfrits### Tell warlock not to analyze this calling sequence, since it 27*3138Sfrits### never really occurs. 28*3138Sfrits 29*3138Sfritsdisallow \ 30*3138Sfrits isp_i_empty_waitQ \ 31*3138Sfrits isp_scsi_start \ 32*3138Sfrits isp_i_polled_cmd_start 33*3138Sfrits 34*3138Sfritsroot isp_kmem_cache_constructor isp_kmem_cache_destructor 35*3138Sfrits 36*3138Sfrits### Tell warlock where calls through pkt_comp go. 37*3138Sfrits 38*3138Sfritsadd scsi_pkt::pkt_comp targets \ 39*3138Sfrits isp_scsi_start \ 40*3138Sfrits isp_scsi_abort \ 41*3138Sfrits isp_scsi_reset \ 42*3138Sfrits isp_scsi_getcap \ 43*3138Sfrits isp_scsi_setcap \ 44*3138Sfrits isp_scsi_dmafree \ 45*3138Sfrits isp_scsi_sync_pkt \ 46*3138Sfrits isp_scsi_destroy_pkt \ 47*3138Sfrits isp_scsi_init_pkt 48*3138Sfrits 49*3138Sfritsadd notify_entry::callback target warlock_dummy 50*3138Sfrits 51*3138Sfrits 52*3138Sfritsfor ptr in `funcptrs | grep '^scsi_hba_tran::'` 53*3138Sfritsdo 54*3138Sfrits add $ptr target warlock_dummy 55*3138Sfritsdone 56*3138Sfritsroot scsi_hba_bus_power 57