# # Copyright 2006 Sun Microsystems, Inc. All rights reserved. # Use is subject to license terms. # #ident "%Z%%M% %I% %E% SMI" ### Warlock commands for analyzing the ifp driver alone. ### Tell warlock there's only one ifp struct, so that it will complain ### if the lock is acquired when it is already locked. one ifp ### Tell warlock that ifp_scsi_reset_notify(), which gets called from ### the scsa stuff through the transport table, is a root function. root ifp_scsi_reset_notify root ifp_ifptm_alive root ifp_ifptm_attach root ifp_ifptm_detach root ifp_ifptm_init root ifp_ifptm_mbox_cmd_init root ifp_ifptm_mbox_cmd_start root ifp_ifptm_reset ignore ifp.c:ifp_hp_daemon ### Give warlock the lock order we use to prevent deadlocks. assert order \ ifp::ifp_response_mutex \ ifp::ifp_request_mutex \ ifp::ifp_waitq_mutex ### Tell warlock not to analyze this calling sequence, since it ### never really occurs. disallow \ ifp_i_empty_waitQ \ ifp_scsi_start \ ifp_i_polled_cmd_start ignore ifp_kmem_cache_constructor ifp_kmem_cache_destructor ignore ifp_i_print_fcal_position_map ignore ifp_bus_get_eventcookie ifp_bus_add_eventcall ifp_bus_remove_eventcall ignore ifp_bus_post_event ignore ifp_i_print_state ignore ifp_scsi_get_name ifp_scsi_get_bus_addr ignore ifp_kstat_update ### Tell warlock where calls through pkt_comp go. add scsi_pkt::pkt_comp targets \ ifp_scsi_start \ ifp_scsi_abort \ ifp_scsi_reset \ ifp_scsi_getcap \ ifp_scsi_setcap \ ifp_scsi_dmafree \ ifp_scsi_sync_pkt \ ifp_scsi_destroy_pkt \ ifp_scsi_init_pkt add notify_entry::callback target warlock_dummy ### pointers in the scsi_hba_tran structure. for ptr in `funcptrs | grep '^scsi_hba_tran::'` do add $ptr target warlock_dummy done root scsi_hba_bus_power