4ebb14b236958cfe1ef4ff3b7a50216d9e51f997frits#
4ebb14b236958cfe1ef4ff3b7a50216d9e51f997frits# Copyright 2006 Sun Microsystems, Inc. All rights reserved.
4ebb14b236958cfe1ef4ff3b7a50216d9e51f997frits# Use is subject to license terms.
4ebb14b236958cfe1ef4ff3b7a50216d9e51f997frits#
4ebb14b236958cfe1ef4ff3b7a50216d9e51f997frits#ident "%Z%%M% %I% %E% SMI"
4ebb14b236958cfe1ef4ff3b7a50216d9e51f997frits
4ebb14b236958cfe1ef4ff3b7a50216d9e51f997frits### Warlock commands for analyzing the isp driver alone.
4ebb14b236958cfe1ef4ff3b7a50216d9e51f997frits
4ebb14b236958cfe1ef4ff3b7a50216d9e51f997frits### Tell warlock there's only one isp struct, so that it will complain
4ebb14b236958cfe1ef4ff3b7a50216d9e51f997frits### if the lock is acquired when it is already locked.
4ebb14b236958cfe1ef4ff3b7a50216d9e51f997frits
4ebb14b236958cfe1ef4ff3b7a50216d9e51f997fritsone isp
4ebb14b236958cfe1ef4ff3b7a50216d9e51f997frits
4ebb14b236958cfe1ef4ff3b7a50216d9e51f997frits### Tell warlock that isp_scsi_reset_notify(), which gets called from
4ebb14b236958cfe1ef4ff3b7a50216d9e51f997frits### the scsa stuff through the transport table, is a root function.
4ebb14b236958cfe1ef4ff3b7a50216d9e51f997frits
4ebb14b236958cfe1ef4ff3b7a50216d9e51f997fritsroot isp_scsi_reset_notify isp_i_print_response
4ebb14b236958cfe1ef4ff3b7a50216d9e51f997frits
4ebb14b236958cfe1ef4ff3b7a50216d9e51f997frits### Give warlock the lock order we use to prevent deadlocks.
4ebb14b236958cfe1ef4ff3b7a50216d9e51f997frits
4ebb14b236958cfe1ef4ff3b7a50216d9e51f997fritsassert order \
4ebb14b236958cfe1ef4ff3b7a50216d9e51f997frits isp::isp_response_mutex \
4ebb14b236958cfe1ef4ff3b7a50216d9e51f997frits isp::isp_request_mutex \
4ebb14b236958cfe1ef4ff3b7a50216d9e51f997frits isp::isp_waitq_mutex
4ebb14b236958cfe1ef4ff3b7a50216d9e51f997frits
4ebb14b236958cfe1ef4ff3b7a50216d9e51f997frits### Tell warlock not to analyze this calling sequence, since it
4ebb14b236958cfe1ef4ff3b7a50216d9e51f997frits### never really occurs.
4ebb14b236958cfe1ef4ff3b7a50216d9e51f997frits
4ebb14b236958cfe1ef4ff3b7a50216d9e51f997fritsdisallow \
4ebb14b236958cfe1ef4ff3b7a50216d9e51f997frits isp_i_empty_waitQ \
4ebb14b236958cfe1ef4ff3b7a50216d9e51f997frits isp_scsi_start \
4ebb14b236958cfe1ef4ff3b7a50216d9e51f997frits isp_i_polled_cmd_start
4ebb14b236958cfe1ef4ff3b7a50216d9e51f997frits
4ebb14b236958cfe1ef4ff3b7a50216d9e51f997fritsroot isp_kmem_cache_constructor isp_kmem_cache_destructor
4ebb14b236958cfe1ef4ff3b7a50216d9e51f997frits
4ebb14b236958cfe1ef4ff3b7a50216d9e51f997frits### Tell warlock where calls through pkt_comp go.
4ebb14b236958cfe1ef4ff3b7a50216d9e51f997frits
4ebb14b236958cfe1ef4ff3b7a50216d9e51f997fritsadd scsi_pkt::pkt_comp targets \
4ebb14b236958cfe1ef4ff3b7a50216d9e51f997frits isp_scsi_start \
4ebb14b236958cfe1ef4ff3b7a50216d9e51f997frits isp_scsi_abort \
4ebb14b236958cfe1ef4ff3b7a50216d9e51f997frits isp_scsi_reset \
4ebb14b236958cfe1ef4ff3b7a50216d9e51f997frits isp_scsi_getcap \
4ebb14b236958cfe1ef4ff3b7a50216d9e51f997frits isp_scsi_setcap \
4ebb14b236958cfe1ef4ff3b7a50216d9e51f997frits isp_scsi_dmafree \
4ebb14b236958cfe1ef4ff3b7a50216d9e51f997frits isp_scsi_sync_pkt \
4ebb14b236958cfe1ef4ff3b7a50216d9e51f997frits isp_scsi_destroy_pkt \
4ebb14b236958cfe1ef4ff3b7a50216d9e51f997frits isp_scsi_init_pkt
4ebb14b236958cfe1ef4ff3b7a50216d9e51f997frits
4ebb14b236958cfe1ef4ff3b7a50216d9e51f997fritsadd notify_entry::callback target warlock_dummy
4ebb14b236958cfe1ef4ff3b7a50216d9e51f997frits
4ebb14b236958cfe1ef4ff3b7a50216d9e51f997frits
4ebb14b236958cfe1ef4ff3b7a50216d9e51f997fritsfor ptr in `funcptrs | grep '^scsi_hba_tran::'`
4ebb14b236958cfe1ef4ff3b7a50216d9e51f997fritsdo
4ebb14b236958cfe1ef4ff3b7a50216d9e51f997frits add $ptr target warlock_dummy
4ebb14b236958cfe1ef4ff3b7a50216d9e51f997fritsdone
4ebb14b236958cfe1ef4ff3b7a50216d9e51f997fritsroot scsi_hba_bus_power