cachepc-linux

Fork of AMDESE/linux with modifications for CachePC side-channel attack
git clone https://git.sinitax.com/sinitax/cachepc-linux
Log | Files | Refs | README | LICENSE | sfeed.txt

fsi.h (4938B)


      1/* SPDX-License-Identifier: GPL-2.0 */
      2
      3#undef TRACE_SYSTEM
      4#define TRACE_SYSTEM fsi
      5
      6#if !defined(_TRACE_FSI_H) || defined(TRACE_HEADER_MULTI_READ)
      7#define _TRACE_FSI_H
      8
      9#include <linux/tracepoint.h>
     10
     11TRACE_EVENT(fsi_master_read,
     12	TP_PROTO(const struct fsi_master *master, int link, int id,
     13			uint32_t addr, size_t size),
     14	TP_ARGS(master, link, id, addr, size),
     15	TP_STRUCT__entry(
     16		__field(int,	master_idx)
     17		__field(int,	link)
     18		__field(int,	id)
     19		__field(__u32,	addr)
     20		__field(size_t,	size)
     21	),
     22	TP_fast_assign(
     23		__entry->master_idx = master->idx;
     24		__entry->link = link;
     25		__entry->id = id;
     26		__entry->addr = addr;
     27		__entry->size = size;
     28	),
     29	TP_printk("fsi%d:%02d:%02d %08x[%zu]",
     30		__entry->master_idx,
     31		__entry->link,
     32		__entry->id,
     33		__entry->addr,
     34		__entry->size
     35	)
     36);
     37
     38TRACE_EVENT(fsi_master_write,
     39	TP_PROTO(const struct fsi_master *master, int link, int id,
     40			uint32_t addr, size_t size, const void *data),
     41	TP_ARGS(master, link, id, addr, size, data),
     42	TP_STRUCT__entry(
     43		__field(int,	master_idx)
     44		__field(int,	link)
     45		__field(int,	id)
     46		__field(__u32,	addr)
     47		__field(size_t,	size)
     48		__field(__u32,	data)
     49	),
     50	TP_fast_assign(
     51		__entry->master_idx = master->idx;
     52		__entry->link = link;
     53		__entry->id = id;
     54		__entry->addr = addr;
     55		__entry->size = size;
     56		__entry->data = 0;
     57		memcpy(&__entry->data, data, size);
     58	),
     59	TP_printk("fsi%d:%02d:%02d %08x[%zu] <= {%*ph}",
     60		__entry->master_idx,
     61		__entry->link,
     62		__entry->id,
     63		__entry->addr,
     64		__entry->size,
     65		(int)__entry->size, &__entry->data
     66	)
     67);
     68
     69TRACE_EVENT(fsi_master_rw_result,
     70	TP_PROTO(const struct fsi_master *master, int link, int id,
     71			uint32_t addr, size_t size,
     72			bool write, const void *data, int ret),
     73	TP_ARGS(master, link, id, addr, size, write, data, ret),
     74	TP_STRUCT__entry(
     75		__field(int,	master_idx)
     76		__field(int,	link)
     77		__field(int,	id)
     78		__field(__u32,	addr)
     79		__field(size_t,	size)
     80		__field(bool,	write)
     81		__field(__u32,	data)
     82		__field(int,	ret)
     83	),
     84	TP_fast_assign(
     85		__entry->master_idx = master->idx;
     86		__entry->link = link;
     87		__entry->id = id;
     88		__entry->addr = addr;
     89		__entry->size = size;
     90		__entry->write = write;
     91		__entry->data = 0;
     92		__entry->ret = ret;
     93		if (__entry->write || !__entry->ret)
     94			memcpy(&__entry->data, data, size);
     95	),
     96	TP_printk("fsi%d:%02d:%02d %08x[%zu] %s {%*ph} ret %d",
     97		__entry->master_idx,
     98		__entry->link,
     99		__entry->id,
    100		__entry->addr,
    101		__entry->size,
    102		__entry->write ? "<=" : "=>",
    103		(int)__entry->size, &__entry->data,
    104		__entry->ret
    105	)
    106);
    107
    108TRACE_EVENT(fsi_master_break,
    109	TP_PROTO(const struct fsi_master *master, int link),
    110	TP_ARGS(master, link),
    111	TP_STRUCT__entry(
    112		__field(int,	master_idx)
    113		__field(int,	link)
    114	),
    115	TP_fast_assign(
    116		__entry->master_idx = master->idx;
    117		__entry->link = link;
    118	),
    119	TP_printk("fsi%d:%d",
    120		__entry->master_idx,
    121		__entry->link
    122	)
    123);
    124
    125TRACE_EVENT(fsi_slave_init,
    126	TP_PROTO(const struct fsi_slave *slave),
    127	TP_ARGS(slave),
    128	TP_STRUCT__entry(
    129		__field(int,	master_idx)
    130		__field(int,	master_n_links)
    131		__field(int,	idx)
    132		__field(int,	link)
    133		__field(int,	chip_id)
    134		__field(__u32,	cfam_id)
    135		__field(__u32,	size)
    136	),
    137	TP_fast_assign(
    138		__entry->master_idx = slave->master->idx;
    139		__entry->master_n_links = slave->master->n_links;
    140		__entry->idx = slave->cdev_idx;
    141		__entry->link = slave->link;
    142		__entry->chip_id = slave->chip_id;
    143		__entry->cfam_id = slave->cfam_id;
    144		__entry->size = slave->size;
    145	),
    146	TP_printk("fsi%d: idx:%d link:%d/%d cid:%d cfam:%08x %08x",
    147		__entry->master_idx,
    148		__entry->idx,
    149		__entry->link,
    150		__entry->master_n_links,
    151		__entry->chip_id,
    152		__entry->cfam_id,
    153		__entry->size
    154	)
    155);
    156
    157TRACE_EVENT(fsi_slave_invalid_cfam,
    158	TP_PROTO(const struct fsi_master *master, int link, uint32_t cfam_id),
    159	TP_ARGS(master, link, cfam_id),
    160	TP_STRUCT__entry(
    161		__field(int,	master_idx)
    162		__field(int,	master_n_links)
    163		__field(int,	link)
    164		__field(__u32,	cfam_id)
    165	),
    166	TP_fast_assign(
    167		__entry->master_idx = master->idx;
    168		__entry->master_n_links = master->n_links;
    169		__entry->link = link;
    170		__entry->cfam_id = cfam_id;
    171	),
    172	TP_printk("fsi%d: cfam:%08x link:%d/%d",
    173		__entry->master_idx,
    174		__entry->cfam_id,
    175		__entry->link,
    176		__entry->master_n_links
    177	)
    178);
    179
    180TRACE_EVENT(fsi_dev_init,
    181	TP_PROTO(const struct fsi_device *dev),
    182	TP_ARGS(dev),
    183	TP_STRUCT__entry(
    184		__field(int,	master_idx)
    185		__field(int,	link)
    186		__field(int,	type)
    187		__field(int,	unit)
    188		__field(int,	version)
    189		__field(__u32,	addr)
    190		__field(__u32,	size)
    191	),
    192	TP_fast_assign(
    193		__entry->master_idx = dev->slave->master->idx;
    194		__entry->link = dev->slave->link;
    195		__entry->type = dev->engine_type;
    196		__entry->unit = dev->unit;
    197		__entry->version = dev->version;
    198		__entry->addr = dev->addr;
    199		__entry->size = dev->size;
    200	),
    201	TP_printk("fsi%d: slv%d: t:%02x u:%02x v:%02x %08x@%08x",
    202		__entry->master_idx,
    203		__entry->link,
    204		__entry->type,
    205		__entry->unit,
    206		__entry->version,
    207		__entry->size,
    208		__entry->addr
    209	)
    210);
    211
    212#endif /* _TRACE_FSI_H */
    213
    214#include <trace/define_trace.h>