1*6ca35587Sdholland /* $NetBSD: nfs_kdtrace.h,v 1.1.1.1 2013/09/30 07:19:33 dholland Exp $ */ 2*6ca35587Sdholland /*- 3*6ca35587Sdholland * Copyright (c) 2009 Robert N. M. Watson 4*6ca35587Sdholland * All rights reserved. 5*6ca35587Sdholland * 6*6ca35587Sdholland * This software was developed at the University of Cambridge Computer 7*6ca35587Sdholland * Laboratory with support from a grant from Google, Inc. 8*6ca35587Sdholland * 9*6ca35587Sdholland * Redistribution and use in source and binary forms, with or without 10*6ca35587Sdholland * modification, are permitted provided that the following conditions 11*6ca35587Sdholland * are met: 12*6ca35587Sdholland * 1. Redistributions of source code must retain the above copyright 13*6ca35587Sdholland * notice, this list of conditions and the following disclaimer. 14*6ca35587Sdholland * 2. Redistributions in binary form must reproduce the above copyright 15*6ca35587Sdholland * notice, this list of conditions and the following disclaimer in the 16*6ca35587Sdholland * documentation and/or other materials provided with the distribution. 17*6ca35587Sdholland * 18*6ca35587Sdholland * THIS SOFTWARE IS PROVIDED BY THE AUTHOR AND CONTRIBUTORS ``AS IS'' AND 19*6ca35587Sdholland * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE 20*6ca35587Sdholland * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE 21*6ca35587Sdholland * ARE DISCLAIMED. IN NO EVENT SHALL THE AUTHOR OR CONTRIBUTORS BE LIABLE 22*6ca35587Sdholland * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL 23*6ca35587Sdholland * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS 24*6ca35587Sdholland * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) 25*6ca35587Sdholland * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT 26*6ca35587Sdholland * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY 27*6ca35587Sdholland * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF 28*6ca35587Sdholland * SUCH DAMAGE. 29*6ca35587Sdholland * 30*6ca35587Sdholland * FreeBSD: head/sys/nfs/nfs_kdtrace.h 222813 2011-06-07 08:46:13Z attilio 31*6ca35587Sdholland * $NetBSD: nfs_kdtrace.h,v 1.1.1.1 2013/09/30 07:19:33 dholland Exp $ 32*6ca35587Sdholland */ 33*6ca35587Sdholland 34*6ca35587Sdholland #ifndef _NFSCLIENT_NFS_KDTRACE_H_ 35*6ca35587Sdholland #define _NFSCLIENT_NFS_KDTRACE_H_ 36*6ca35587Sdholland 37*6ca35587Sdholland #ifdef KDTRACE_HOOKS 38*6ca35587Sdholland #include <sys/dtrace_bsd.h> 39*6ca35587Sdholland 40*6ca35587Sdholland /* 41*6ca35587Sdholland * Definitions for NFS access cache probes. 42*6ca35587Sdholland */ 43*6ca35587Sdholland extern uint32_t nfsclient_accesscache_flush_done_id; 44*6ca35587Sdholland extern uint32_t nfsclient_accesscache_get_hit_id; 45*6ca35587Sdholland extern uint32_t nfsclient_accesscache_get_miss_id; 46*6ca35587Sdholland extern uint32_t nfsclient_accesscache_load_done_id; 47*6ca35587Sdholland 48*6ca35587Sdholland #define KDTRACE_NFS_ACCESSCACHE_FLUSH_DONE(vp) do { \ 49*6ca35587Sdholland if (dtrace_nfsclient_accesscache_flush_done_probe != NULL) \ 50*6ca35587Sdholland (dtrace_nfsclient_accesscache_flush_done_probe)( \ 51*6ca35587Sdholland nfsclient_accesscache_flush_done_id, (vp)); \ 52*6ca35587Sdholland } while (0) 53*6ca35587Sdholland 54*6ca35587Sdholland #define KDTRACE_NFS_ACCESSCACHE_GET_HIT(vp, uid, mode) do { \ 55*6ca35587Sdholland if (dtrace_nfsclient_accesscache_get_hit_probe != NULL) \ 56*6ca35587Sdholland (dtrace_nfsclient_accesscache_get_hit_probe)( \ 57*6ca35587Sdholland nfsclient_accesscache_get_hit_id, (vp), (uid), \ 58*6ca35587Sdholland (mode)); \ 59*6ca35587Sdholland } while (0) 60*6ca35587Sdholland 61*6ca35587Sdholland #define KDTRACE_NFS_ACCESSCACHE_GET_MISS(vp, uid, mode) do { \ 62*6ca35587Sdholland if (dtrace_nfsclient_accesscache_get_miss_probe != NULL) \ 63*6ca35587Sdholland (dtrace_nfsclient_accesscache_get_miss_probe)( \ 64*6ca35587Sdholland nfsclient_accesscache_get_miss_id, (vp), (uid), \ 65*6ca35587Sdholland (mode)); \ 66*6ca35587Sdholland } while (0) 67*6ca35587Sdholland 68*6ca35587Sdholland #define KDTRACE_NFS_ACCESSCACHE_LOAD_DONE(vp, uid, rmode, error) do { \ 69*6ca35587Sdholland if (dtrace_nfsclient_accesscache_load_done_probe != NULL) \ 70*6ca35587Sdholland (dtrace_nfsclient_accesscache_load_done_probe)( \ 71*6ca35587Sdholland nfsclient_accesscache_load_done_id, (vp), (uid), \ 72*6ca35587Sdholland (rmode), (error)); \ 73*6ca35587Sdholland } while (0) 74*6ca35587Sdholland 75*6ca35587Sdholland /* 76*6ca35587Sdholland * Definitions for NFS attribute cache probes. 77*6ca35587Sdholland */ 78*6ca35587Sdholland extern uint32_t nfsclient_attrcache_flush_done_id; 79*6ca35587Sdholland extern uint32_t nfsclient_attrcache_get_hit_id; 80*6ca35587Sdholland extern uint32_t nfsclient_attrcache_get_miss_id; 81*6ca35587Sdholland extern uint32_t nfsclient_attrcache_load_done_id; 82*6ca35587Sdholland 83*6ca35587Sdholland #define KDTRACE_NFS_ATTRCACHE_FLUSH_DONE(vp) do { \ 84*6ca35587Sdholland if (dtrace_nfsclient_attrcache_flush_done_probe != NULL) \ 85*6ca35587Sdholland (dtrace_nfsclient_attrcache_flush_done_probe)( \ 86*6ca35587Sdholland nfsclient_attrcache_flush_done_id, (vp)); \ 87*6ca35587Sdholland } while (0) 88*6ca35587Sdholland 89*6ca35587Sdholland #define KDTRACE_NFS_ATTRCACHE_GET_HIT(vp, vap) do { \ 90*6ca35587Sdholland if (dtrace_nfsclient_attrcache_get_hit_probe != NULL) \ 91*6ca35587Sdholland (dtrace_nfsclient_attrcache_get_hit_probe)( \ 92*6ca35587Sdholland nfsclient_attrcache_get_hit_id, (vp), (vap)); \ 93*6ca35587Sdholland } while (0) 94*6ca35587Sdholland 95*6ca35587Sdholland #define KDTRACE_NFS_ATTRCACHE_GET_MISS(vp) do { \ 96*6ca35587Sdholland if (dtrace_nfsclient_attrcache_get_miss_probe != NULL) \ 97*6ca35587Sdholland (dtrace_nfsclient_attrcache_get_miss_probe)( \ 98*6ca35587Sdholland nfsclient_attrcache_get_miss_id, (vp)); \ 99*6ca35587Sdholland } while (0) 100*6ca35587Sdholland 101*6ca35587Sdholland #define KDTRACE_NFS_ATTRCACHE_LOAD_DONE(vp, vap, error) do { \ 102*6ca35587Sdholland if (dtrace_nfsclient_attrcache_load_done_probe != NULL) \ 103*6ca35587Sdholland (dtrace_nfsclient_attrcache_load_done_probe)( \ 104*6ca35587Sdholland nfsclient_attrcache_load_done_id, (vp), (vap), \ 105*6ca35587Sdholland (error)); \ 106*6ca35587Sdholland } while (0) 107*6ca35587Sdholland 108*6ca35587Sdholland #else /* !KDTRACE_HOOKS */ 109*6ca35587Sdholland 110*6ca35587Sdholland #define KDTRACE_NFS_ACCESSCACHE_FLUSH_DONE(vp) 111*6ca35587Sdholland #define KDTRACE_NFS_ACCESSCACHE_GET_HIT(vp, uid, mode) 112*6ca35587Sdholland #define KDTRACE_NFS_ACCESSCACHE_GET_MISS(vp, uid, mode) 113*6ca35587Sdholland #define KDTRACE_NFS_ACCESSCACHE_LOAD_DONE(vp, uid, rmode, error) 114*6ca35587Sdholland 115*6ca35587Sdholland #define KDTRACE_NFS_ATTRCACHE_FLUSH_DONE(vp) 116*6ca35587Sdholland #define KDTRACE_NFS_ATTRCACHE_GET_HIT(vp, vap) 117*6ca35587Sdholland #define KDTRACE_NFS_ATTRCACHE_GET_MISS(vp) 118*6ca35587Sdholland #define KDTRACE_NFS_ATTRCACHE_LOAD_DONE(vp, vap, error) 119*6ca35587Sdholland 120*6ca35587Sdholland #endif /* KDTRACE_HOOKS */ 121*6ca35587Sdholland 122*6ca35587Sdholland #endif /* !_NFSCLIENT_NFS_KDTRACE_H_ */ 123