xref: /titanic_51/usr/src/cmd/smbsrv/fksmbd/Watch-all.d (revision b819cea2f73f98c5662230cc9affc8cc84f77fcf)
1*b819cea2SGordon Ross #!/usr/sbin/dtrace -s
2*b819cea2SGordon Ross /*
3*b819cea2SGordon Ross  * This file and its contents are supplied under the terms of the
4*b819cea2SGordon Ross  * Common Development and Distribution License ("CDDL"), version 1.0.
5*b819cea2SGordon Ross  * You may only use this file in accordance with the terms of version
6*b819cea2SGordon Ross  * 1.0 of the CDDL.
7*b819cea2SGordon Ross  *
8*b819cea2SGordon Ross  * A full copy of the text of the CDDL should have accompanied this
9*b819cea2SGordon Ross  * source.  A copy of the CDDL is also available via the Internet at
10*b819cea2SGordon Ross  * http://www.illumos.org/license/CDDL.
11*b819cea2SGordon Ross  */
12*b819cea2SGordon Ross 
13*b819cea2SGordon Ross /*
14*b819cea2SGordon Ross  * Copyright 2014 Nexenta Systems, Inc.  All rights reserved.
15*b819cea2SGordon Ross  */
16*b819cea2SGordon Ross 
17*b819cea2SGordon Ross /*
18*b819cea2SGordon Ross  * User-level dtrace for fksmbd
19*b819cea2SGordon Ross  * Usage: dtrace -s Watch-all.d -p $PID
20*b819cea2SGordon Ross  */
21*b819cea2SGordon Ross 
22*b819cea2SGordon Ross #pragma D option flowindent
23*b819cea2SGordon Ross 
24*b819cea2SGordon Ross self int trace;
25*b819cea2SGordon Ross self int mask;
26*b819cea2SGordon Ross 
27*b819cea2SGordon Ross /*
28*b819cea2SGordon Ross  * Trace almost everything
29*b819cea2SGordon Ross  */
30*b819cea2SGordon Ross pid$target:fksmbd::entry,
31*b819cea2SGordon Ross pid$target:libfksmbsrv.so.1::entry,
32*b819cea2SGordon Ross pid$target:libmlsvc.so.1::entry,
33*b819cea2SGordon Ross pid$target:libmlrpc.so.1::entry,
34*b819cea2SGordon Ross pid$target:libsmbns.so.1::entry,
35*b819cea2SGordon Ross pid$target:libsmb.so.1::entry
36*b819cea2SGordon Ross {
37*b819cea2SGordon Ross   self->trace++;
38*b819cea2SGordon Ross }
39*b819cea2SGordon Ross 
40*b819cea2SGordon Ross /*
41*b819cea2SGordon Ross  * If traced and not masked, print entry/return
42*b819cea2SGordon Ross  */
43*b819cea2SGordon Ross pid$target:fksmbd::entry,
44*b819cea2SGordon Ross pid$target:libfksmbsrv.so.1::entry,
45*b819cea2SGordon Ross pid$target:libmlsvc.so.1::entry,
46*b819cea2SGordon Ross pid$target:libmlrpc.so.1::entry,
47*b819cea2SGordon Ross pid$target:libsmbns.so.1::entry,
48*b819cea2SGordon Ross pid$target:libsmb.so.1::entry
49*b819cea2SGordon Ross /self->trace > 0 && self->mask == 0/
50*b819cea2SGordon Ross {
51*b819cea2SGordon Ross   printf("\t0x%x", arg0);
52*b819cea2SGordon Ross   printf("\t0x%x", arg1);
53*b819cea2SGordon Ross   printf("\t0x%x", arg2);
54*b819cea2SGordon Ross   printf("\t0x%x", arg3);
55*b819cea2SGordon Ross }
56*b819cea2SGordon Ross 
57*b819cea2SGordon Ross /*
58*b819cea2SGordon Ross  * Mask (don't print) all function calls below these functions.
59*b819cea2SGordon Ross  * These make many boring, repetitive function calls like
60*b819cea2SGordon Ross  * smb_mbtowc, mbc_marshal_...
61*b819cea2SGordon Ross  */
62*b819cea2SGordon Ross pid$target::fop__getxvattr:entry,
63*b819cea2SGordon Ross pid$target::fop__setxvattr:entry,
64*b819cea2SGordon Ross pid$target::smb_mbc_vdecodef:entry,
65*b819cea2SGordon Ross pid$target::smb_mbc_vencodef:entry,
66*b819cea2SGordon Ross pid$target::smb_msgbuf_decode:entry,
67*b819cea2SGordon Ross pid$target::smb_msgbuf_encode:entry,
68*b819cea2SGordon Ross pid$target::smb_strlwr:entry,
69*b819cea2SGordon Ross pid$target::smb_strupr:entry,
70*b819cea2SGordon Ross pid$target::smb_wcequiv_strlen:entry
71*b819cea2SGordon Ross {
72*b819cea2SGordon Ross   self->mask++;
73*b819cea2SGordon Ross }
74*b819cea2SGordon Ross 
75*b819cea2SGordon Ross /*
76*b819cea2SGordon Ross  * Now inverses of above, unwind order.
77*b819cea2SGordon Ross  */
78*b819cea2SGordon Ross 
79*b819cea2SGordon Ross pid$target::fop__getxvattr:return,
80*b819cea2SGordon Ross pid$target::fop__setxvattr:return,
81*b819cea2SGordon Ross pid$target::smb_mbc_vdecodef:return,
82*b819cea2SGordon Ross pid$target::smb_mbc_vencodef:return,
83*b819cea2SGordon Ross pid$target::smb_msgbuf_decode:return,
84*b819cea2SGordon Ross pid$target::smb_msgbuf_encode:return,
85*b819cea2SGordon Ross pid$target::smb_strlwr:return,
86*b819cea2SGordon Ross pid$target::smb_strupr:return,
87*b819cea2SGordon Ross pid$target::smb_wcequiv_strlen:return
88*b819cea2SGordon Ross {
89*b819cea2SGordon Ross   self->mask--;
90*b819cea2SGordon Ross }
91*b819cea2SGordon Ross 
92*b819cea2SGordon Ross pid$target:fksmbd::return,
93*b819cea2SGordon Ross pid$target:libfksmbsrv.so.1::return,
94*b819cea2SGordon Ross pid$target:libmlsvc.so.1::return,
95*b819cea2SGordon Ross pid$target:libmlrpc.so.1::return,
96*b819cea2SGordon Ross pid$target:libsmbns.so.1::return,
97*b819cea2SGordon Ross pid$target:libsmb.so.1::return
98*b819cea2SGordon Ross /self->trace > 0 && self->mask == 0/
99*b819cea2SGordon Ross {
100*b819cea2SGordon Ross   printf("\t0x%x", arg1);
101*b819cea2SGordon Ross }
102*b819cea2SGordon Ross 
103*b819cea2SGordon Ross pid$target:fksmbd::return,
104*b819cea2SGordon Ross pid$target:libfksmbsrv.so.1::return,
105*b819cea2SGordon Ross pid$target:libmlsvc.so.1::return,
106*b819cea2SGordon Ross pid$target:libmlrpc.so.1::return,
107*b819cea2SGordon Ross pid$target:libsmbns.so.1::return,
108*b819cea2SGordon Ross pid$target:libsmb.so.1::return
109*b819cea2SGordon Ross {
110*b819cea2SGordon Ross   self->trace--;
111*b819cea2SGordon Ross }
112