Server IP : 103.169.32.36 / Your IP : 216.73.217.13 Web Server : Apache System : Linux web.dpmptsp 3.10.0-1160.119.1.el7.x86_64 #1 SMP Tue Jun 4 14:43:51 UTC 2024 x86_64 User : apache ( 48) PHP Version : 5.6.40 Disable Function : NONE MySQL : ON | cURL : ON | WGET : ON | Perl : ON | Python : ON | Sudo : ON | Pkexec : ON Directory : /usr/lib/modules/3.10.0-1160.105.1.el7.x86_64/source/include/trace/events/ |
Upload File : |
| Current File : /usr/lib/modules/3.10.0-1160.105.1.el7.x86_64/source/include/trace/events/i2c.h |
/* I2C and SMBUS message transfer tracepoints
*
* Copyright (C) 2013 Red Hat, Inc. All Rights Reserved.
* Written by David Howells (dhowells@redhat.com)
*
* This program is free software; you can redistribute it and/or
* modify it under the terms of the GNU General Public Licence
* as published by the Free Software Foundation; either version
* 2 of the Licence, or (at your option) any later version.
*/
#undef TRACE_SYSTEM
#define TRACE_SYSTEM i2c
#if !defined(_TRACE_I2C_H) || defined(TRACE_HEADER_MULTI_READ)
#define _TRACE_I2C_H
#include <linux/i2c.h>
#include <linux/tracepoint.h>
/*
* drivers/i2c/i2c-core.c
*/
extern void i2c_transfer_trace_reg(void);
extern void i2c_transfer_trace_unreg(void);
/*
* __i2c_transfer() write request
*/
TRACE_EVENT_FN(i2c_write,
TP_PROTO(const struct i2c_adapter *adap, const struct i2c_msg *msg,
int num),
TP_ARGS(adap, msg, num),
TP_STRUCT__entry(
__field(int, adapter_nr )
__field(__u16, msg_nr )
__field(__u16, addr )
__field(__u16, flags )
__field(__u16, len )
__dynamic_array(__u8, buf, msg->len) ),
TP_fast_assign(
__entry->adapter_nr = adap->nr;
__entry->msg_nr = num;
__entry->addr = msg->addr;
__entry->flags = msg->flags;
__entry->len = msg->len;
memcpy(__get_dynamic_array(buf), msg->buf, msg->len);
),
TP_printk("i2c-%d #%u a=%03x f=%04x l=%u [%*phD]",
__entry->adapter_nr,
__entry->msg_nr,
__entry->addr,
__entry->flags,
__entry->len,
__entry->len, __get_dynamic_array(buf)
),
i2c_transfer_trace_reg,
i2c_transfer_trace_unreg);
/*
* __i2c_transfer() read request
*/
TRACE_EVENT_FN(i2c_read,
TP_PROTO(const struct i2c_adapter *adap, const struct i2c_msg *msg,
int num),
TP_ARGS(adap, msg, num),
TP_STRUCT__entry(
__field(int, adapter_nr )
__field(__u16, msg_nr )
__field(__u16, addr )
__field(__u16, flags )
__field(__u16, len )
),
TP_fast_assign(
__entry->adapter_nr = adap->nr;
__entry->msg_nr = num;
__entry->addr = msg->addr;
__entry->flags = msg->flags;
__entry->len = msg->len;
),
TP_printk("i2c-%d #%u a=%03x f=%04x l=%u",
__entry->adapter_nr,
__entry->msg_nr,
__entry->addr,
__entry->flags,
__entry->len
),
i2c_transfer_trace_reg,
i2c_transfer_trace_unreg);
/*
* __i2c_transfer() read reply
*/
TRACE_EVENT_FN(i2c_reply,
TP_PROTO(const struct i2c_adapter *adap, const struct i2c_msg *msg,
int num),
TP_ARGS(adap, msg, num),
TP_STRUCT__entry(
__field(int, adapter_nr )
__field(__u16, msg_nr )
__field(__u16, addr )
__field(__u16, flags )
__field(__u16, len )
__dynamic_array(__u8, buf, msg->len) ),
TP_fast_assign(
__entry->adapter_nr = adap->nr;
__entry->msg_nr = num;
__entry->addr = msg->addr;
__entry->flags = msg->flags;
__entry->len = msg->len;
memcpy(__get_dynamic_array(buf), msg->buf, msg->len);
),
TP_printk("i2c-%d #%u a=%03x f=%04x l=%u [%*phD]",
__entry->adapter_nr,
__entry->msg_nr,
__entry->addr,
__entry->flags,
__entry->len,
__entry->len, __get_dynamic_array(buf)
),
i2c_transfer_trace_reg,
i2c_transfer_trace_unreg);
/*
* __i2c_transfer() result
*/
TRACE_EVENT_FN(i2c_result,
TP_PROTO(const struct i2c_adapter *adap, int num, int ret),
TP_ARGS(adap, num, ret),
TP_STRUCT__entry(
__field(int, adapter_nr )
__field(__u16, nr_msgs )
__field(__s16, ret )
),
TP_fast_assign(
__entry->adapter_nr = adap->nr;
__entry->nr_msgs = num;
__entry->ret = ret;
),
TP_printk("i2c-%d n=%u ret=%d",
__entry->adapter_nr,
__entry->nr_msgs,
__entry->ret
),
i2c_transfer_trace_reg,
i2c_transfer_trace_unreg);
/*
* i2c_smbus_xfer() write data or procedure call request
*/
TRACE_EVENT_CONDITION(smbus_write,
TP_PROTO(const struct i2c_adapter *adap,
u16 addr, unsigned short flags,
char read_write, u8 command, int protocol,
const union i2c_smbus_data *data),
TP_ARGS(adap, addr, flags, read_write, command, protocol, data),
TP_CONDITION(read_write == I2C_SMBUS_WRITE ||
protocol == I2C_SMBUS_PROC_CALL ||
protocol == I2C_SMBUS_BLOCK_PROC_CALL),
TP_STRUCT__entry(
__field(int, adapter_nr )
__field(__u16, addr )
__field(__u16, flags )
__field(__u8, command )
__field(__u8, len )
__field(__u32, protocol )
__array(__u8, buf, I2C_SMBUS_BLOCK_MAX + 2) ),
TP_fast_assign(
__entry->adapter_nr = adap->nr;
__entry->addr = addr;
__entry->flags = flags;
__entry->command = command;
__entry->protocol = protocol;
switch (protocol) {
case I2C_SMBUS_BYTE_DATA:
__entry->len = 1;
goto copy;
case I2C_SMBUS_WORD_DATA:
case I2C_SMBUS_PROC_CALL:
__entry->len = 2;
goto copy;
case I2C_SMBUS_BLOCK_DATA:
case I2C_SMBUS_BLOCK_PROC_CALL:
case I2C_SMBUS_I2C_BLOCK_DATA:
__entry->len = data->block[0] + 1;
copy:
memcpy(__entry->buf, data->block, __entry->len);
break;
case I2C_SMBUS_QUICK:
case I2C_SMBUS_BYTE:
case I2C_SMBUS_I2C_BLOCK_BROKEN:
default:
__entry->len = 0;
}
),
TP_printk("i2c-%d a=%03x f=%04x c=%x %s l=%u [%*phD]",
__entry->adapter_nr,
__entry->addr,
__entry->flags,
__entry->command,
__print_symbolic(__entry->protocol,
{ I2C_SMBUS_QUICK, "QUICK" },
{ I2C_SMBUS_BYTE, "BYTE" },
{ I2C_SMBUS_BYTE_DATA, "BYTE_DATA" },
{ I2C_SMBUS_WORD_DATA, "WORD_DATA" },
{ I2C_SMBUS_PROC_CALL, "PROC_CALL" },
{ I2C_SMBUS_BLOCK_DATA, "BLOCK_DATA" },
{ I2C_SMBUS_I2C_BLOCK_BROKEN, "I2C_BLOCK_BROKEN" },
{ I2C_SMBUS_BLOCK_PROC_CALL, "BLOCK_PROC_CALL" },
{ I2C_SMBUS_I2C_BLOCK_DATA, "I2C_BLOCK_DATA" }),
__entry->len,
__entry->len, __entry->buf
));
/*
* i2c_smbus_xfer() read data request
*/
TRACE_EVENT_CONDITION(smbus_read,
TP_PROTO(const struct i2c_adapter *adap,
u16 addr, unsigned short flags,
char read_write, u8 command, int protocol),
TP_ARGS(adap, addr, flags, read_write, command, protocol),
TP_CONDITION(!(read_write == I2C_SMBUS_WRITE ||
protocol == I2C_SMBUS_PROC_CALL ||
protocol == I2C_SMBUS_BLOCK_PROC_CALL)),
TP_STRUCT__entry(
__field(int, adapter_nr )
__field(__u16, flags )
__field(__u16, addr )
__field(__u8, command )
__field(__u32, protocol )
__array(__u8, buf, I2C_SMBUS_BLOCK_MAX + 2) ),
TP_fast_assign(
__entry->adapter_nr = adap->nr;
__entry->addr = addr;
__entry->flags = flags;
__entry->command = command;
__entry->protocol = protocol;
),
TP_printk("i2c-%d a=%03x f=%04x c=%x %s",
__entry->adapter_nr,
__entry->addr,
__entry->flags,
__entry->command,
__print_symbolic(__entry->protocol,
{ I2C_SMBUS_QUICK, "QUICK" },
{ I2C_SMBUS_BYTE, "BYTE" },
{ I2C_SMBUS_BYTE_DATA, "BYTE_DATA" },
{ I2C_SMBUS_WORD_DATA, "WORD_DATA" },
{ I2C_SMBUS_PROC_CALL, "PROC_CALL" },
{ I2C_SMBUS_BLOCK_DATA, "BLOCK_DATA" },
{ I2C_SMBUS_I2C_BLOCK_BROKEN, "I2C_BLOCK_BROKEN" },
{ I2C_SMBUS_BLOCK_PROC_CALL, "BLOCK_PROC_CALL" },
{ I2C_SMBUS_I2C_BLOCK_DATA, "I2C_BLOCK_DATA" })
));
/*
* i2c_smbus_xfer() read data or procedure call reply
*/
TRACE_EVENT_CONDITION(smbus_reply,
TP_PROTO(const struct i2c_adapter *adap,
u16 addr, unsigned short flags,
char read_write, u8 command, int protocol,
const union i2c_smbus_data *data),
TP_ARGS(adap, addr, flags, read_write, command, protocol, data),
TP_CONDITION(read_write == I2C_SMBUS_READ),
TP_STRUCT__entry(
__field(int, adapter_nr )
__field(__u16, addr )
__field(__u16, flags )
__field(__u8, command )
__field(__u8, len )
__field(__u32, protocol )
__array(__u8, buf, I2C_SMBUS_BLOCK_MAX + 2) ),
TP_fast_assign(
__entry->adapter_nr = adap->nr;
__entry->addr = addr;
__entry->flags = flags;
__entry->command = command;
__entry->protocol = protocol;
switch (protocol) {
case I2C_SMBUS_BYTE:
case I2C_SMBUS_BYTE_DATA:
__entry->len = 1;
goto copy;
case I2C_SMBUS_WORD_DATA:
case I2C_SMBUS_PROC_CALL:
__entry->len = 2;
goto copy;
case I2C_SMBUS_BLOCK_DATA:
case I2C_SMBUS_BLOCK_PROC_CALL:
case I2C_SMBUS_I2C_BLOCK_DATA:
__entry->len = data->block[0] + 1;
copy:
memcpy(__entry->buf, data->block, __entry->len);
break;
case I2C_SMBUS_QUICK:
case I2C_SMBUS_I2C_BLOCK_BROKEN:
default:
__entry->len = 0;
}
),
TP_printk("i2c-%d a=%03x f=%04x c=%x %s l=%u [%*phD]",
__entry->adapter_nr,
__entry->addr,
__entry->flags,
__entry->command,
__print_symbolic(__entry->protocol,
{ I2C_SMBUS_QUICK, "QUICK" },
{ I2C_SMBUS_BYTE, "BYTE" },
{ I2C_SMBUS_BYTE_DATA, "BYTE_DATA" },
{ I2C_SMBUS_WORD_DATA, "WORD_DATA" },
{ I2C_SMBUS_PROC_CALL, "PROC_CALL" },
{ I2C_SMBUS_BLOCK_DATA, "BLOCK_DATA" },
{ I2C_SMBUS_I2C_BLOCK_BROKEN, "I2C_BLOCK_BROKEN" },
{ I2C_SMBUS_BLOCK_PROC_CALL, "BLOCK_PROC_CALL" },
{ I2C_SMBUS_I2C_BLOCK_DATA, "I2C_BLOCK_DATA" }),
__entry->len,
__entry->len, __entry->buf
));
/*
* i2c_smbus_xfer() result
*/
TRACE_EVENT(smbus_result,
TP_PROTO(const struct i2c_adapter *adap,
u16 addr, unsigned short flags,
char read_write, u8 command, int protocol,
int res),
TP_ARGS(adap, addr, flags, read_write, command, protocol, res),
TP_STRUCT__entry(
__field(int, adapter_nr )
__field(__u16, addr )
__field(__u16, flags )
__field(__u8, read_write )
__field(__u8, command )
__field(__s16, res )
__field(__u32, protocol )
),
TP_fast_assign(
__entry->adapter_nr = adap->nr;
__entry->addr = addr;
__entry->flags = flags;
__entry->read_write = read_write;
__entry->command = command;
__entry->protocol = protocol;
__entry->res = res;
),
TP_printk("i2c-%d a=%03x f=%04x c=%x %s %s res=%d",
__entry->adapter_nr,
__entry->addr,
__entry->flags,
__entry->command,
__print_symbolic(__entry->protocol,
{ I2C_SMBUS_QUICK, "QUICK" },
{ I2C_SMBUS_BYTE, "BYTE" },
{ I2C_SMBUS_BYTE_DATA, "BYTE_DATA" },
{ I2C_SMBUS_WORD_DATA, "WORD_DATA" },
{ I2C_SMBUS_PROC_CALL, "PROC_CALL" },
{ I2C_SMBUS_BLOCK_DATA, "BLOCK_DATA" },
{ I2C_SMBUS_I2C_BLOCK_BROKEN, "I2C_BLOCK_BROKEN" },
{ I2C_SMBUS_BLOCK_PROC_CALL, "BLOCK_PROC_CALL" },
{ I2C_SMBUS_I2C_BLOCK_DATA, "I2C_BLOCK_DATA" }),
__entry->read_write == I2C_SMBUS_WRITE ? "wr" : "rd",
__entry->res
));
#endif /* _TRACE_I2C_H */
/* This part must be outside protection */
#include <trace/define_trace.h>
| N4m3 |
5!z3 |
L45t M0d!f!3d |
0wn3r / Gr0up |
P3Rm!55!0n5 |
0pt!0n5 |
| .. |
-- |
January 19 2024 08:12:51 |
0 / 0 |
0755 |
|
| | | | | |
| 9p.h |
5.534 KB |
November 06 2023 09:15:52 |
0 / 0 |
0644 |
|
| asoc.h |
5.136 KB |
November 06 2023 09:15:52 |
0 / 0 |
0644 |
|
| bcache.h |
5.146 KB |
November 06 2023 09:15:52 |
0 / 0 |
0644 |
|
| block.h |
18.104 KB |
November 06 2023 09:15:52 |
0 / 0 |
0644 |
|
| bridge.h |
3.453 KB |
November 06 2023 09:15:52 |
0 / 0 |
0644 |
|
| btrfs.h |
36.518 KB |
November 06 2023 09:15:52 |
0 / 0 |
0644 |
|
| compaction.h |
1.528 KB |
November 06 2023 09:15:52 |
0 / 0 |
0644 |
|
| context_tracking.h |
1.111 KB |
November 06 2023 09:15:52 |
0 / 0 |
0644 |
|
| devlink.h |
1.726 KB |
November 06 2023 09:15:52 |
0 / 0 |
0644 |
|
| dma_fence.h |
2.922 KB |
November 06 2023 09:15:52 |
0 / 0 |
0644 |
|
| ext3.h |
18.821 KB |
November 06 2023 09:15:52 |
0 / 0 |
0644 |
|
| ext4.h |
60.785 KB |
November 06 2023 09:15:52 |
0 / 0 |
0644 |
|
| f2fs.h |
14.89 KB |
November 06 2023 09:15:52 |
0 / 0 |
0644 |
|
| filelock.h |
2.978 KB |
November 06 2023 09:15:52 |
0 / 0 |
0644 |
|
| filemap.h |
1.331 KB |
November 06 2023 09:15:52 |
0 / 0 |
0644 |
|
| fs_dax.h |
8.33 KB |
November 06 2023 09:15:52 |
0 / 0 |
0644 |
|
| gfpflags.h |
1.747 KB |
November 06 2023 09:15:52 |
0 / 0 |
0644 |
|
| gpio.h |
1.035 KB |
November 06 2023 09:15:52 |
0 / 0 |
0644 |
|
| host1x.h |
5.751 KB |
November 06 2023 09:15:52 |
0 / 0 |
0644 |
|
| hswadsp.h |
8.329 KB |
November 06 2023 09:15:52 |
0 / 0 |
0644 |
|
| i2c.h |
10.944 KB |
November 06 2023 09:15:52 |
0 / 0 |
0644 |
|
| intel-sst.h |
2.473 KB |
November 06 2023 09:15:52 |
0 / 0 |
0644 |
|
| intel_ish.h |
0.505 KB |
November 06 2023 09:15:52 |
0 / 0 |
0644 |
|
| iommu.h |
2.994 KB |
November 06 2023 09:15:52 |
0 / 0 |
0644 |
|
| irq.h |
3.429 KB |
November 06 2023 09:15:52 |
0 / 0 |
0644 |
|
| jbd.h |
4.27 KB |
November 06 2023 09:15:52 |
0 / 0 |
0644 |
|
| jbd2.h |
9.756 KB |
November 06 2023 09:15:52 |
0 / 0 |
0644 |
|
| kmem.h |
6.979 KB |
November 06 2023 09:15:52 |
0 / 0 |
0644 |
|
| kvm.h |
8.565 KB |
November 06 2023 09:15:52 |
0 / 0 |
0644 |
|
| libata.h |
11.072 KB |
November 06 2023 09:15:52 |
0 / 0 |
0644 |
|
| lock.h |
1.658 KB |
November 06 2023 09:15:52 |
0 / 0 |
0644 |
|
| mce.h |
1.814 KB |
November 06 2023 09:15:52 |
0 / 0 |
0644 |
|
| mdio.h |
0.985 KB |
November 06 2023 09:15:52 |
0 / 0 |
0644 |
|
| migrate.h |
1.876 KB |
November 06 2023 09:15:52 |
0 / 0 |
0644 |
|
| mmc.h |
7.2 KB |
November 06 2023 09:15:52 |
0 / 0 |
0644 |
|
| module.h |
2.791 KB |
November 06 2023 09:15:52 |
0 / 0 |
0644 |
|
| napi.h |
0.762 KB |
November 06 2023 09:15:52 |
0 / 0 |
0644 |
|
| net.h |
4.424 KB |
November 06 2023 09:15:52 |
0 / 0 |
0644 |
|
| oom.h |
0.7 KB |
November 06 2023 09:15:52 |
0 / 0 |
0644 |
|
| pagemap.h |
2.134 KB |
November 06 2023 09:15:52 |
0 / 0 |
0644 |
|
| percpu.h |
2.568 KB |
November 06 2023 09:15:52 |
0 / 0 |
0644 |
|
| power.h |
9.382 KB |
November 06 2023 09:15:52 |
0 / 0 |
0644 |
|
| printk.h |
0.562 KB |
November 06 2023 09:15:52 |
0 / 0 |
0644 |
|
| qdisc.h |
1.366 KB |
November 06 2023 09:15:52 |
0 / 0 |
0644 |
|
| random.h |
7.197 KB |
November 06 2023 09:15:52 |
0 / 0 |
0644 |
|
| rcu.h |
19.862 KB |
November 06 2023 09:15:52 |
0 / 0 |
0644 |
|
| rdma.h |
3.237 KB |
November 06 2023 09:15:52 |
0 / 0 |
0644 |
|
| regmap.h |
4.44 KB |
November 06 2023 09:15:52 |
0 / 0 |
0644 |
|
| regulator.h |
2.36 KB |
November 06 2023 09:15:52 |
0 / 0 |
0644 |
|
| rpcrdma.h |
31.287 KB |
November 06 2023 09:15:52 |
0 / 0 |
0644 |
|
| rpm.h |
2.3 KB |
November 06 2023 09:15:52 |
0 / 0 |
0644 |
|
| sched.h |
12.957 KB |
November 06 2023 09:15:52 |
0 / 0 |
0644 |
|
| scsi.h |
12.388 KB |
November 06 2023 09:15:52 |
0 / 0 |
0644 |
|
| signal.h |
3.389 KB |
November 06 2023 09:15:52 |
0 / 0 |
0644 |
|
| skb.h |
1.341 KB |
November 06 2023 09:15:52 |
0 / 0 |
0644 |
|
| sock.h |
1.544 KB |
November 06 2023 09:15:52 |
0 / 0 |
0644 |
|
| sunrpc.h |
16.633 KB |
November 06 2023 09:15:52 |
0 / 0 |
0644 |
|
| syscalls.h |
1.484 KB |
November 06 2023 09:15:52 |
0 / 0 |
0644 |
|
| target.h |
7.473 KB |
November 06 2023 09:15:52 |
0 / 0 |
0644 |
|
| task.h |
1.445 KB |
November 06 2023 09:15:52 |
0 / 0 |
0644 |
|
| thp.h |
2.049 KB |
November 06 2023 09:15:52 |
0 / 0 |
0644 |
|
| timer.h |
7.99 KB |
November 06 2023 09:15:52 |
0 / 0 |
0644 |
|
| udp.h |
0.579 KB |
November 06 2023 09:15:52 |
0 / 0 |
0644 |
|
| vmscan.h |
8.795 KB |
November 06 2023 09:15:52 |
0 / 0 |
0644 |
|
| vsock_virtio_transport_common.h |
3.055 KB |
November 06 2023 09:15:52 |
0 / 0 |
0644 |
|
| workqueue.h |
2.666 KB |
November 06 2023 09:15:52 |
0 / 0 |
0644 |
|
| writeback.h |
16.093 KB |
November 06 2023 09:15:52 |
0 / 0 |
0644 |
|
| xdp.h |
0.204 KB |
November 06 2023 09:15:52 |
0 / 0 |
0644 |
|
| xen.h |
15.746 KB |
November 06 2023 09:15:52 |
0 / 0 |
0644 |
|