1179065Sjb/*
2179065Sjb * Copyright (C) 2008 John Birrell <jb@freebsd.org>
3179065Sjb *
4179065Sjb * Redistribution and use in source and binary forms, with or without
5179065Sjb * modification, are permitted provided that the following conditions
6179065Sjb * are met:
7179065Sjb * 1. Redistributions of source code must retain the above copyright
8179065Sjb *    notice, this list of conditions and the following disclaimer.
9179065Sjb * 2. Redistributions in binary form must reproduce the above copyright
10179065Sjb *    notice, this list of conditions and the following disclaimer in the
11179065Sjb *    documentation and/or other materials provided with the distribution.
12179065Sjb *
13179065Sjb * THIS SOFTWARE IS PROVIDED BY AUTHOR AND CONTRIBUTORS ``AS IS'' AND
14179065Sjb * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
15179065Sjb * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
16179065Sjb * ARE DISCLAIMED.  IN NO EVENT SHALL AUTHOR OR CONTRIBUTORS BE LIABLE
17179065Sjb * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
18179065Sjb * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
19179065Sjb * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
20179065Sjb * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
21179065Sjb * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
22179065Sjb * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
23179065Sjb * SUCH DAMAGE.
24179065Sjb *
25179065Sjb * $FreeBSD$
26179065Sjb */
27179065Sjb
28179065Sjb#include <sys/cdefs.h>
29179065Sjb#include <sys/param.h>
30179065Sjb#include <sys/systm.h>
31179065Sjb#include <sys/conf.h>
32179065Sjb#include <sys/kernel.h>
33179065Sjb#include <sys/module.h>
34179065Sjb#include <sys/errno.h>
35219561Savg#include "opt_compat.h"
36239971Srpaulo#include "opt_nfs.h"
37179065Sjb
38179065Sjbstatic int
39179065Sjbdtraceall_modevent(module_t mod __unused, int type, void *data __unused)
40179065Sjb{
41179065Sjb	int error = 0;
42179065Sjb
43179065Sjb	switch (type) {
44179065Sjb	case MOD_LOAD:
45179065Sjb		break;
46179065Sjb
47179065Sjb	case MOD_UNLOAD:
48179065Sjb		break;
49179065Sjb
50179065Sjb	case MOD_SHUTDOWN:
51179065Sjb		break;
52179065Sjb
53179065Sjb	default:
54179065Sjb		error = EOPNOTSUPP;
55179065Sjb		break;
56179065Sjb
57179065Sjb	}
58179065Sjb
59179065Sjb	return (error);
60179065Sjb}
61179065Sjb
62179065SjbDEV_MODULE(dtraceall, dtraceall_modevent, NULL);
63179065SjbMODULE_VERSION(dtraceall, 1);
64179065Sjb
65179065Sjb/* All the DTrace modules should be dependencies here: */
66179065SjbMODULE_DEPEND(dtraceall, cyclic, 1, 1, 1);
67179065SjbMODULE_DEPEND(dtraceall, opensolaris, 1, 1, 1);
68179065SjbMODULE_DEPEND(dtraceall, dtrace, 1, 1, 1);
69179065SjbMODULE_DEPEND(dtraceall, dtmalloc, 1, 1, 1);
70223280SrmacklemMODULE_DEPEND(dtraceall, dtnfscl, 1, 1, 1);
71239971Srpaulo#if defined(NFSCLIENT)
72190293SrwatsonMODULE_DEPEND(dtraceall, dtnfsclient, 1, 1, 1);
73239971Srpaulo#endif
74248457Sjhibbits#if defined(__amd64__) || defined(__i386__) || defined(__powerpc__)
75248457SjhibbitsMODULE_DEPEND(dtraceall, fbt, 1, 1, 1);
76248457Sjhibbits#endif
77179065Sjb#if defined(__amd64__) || defined(__i386__)
78211753SrpauloMODULE_DEPEND(dtraceall, fasttrap, 1, 1, 1);
79179065Sjb#endif
80192853SssonMODULE_DEPEND(dtraceall, lockstat, 1, 1, 1);
81179065SjbMODULE_DEPEND(dtraceall, sdt, 1, 1, 1);
82179065SjbMODULE_DEPEND(dtraceall, systrace, 1, 1, 1);
83219561Savg#if defined(COMPAT_FREEBSD32)
84219561SavgMODULE_DEPEND(dtraceall, systrace_freebsd32, 1, 1, 1);
85219561Savg#endif
86179065SjbMODULE_DEPEND(dtraceall, profile, 1, 1, 1);
87