Linux Audio

Check our new training course

Loading...
Note: File does not exist in v6.2.
  1/* SPDX-License-Identifier: GPL-2.0 */
  2#undef TRACE_SYSTEM
  3#define TRACE_SYSTEM timestamp
  4
  5#if !defined(_TRACE_TIMESTAMP_H) || defined(TRACE_HEADER_MULTI_READ)
  6#define _TRACE_TIMESTAMP_H
  7
  8#include <linux/tracepoint.h>
  9#include <linux/fs.h>
 10
 11#define CTIME_QUERIED_FLAGS \
 12	{ I_CTIME_QUERIED, "Q" }
 13
 14DECLARE_EVENT_CLASS(ctime,
 15	TP_PROTO(struct inode *inode,
 16		 struct timespec64 *ctime),
 17
 18	TP_ARGS(inode, ctime),
 19
 20	TP_STRUCT__entry(
 21		__field(dev_t,		dev)
 22		__field(ino_t,		ino)
 23		__field(time64_t,	ctime_s)
 24		__field(u32,		ctime_ns)
 25		__field(u32,		gen)
 26	),
 27
 28	TP_fast_assign(
 29		__entry->dev		= inode->i_sb->s_dev;
 30		__entry->ino		= inode->i_ino;
 31		__entry->gen		= inode->i_generation;
 32		__entry->ctime_s	= ctime->tv_sec;
 33		__entry->ctime_ns	= ctime->tv_nsec;
 34	),
 35
 36	TP_printk("ino=%d:%d:%ld:%u ctime=%lld.%u",
 37		MAJOR(__entry->dev), MINOR(__entry->dev), __entry->ino, __entry->gen,
 38		__entry->ctime_s, __entry->ctime_ns
 39	)
 40);
 41
 42DEFINE_EVENT(ctime, inode_set_ctime_to_ts,
 43		TP_PROTO(struct inode *inode,
 44			 struct timespec64 *ctime),
 45		TP_ARGS(inode, ctime));
 46
 47DEFINE_EVENT(ctime, ctime_xchg_skip,
 48		TP_PROTO(struct inode *inode,
 49			 struct timespec64 *ctime),
 50		TP_ARGS(inode, ctime));
 51
 52TRACE_EVENT(ctime_ns_xchg,
 53	TP_PROTO(struct inode *inode,
 54		 u32 old,
 55		 u32 new,
 56		 u32 cur),
 57
 58	TP_ARGS(inode, old, new, cur),
 59
 60	TP_STRUCT__entry(
 61		__field(dev_t,		dev)
 62		__field(ino_t,		ino)
 63		__field(u32,		gen)
 64		__field(u32,		old)
 65		__field(u32,		new)
 66		__field(u32,		cur)
 67	),
 68
 69	TP_fast_assign(
 70		__entry->dev		= inode->i_sb->s_dev;
 71		__entry->ino		= inode->i_ino;
 72		__entry->gen		= inode->i_generation;
 73		__entry->old		= old;
 74		__entry->new		= new;
 75		__entry->cur		= cur;
 76	),
 77
 78	TP_printk("ino=%d:%d:%ld:%u old=%u:%s new=%u cur=%u:%s",
 79		MAJOR(__entry->dev), MINOR(__entry->dev), __entry->ino, __entry->gen,
 80		__entry->old & ~I_CTIME_QUERIED,
 81		__print_flags(__entry->old & I_CTIME_QUERIED, "|", CTIME_QUERIED_FLAGS),
 82		__entry->new,
 83		__entry->cur & ~I_CTIME_QUERIED,
 84		__print_flags(__entry->cur & I_CTIME_QUERIED, "|", CTIME_QUERIED_FLAGS)
 85	)
 86);
 87
 88TRACE_EVENT(fill_mg_cmtime,
 89	TP_PROTO(struct inode *inode,
 90		 struct timespec64 *ctime,
 91		 struct timespec64 *mtime),
 92
 93	TP_ARGS(inode, ctime, mtime),
 94
 95	TP_STRUCT__entry(
 96		__field(dev_t,		dev)
 97		__field(ino_t,		ino)
 98		__field(time64_t,	ctime_s)
 99		__field(time64_t,	mtime_s)
100		__field(u32,		ctime_ns)
101		__field(u32,		mtime_ns)
102		__field(u32,		gen)
103	),
104
105	TP_fast_assign(
106		__entry->dev		= inode->i_sb->s_dev;
107		__entry->ino		= inode->i_ino;
108		__entry->gen		= inode->i_generation;
109		__entry->ctime_s	= ctime->tv_sec;
110		__entry->mtime_s	= mtime->tv_sec;
111		__entry->ctime_ns	= ctime->tv_nsec;
112		__entry->mtime_ns	= mtime->tv_nsec;
113	),
114
115	TP_printk("ino=%d:%d:%ld:%u ctime=%lld.%u mtime=%lld.%u",
116		MAJOR(__entry->dev), MINOR(__entry->dev), __entry->ino, __entry->gen,
117		__entry->ctime_s, __entry->ctime_ns,
118		__entry->mtime_s, __entry->mtime_ns
119	)
120);
121#endif /* _TRACE_TIMESTAMP_H */
122
123/* This part must be outside protection */
124#include <trace/define_trace.h>