mirror of https://github.com/Qortal/Brooklyn
You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
128 lines
2.8 KiB
128 lines
2.8 KiB
/* SPDX-License-Identifier: GPL-2.0 */ |
|
|
|
#undef TRACE_SYSTEM |
|
#define TRACE_SYSTEM fsi |
|
|
|
#if !defined(_TRACE_FSI_H) || defined(TRACE_HEADER_MULTI_READ) |
|
#define _TRACE_FSI_H |
|
|
|
#include <linux/tracepoint.h> |
|
|
|
TRACE_EVENT(fsi_master_read, |
|
TP_PROTO(const struct fsi_master *master, int link, int id, |
|
uint32_t addr, size_t size), |
|
TP_ARGS(master, link, id, addr, size), |
|
TP_STRUCT__entry( |
|
__field(int, master_idx) |
|
__field(int, link) |
|
__field(int, id) |
|
__field(__u32, addr) |
|
__field(size_t, size) |
|
), |
|
TP_fast_assign( |
|
__entry->master_idx = master->idx; |
|
__entry->link = link; |
|
__entry->id = id; |
|
__entry->addr = addr; |
|
__entry->size = size; |
|
), |
|
TP_printk("fsi%d:%02d:%02d %08x[%zu]", |
|
__entry->master_idx, |
|
__entry->link, |
|
__entry->id, |
|
__entry->addr, |
|
__entry->size |
|
) |
|
); |
|
|
|
TRACE_EVENT(fsi_master_write, |
|
TP_PROTO(const struct fsi_master *master, int link, int id, |
|
uint32_t addr, size_t size, const void *data), |
|
TP_ARGS(master, link, id, addr, size, data), |
|
TP_STRUCT__entry( |
|
__field(int, master_idx) |
|
__field(int, link) |
|
__field(int, id) |
|
__field(__u32, addr) |
|
__field(size_t, size) |
|
__field(__u32, data) |
|
), |
|
TP_fast_assign( |
|
__entry->master_idx = master->idx; |
|
__entry->link = link; |
|
__entry->id = id; |
|
__entry->addr = addr; |
|
__entry->size = size; |
|
__entry->data = 0; |
|
memcpy(&__entry->data, data, size); |
|
), |
|
TP_printk("fsi%d:%02d:%02d %08x[%zu] <= {%*ph}", |
|
__entry->master_idx, |
|
__entry->link, |
|
__entry->id, |
|
__entry->addr, |
|
__entry->size, |
|
(int)__entry->size, &__entry->data |
|
) |
|
); |
|
|
|
TRACE_EVENT(fsi_master_rw_result, |
|
TP_PROTO(const struct fsi_master *master, int link, int id, |
|
uint32_t addr, size_t size, |
|
bool write, const void *data, int ret), |
|
TP_ARGS(master, link, id, addr, size, write, data, ret), |
|
TP_STRUCT__entry( |
|
__field(int, master_idx) |
|
__field(int, link) |
|
__field(int, id) |
|
__field(__u32, addr) |
|
__field(size_t, size) |
|
__field(bool, write) |
|
__field(__u32, data) |
|
__field(int, ret) |
|
), |
|
TP_fast_assign( |
|
__entry->master_idx = master->idx; |
|
__entry->link = link; |
|
__entry->id = id; |
|
__entry->addr = addr; |
|
__entry->size = size; |
|
__entry->write = write; |
|
__entry->data = 0; |
|
__entry->ret = ret; |
|
if (__entry->write || !__entry->ret) |
|
memcpy(&__entry->data, data, size); |
|
), |
|
TP_printk("fsi%d:%02d:%02d %08x[%zu] %s {%*ph} ret %d", |
|
__entry->master_idx, |
|
__entry->link, |
|
__entry->id, |
|
__entry->addr, |
|
__entry->size, |
|
__entry->write ? "<=" : "=>", |
|
(int)__entry->size, &__entry->data, |
|
__entry->ret |
|
) |
|
); |
|
|
|
TRACE_EVENT(fsi_master_break, |
|
TP_PROTO(const struct fsi_master *master, int link), |
|
TP_ARGS(master, link), |
|
TP_STRUCT__entry( |
|
__field(int, master_idx) |
|
__field(int, link) |
|
), |
|
TP_fast_assign( |
|
__entry->master_idx = master->idx; |
|
__entry->link = link; |
|
), |
|
TP_printk("fsi%d:%d", |
|
__entry->master_idx, |
|
__entry->link |
|
) |
|
); |
|
|
|
|
|
#endif /* _TRACE_FSI_H */ |
|
|
|
#include <trace/define_trace.h>
|
|
|