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__ */