1*4ebb14b2Sfrits# 2*4ebb14b2Sfrits# Copyright 2006 Sun Microsystems, Inc. All rights reserved. 3*4ebb14b2Sfrits# Use is subject to license terms. 4*4ebb14b2Sfrits# 5*4ebb14b2Sfrits#ident "%Z%%M% %I% %E% SMI" 6*4ebb14b2Sfrits 7*4ebb14b2Sfrits### Warlock commands for analyzing the ifp driver alone. 8*4ebb14b2Sfrits 9*4ebb14b2Sfrits### Tell warlock there's only one ifp struct, so that it will complain 10*4ebb14b2Sfrits### if the lock is acquired when it is already locked. 11*4ebb14b2Sfrits 12*4ebb14b2Sfritsone ifp 13*4ebb14b2Sfrits 14*4ebb14b2Sfrits### Tell warlock that ifp_scsi_reset_notify(), which gets called from 15*4ebb14b2Sfrits### the scsa stuff through the transport table, is a root function. 16*4ebb14b2Sfrits 17*4ebb14b2Sfritsroot ifp_scsi_reset_notify 18*4ebb14b2Sfritsroot ifp_ifptm_alive 19*4ebb14b2Sfritsroot ifp_ifptm_attach 20*4ebb14b2Sfritsroot ifp_ifptm_detach 21*4ebb14b2Sfritsroot ifp_ifptm_init 22*4ebb14b2Sfritsroot ifp_ifptm_mbox_cmd_init 23*4ebb14b2Sfritsroot ifp_ifptm_mbox_cmd_start 24*4ebb14b2Sfritsroot ifp_ifptm_reset 25*4ebb14b2Sfrits 26*4ebb14b2Sfritsignore ifp.c:ifp_hp_daemon 27*4ebb14b2Sfrits 28*4ebb14b2Sfrits### Give warlock the lock order we use to prevent deadlocks. 29*4ebb14b2Sfrits 30*4ebb14b2Sfritsassert order \ 31*4ebb14b2Sfrits ifp::ifp_response_mutex \ 32*4ebb14b2Sfrits ifp::ifp_request_mutex \ 33*4ebb14b2Sfrits ifp::ifp_waitq_mutex 34*4ebb14b2Sfrits 35*4ebb14b2Sfrits### Tell warlock not to analyze this calling sequence, since it 36*4ebb14b2Sfrits### never really occurs. 37*4ebb14b2Sfrits 38*4ebb14b2Sfritsdisallow \ 39*4ebb14b2Sfrits ifp_i_empty_waitQ \ 40*4ebb14b2Sfrits ifp_scsi_start \ 41*4ebb14b2Sfrits ifp_i_polled_cmd_start 42*4ebb14b2Sfrits 43*4ebb14b2Sfritsignore ifp_kmem_cache_constructor ifp_kmem_cache_destructor 44*4ebb14b2Sfritsignore ifp_i_print_fcal_position_map 45*4ebb14b2Sfritsignore ifp_bus_get_eventcookie ifp_bus_add_eventcall ifp_bus_remove_eventcall 46*4ebb14b2Sfritsignore ifp_bus_post_event 47*4ebb14b2Sfritsignore ifp_i_print_state 48*4ebb14b2Sfritsignore ifp_scsi_get_name ifp_scsi_get_bus_addr 49*4ebb14b2Sfritsignore ifp_kstat_update 50*4ebb14b2Sfrits 51*4ebb14b2Sfrits### Tell warlock where calls through pkt_comp go. 52*4ebb14b2Sfrits 53*4ebb14b2Sfritsadd scsi_pkt::pkt_comp targets \ 54*4ebb14b2Sfrits ifp_scsi_start \ 55*4ebb14b2Sfrits ifp_scsi_abort \ 56*4ebb14b2Sfrits ifp_scsi_reset \ 57*4ebb14b2Sfrits ifp_scsi_getcap \ 58*4ebb14b2Sfrits ifp_scsi_setcap \ 59*4ebb14b2Sfrits ifp_scsi_dmafree \ 60*4ebb14b2Sfrits ifp_scsi_sync_pkt \ 61*4ebb14b2Sfrits ifp_scsi_destroy_pkt \ 62*4ebb14b2Sfrits ifp_scsi_init_pkt 63*4ebb14b2Sfrits 64*4ebb14b2Sfritsadd notify_entry::callback target warlock_dummy 65*4ebb14b2Sfrits 66*4ebb14b2Sfrits### pointers in the scsi_hba_tran structure. 67*4ebb14b2Sfritsfor ptr in `funcptrs | grep '^scsi_hba_tran::'` 68*4ebb14b2Sfritsdo 69*4ebb14b2Sfrits add $ptr target warlock_dummy 70*4ebb14b2Sfritsdone 71*4ebb14b2Sfritsroot scsi_hba_bus_power 72*4ebb14b2Sfrits 73