xref: /titanic_44/usr/src/uts/common/io/warlock/ifp.wlcmd (revision 4ebb14b236958cfe1ef4ff3b7a50216d9e51f997)
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