/*
* Copyright (c) 2009, Christoph Hellwig
* All Rights Reserved.
*
* This program is free software; you can redistribute it and/or
* modify it under the terms of the GNU General Public License as
* published by the Free Software Foundation.
*
* This program is distributed in the hope that it would be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
* GNU General Public License for more details.
*
* You should have received a copy of the GNU General Public License
* along with this program; if not, write the Free Software Foundation,
* Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA
*/
#undef TRACE_SYSTEM
#define TRACE_SYSTEM xfs
#if !defined(_TRACE_XFS_H) || defined(TRACE_HEADER_MULTI_READ)
#define _TRACE_XFS_H
#include <linux/tracepoint.h>
struct xfs_agf;
struct xfs_alloc_arg;
struct xfs_attr_list_context;
struct xfs_buf_log_item;
struct xfs_da_args;
struct xfs_da_node_entry;
struct xfs_dquot;
struct xlog_ticket;
struct log;
#define DEFINE_ATTR_LIST_EVENT(name) \
TRACE_EVENT(name, \
TP_PROTO(struct xfs_attr_list_context *ctx), \
TP_ARGS(ctx), \
TP_STRUCT__entry( \
__field(dev_t, dev) \
__field(xfs_ino_t, ino) \
__field(u32, hashval) \
__field(u32, blkno) \
__field(u32, offset) \
__field(void *, alist) \
__field(int, bufsize) \
__field(int, count) \
__field(int, firstu) \
__field(int, dupcnt) \
__field(int, flags) \
), \
TP_fast_assign( \
__entry->dev = VFS_I(ctx->dp)->i_sb->s_dev; \
__entry->ino = ctx->dp->i_ino; \
__entry->hashval = ctx->cursor->hashval; \
__entry->blkno = ctx->cursor->blkno; \
__entry->offset = ctx->cursor->offset; \
__entry->alist = ctx->alist; \
__entry->bufsize = ctx->bufsize; \
__entry->count = ctx->count; \
__entry->firstu = ctx->firstu; \
__entry->flags = ctx->flags; \
), \
TP_printk("dev %d:%d ino 0x%llx cursor h/b/o 0x%x/0x%x/%u dupcnt %u " \
"alist 0x%p size %u count %u firstu %u flags %d %s", \
MAJOR(__entry->dev), MINOR(__entry->dev), \
__entry->ino, \
__entry->hashval, \
__entry->blkno, \
__entry->offset, \
__entry->dupcnt, \
__entry->alist, \
__entry->bufsize, \
__entry->count, \
__entry->firstu, \
__entry->flags, \
__print_flags(__entry->flags, "|", XFS_ATTR_FLAGS) \
) \
)
DEFINE_ATTR_LIST_EVENT(xfs_attr_list_sf);
DEFINE_ATTR_LIST_EVENT(xfs_attr_list_sf_all);
DEFINE_ATTR_LIST_EVENT(xfs_attr_list_leaf);
DEFINE_ATTR_LIST_EVENT(xfs_attr_list_leaf_end);
DEFINE_ATTR_LIST_EVENT(xfs_attr_list_full);
DEFINE_ATTR_LIST_EVENT(xfs_attr_list_add);
DEFINE_ATTR_LIST_EVENT(xfs_attr_list_wrong_blk);
DEFINE_ATTR_LIST_EVENT(xfs_attr_list_notfound);
TRACE_EVENT(xfs_attr_list_node_descend,
TP_PROTO(struct xfs_attr_list_context *ctx,
struct xfs_da_node_entry *btree),
TP_ARGS(ctx, btree),
TP_STRUCT__entry(
__field(dev_t, dev)
__field(xfs_ino_t, ino)
__field(u32, hashval)
__field(u32, blkno)
__field(u32, offset)
__field(void *, alist)
__field(int, bufsize)
__field(int, count)
__field(int, firstu)
__field(int, dupcnt)
__field(int, flags)
__field