2 * Copyright (c) 2000-2003 Silicon Graphics, Inc. All Rights Reserved.
4 * This program is free software; you can redistribute it and/or modify it
5 * under the terms of version 2 of the GNU General Public License as
6 * published by the Free Software Foundation.
8 * This program is distributed in the hope that it would be useful, but
9 * WITHOUT ANY WARRANTY; without even the implied warranty of
10 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
12 * Further, this software is distributed without any warranty that it is
13 * free of the rightful claim of any third person regarding infringement
14 * or the like. Any license provided herein, whether implied or
15 * otherwise, applies only to this software file. Patent licenses, if
16 * any, provided herein do not apply to combinations of this program with
17 * other software, or any other product whatsoever.
19 * You should have received a copy of the GNU General Public License along
20 * with this program; if not, write the Free Software Foundation, Inc., 59
21 * Temple Place - Suite 330, Boston MA 02111-1307, USA.
23 * Contact information: Silicon Graphics, Inc., 1600 Amphitheatre Pkwy,
24 * Mountain View, CA 94043, or:
28 * For further information regarding this notice, see:
30 * http://oss.sgi.com/projects/GenInfo/SGIGPLNoticeExplan/
32 #ifndef __XFS_SUPPORT_KTRACE_H__
33 #define __XFS_SUPPORT_KTRACE_H__
38 * Trace buffer entry structure.
40 typedef struct ktrace_entry {
45 * Trace buffer header structure.
47 typedef struct ktrace {
48 lock_t kt_lock; /* mutex to guard counters */
49 int kt_nentries; /* number of entries in trace buf */
50 int kt_index; /* current index in entries */
52 ktrace_entry_t *kt_entries; /* buffer of entries */
56 * Trace buffer snapshot structure.
58 typedef struct ktrace_snap {
59 int ks_start; /* kt_index at time of snap */
60 int ks_index; /* current index */
64 #ifdef CONFIG_XFS_TRACE
66 extern void ktrace_init(int zentries);
67 extern void ktrace_uninit(void);
69 extern ktrace_t *ktrace_alloc(int, int);
70 extern void ktrace_free(ktrace_t *);
72 extern void ktrace_enter(
91 extern ktrace_entry_t *ktrace_first(ktrace_t *, ktrace_snap_t *);
92 extern int ktrace_nentries(ktrace_t *);
93 extern ktrace_entry_t *ktrace_next(ktrace_t *, ktrace_snap_t *);
94 extern ktrace_entry_t *ktrace_skip(ktrace_t *, int, ktrace_snap_t *);
97 #define ktrace_init(x) do { } while (0)
98 #define ktrace_uninit() do { } while (0)
99 #endif /* CONFIG_XFS_TRACE */
101 #endif /* __XFS_SUPPORT_KTRACE_H__ */