0001
0002
0003
0004
0005
0006 #undef TRACE_SYSTEM
0007 #define TRACE_SYSTEM cxl
0008
0009 #if !defined(_CXL_TRACE_H) || defined(TRACE_HEADER_MULTI_READ)
0010 #define _CXL_TRACE_H
0011
0012 #include <linux/tracepoint.h>
0013
0014 #include "cxl.h"
0015
0016 #define dsisr_psl9_flags(flags) \
0017 __print_flags(flags, "|", \
0018 { CXL_PSL9_DSISR_An_CO_MASK, "FR" }, \
0019 { CXL_PSL9_DSISR_An_TF, "TF" }, \
0020 { CXL_PSL9_DSISR_An_PE, "PE" }, \
0021 { CXL_PSL9_DSISR_An_AE, "AE" }, \
0022 { CXL_PSL9_DSISR_An_OC, "OC" }, \
0023 { CXL_PSL9_DSISR_An_S, "S" })
0024
0025 #define DSISR_FLAGS \
0026 { CXL_PSL_DSISR_An_DS, "DS" }, \
0027 { CXL_PSL_DSISR_An_DM, "DM" }, \
0028 { CXL_PSL_DSISR_An_ST, "ST" }, \
0029 { CXL_PSL_DSISR_An_UR, "UR" }, \
0030 { CXL_PSL_DSISR_An_PE, "PE" }, \
0031 { CXL_PSL_DSISR_An_AE, "AE" }, \
0032 { CXL_PSL_DSISR_An_OC, "OC" }, \
0033 { CXL_PSL_DSISR_An_M, "M" }, \
0034 { CXL_PSL_DSISR_An_P, "P" }, \
0035 { CXL_PSL_DSISR_An_A, "A" }, \
0036 { CXL_PSL_DSISR_An_S, "S" }, \
0037 { CXL_PSL_DSISR_An_K, "K" }
0038
0039 #define TFC_FLAGS \
0040 { CXL_PSL_TFC_An_A, "A" }, \
0041 { CXL_PSL_TFC_An_C, "C" }, \
0042 { CXL_PSL_TFC_An_AE, "AE" }, \
0043 { CXL_PSL_TFC_An_R, "R" }
0044
0045 #define LLCMD_NAMES \
0046 { CXL_SPA_SW_CMD_TERMINATE, "TERMINATE" }, \
0047 { CXL_SPA_SW_CMD_REMOVE, "REMOVE" }, \
0048 { CXL_SPA_SW_CMD_SUSPEND, "SUSPEND" }, \
0049 { CXL_SPA_SW_CMD_RESUME, "RESUME" }, \
0050 { CXL_SPA_SW_CMD_ADD, "ADD" }, \
0051 { CXL_SPA_SW_CMD_UPDATE, "UPDATE" }
0052
0053 #define AFU_COMMANDS \
0054 { 0, "DISABLE" }, \
0055 { CXL_AFU_Cntl_An_E, "ENABLE" }, \
0056 { CXL_AFU_Cntl_An_RA, "RESET" }
0057
0058 #define PSL_COMMANDS \
0059 { CXL_PSL_SCNTL_An_Pc, "PURGE" }, \
0060 { CXL_PSL_SCNTL_An_Sc, "SUSPEND" }
0061
0062
0063 DECLARE_EVENT_CLASS(cxl_pe_class,
0064 TP_PROTO(struct cxl_context *ctx),
0065
0066 TP_ARGS(ctx),
0067
0068 TP_STRUCT__entry(
0069 __field(u8, card)
0070 __field(u8, afu)
0071 __field(u16, pe)
0072 ),
0073
0074 TP_fast_assign(
0075 __entry->card = ctx->afu->adapter->adapter_num;
0076 __entry->afu = ctx->afu->slice;
0077 __entry->pe = ctx->pe;
0078 ),
0079
0080 TP_printk("afu%i.%i pe=%i",
0081 __entry->card,
0082 __entry->afu,
0083 __entry->pe
0084 )
0085 );
0086
0087
0088 TRACE_EVENT(cxl_attach,
0089 TP_PROTO(struct cxl_context *ctx, u64 wed, s16 num_interrupts, u64 amr),
0090
0091 TP_ARGS(ctx, wed, num_interrupts, amr),
0092
0093 TP_STRUCT__entry(
0094 __field(u8, card)
0095 __field(u8, afu)
0096 __field(u16, pe)
0097 __field(pid_t, pid)
0098 __field(u64, wed)
0099 __field(u64, amr)
0100 __field(s16, num_interrupts)
0101 ),
0102
0103 TP_fast_assign(
0104 __entry->card = ctx->afu->adapter->adapter_num;
0105 __entry->afu = ctx->afu->slice;
0106 __entry->pe = ctx->pe;
0107 __entry->pid = pid_nr(ctx->pid);
0108 __entry->wed = wed;
0109 __entry->amr = amr;
0110 __entry->num_interrupts = num_interrupts;
0111 ),
0112
0113 TP_printk("afu%i.%i pid=%i pe=%i wed=0x%016llx irqs=%i amr=0x%llx",
0114 __entry->card,
0115 __entry->afu,
0116 __entry->pid,
0117 __entry->pe,
0118 __entry->wed,
0119 __entry->num_interrupts,
0120 __entry->amr
0121 )
0122 );
0123
0124 DEFINE_EVENT(cxl_pe_class, cxl_detach,
0125 TP_PROTO(struct cxl_context *ctx),
0126 TP_ARGS(ctx)
0127 );
0128
0129 TRACE_EVENT(cxl_afu_irq,
0130 TP_PROTO(struct cxl_context *ctx, int afu_irq, int virq, irq_hw_number_t hwirq),
0131
0132 TP_ARGS(ctx, afu_irq, virq, hwirq),
0133
0134 TP_STRUCT__entry(
0135 __field(u8, card)
0136 __field(u8, afu)
0137 __field(u16, pe)
0138 __field(u16, afu_irq)
0139 __field(int, virq)
0140 __field(irq_hw_number_t, hwirq)
0141 ),
0142
0143 TP_fast_assign(
0144 __entry->card = ctx->afu->adapter->adapter_num;
0145 __entry->afu = ctx->afu->slice;
0146 __entry->pe = ctx->pe;
0147 __entry->afu_irq = afu_irq;
0148 __entry->virq = virq;
0149 __entry->hwirq = hwirq;
0150 ),
0151
0152 TP_printk("afu%i.%i pe=%i afu_irq=%i virq=%i hwirq=0x%lx",
0153 __entry->card,
0154 __entry->afu,
0155 __entry->pe,
0156 __entry->afu_irq,
0157 __entry->virq,
0158 __entry->hwirq
0159 )
0160 );
0161
0162 TRACE_EVENT(cxl_psl9_irq,
0163 TP_PROTO(struct cxl_context *ctx, int irq, u64 dsisr, u64 dar),
0164
0165 TP_ARGS(ctx, irq, dsisr, dar),
0166
0167 TP_STRUCT__entry(
0168 __field(u8, card)
0169 __field(u8, afu)
0170 __field(u16, pe)
0171 __field(int, irq)
0172 __field(u64, dsisr)
0173 __field(u64, dar)
0174 ),
0175
0176 TP_fast_assign(
0177 __entry->card = ctx->afu->adapter->adapter_num;
0178 __entry->afu = ctx->afu->slice;
0179 __entry->pe = ctx->pe;
0180 __entry->irq = irq;
0181 __entry->dsisr = dsisr;
0182 __entry->dar = dar;
0183 ),
0184
0185 TP_printk("afu%i.%i pe=%i irq=%i dsisr=0x%016llx dsisr=%s dar=0x%016llx",
0186 __entry->card,
0187 __entry->afu,
0188 __entry->pe,
0189 __entry->irq,
0190 __entry->dsisr,
0191 dsisr_psl9_flags(__entry->dsisr),
0192 __entry->dar
0193 )
0194 );
0195
0196 TRACE_EVENT(cxl_psl_irq,
0197 TP_PROTO(struct cxl_context *ctx, int irq, u64 dsisr, u64 dar),
0198
0199 TP_ARGS(ctx, irq, dsisr, dar),
0200
0201 TP_STRUCT__entry(
0202 __field(u8, card)
0203 __field(u8, afu)
0204 __field(u16, pe)
0205 __field(int, irq)
0206 __field(u64, dsisr)
0207 __field(u64, dar)
0208 ),
0209
0210 TP_fast_assign(
0211 __entry->card = ctx->afu->adapter->adapter_num;
0212 __entry->afu = ctx->afu->slice;
0213 __entry->pe = ctx->pe;
0214 __entry->irq = irq;
0215 __entry->dsisr = dsisr;
0216 __entry->dar = dar;
0217 ),
0218
0219 TP_printk("afu%i.%i pe=%i irq=%i dsisr=%s dar=0x%016llx",
0220 __entry->card,
0221 __entry->afu,
0222 __entry->pe,
0223 __entry->irq,
0224 __print_flags(__entry->dsisr, "|", DSISR_FLAGS),
0225 __entry->dar
0226 )
0227 );
0228
0229 TRACE_EVENT(cxl_psl_irq_ack,
0230 TP_PROTO(struct cxl_context *ctx, u64 tfc),
0231
0232 TP_ARGS(ctx, tfc),
0233
0234 TP_STRUCT__entry(
0235 __field(u8, card)
0236 __field(u8, afu)
0237 __field(u16, pe)
0238 __field(u64, tfc)
0239 ),
0240
0241 TP_fast_assign(
0242 __entry->card = ctx->afu->adapter->adapter_num;
0243 __entry->afu = ctx->afu->slice;
0244 __entry->pe = ctx->pe;
0245 __entry->tfc = tfc;
0246 ),
0247
0248 TP_printk("afu%i.%i pe=%i tfc=%s",
0249 __entry->card,
0250 __entry->afu,
0251 __entry->pe,
0252 __print_flags(__entry->tfc, "|", TFC_FLAGS)
0253 )
0254 );
0255
0256 TRACE_EVENT(cxl_ste_miss,
0257 TP_PROTO(struct cxl_context *ctx, u64 dar),
0258
0259 TP_ARGS(ctx, dar),
0260
0261 TP_STRUCT__entry(
0262 __field(u8, card)
0263 __field(u8, afu)
0264 __field(u16, pe)
0265 __field(u64, dar)
0266 ),
0267
0268 TP_fast_assign(
0269 __entry->card = ctx->afu->adapter->adapter_num;
0270 __entry->afu = ctx->afu->slice;
0271 __entry->pe = ctx->pe;
0272 __entry->dar = dar;
0273 ),
0274
0275 TP_printk("afu%i.%i pe=%i dar=0x%016llx",
0276 __entry->card,
0277 __entry->afu,
0278 __entry->pe,
0279 __entry->dar
0280 )
0281 );
0282
0283 TRACE_EVENT(cxl_ste_write,
0284 TP_PROTO(struct cxl_context *ctx, unsigned int idx, u64 e, u64 v),
0285
0286 TP_ARGS(ctx, idx, e, v),
0287
0288 TP_STRUCT__entry(
0289 __field(u8, card)
0290 __field(u8, afu)
0291 __field(u16, pe)
0292 __field(unsigned int, idx)
0293 __field(u64, e)
0294 __field(u64, v)
0295 ),
0296
0297 TP_fast_assign(
0298 __entry->card = ctx->afu->adapter->adapter_num;
0299 __entry->afu = ctx->afu->slice;
0300 __entry->pe = ctx->pe;
0301 __entry->idx = idx;
0302 __entry->e = e;
0303 __entry->v = v;
0304 ),
0305
0306 TP_printk("afu%i.%i pe=%i SSTE[%i] E=0x%016llx V=0x%016llx",
0307 __entry->card,
0308 __entry->afu,
0309 __entry->pe,
0310 __entry->idx,
0311 __entry->e,
0312 __entry->v
0313 )
0314 );
0315
0316 TRACE_EVENT(cxl_pte_miss,
0317 TP_PROTO(struct cxl_context *ctx, u64 dsisr, u64 dar),
0318
0319 TP_ARGS(ctx, dsisr, dar),
0320
0321 TP_STRUCT__entry(
0322 __field(u8, card)
0323 __field(u8, afu)
0324 __field(u16, pe)
0325 __field(u64, dsisr)
0326 __field(u64, dar)
0327 ),
0328
0329 TP_fast_assign(
0330 __entry->card = ctx->afu->adapter->adapter_num;
0331 __entry->afu = ctx->afu->slice;
0332 __entry->pe = ctx->pe;
0333 __entry->dsisr = dsisr;
0334 __entry->dar = dar;
0335 ),
0336
0337 TP_printk("afu%i.%i pe=%i dsisr=%s dar=0x%016llx",
0338 __entry->card,
0339 __entry->afu,
0340 __entry->pe,
0341 __print_flags(__entry->dsisr, "|", DSISR_FLAGS),
0342 __entry->dar
0343 )
0344 );
0345
0346 TRACE_EVENT(cxl_llcmd,
0347 TP_PROTO(struct cxl_context *ctx, u64 cmd),
0348
0349 TP_ARGS(ctx, cmd),
0350
0351 TP_STRUCT__entry(
0352 __field(u8, card)
0353 __field(u8, afu)
0354 __field(u16, pe)
0355 __field(u64, cmd)
0356 ),
0357
0358 TP_fast_assign(
0359 __entry->card = ctx->afu->adapter->adapter_num;
0360 __entry->afu = ctx->afu->slice;
0361 __entry->pe = ctx->pe;
0362 __entry->cmd = cmd;
0363 ),
0364
0365 TP_printk("afu%i.%i pe=%i cmd=%s",
0366 __entry->card,
0367 __entry->afu,
0368 __entry->pe,
0369 __print_symbolic_u64(__entry->cmd, LLCMD_NAMES)
0370 )
0371 );
0372
0373 TRACE_EVENT(cxl_llcmd_done,
0374 TP_PROTO(struct cxl_context *ctx, u64 cmd, int rc),
0375
0376 TP_ARGS(ctx, cmd, rc),
0377
0378 TP_STRUCT__entry(
0379 __field(u8, card)
0380 __field(u8, afu)
0381 __field(u16, pe)
0382 __field(u64, cmd)
0383 __field(int, rc)
0384 ),
0385
0386 TP_fast_assign(
0387 __entry->card = ctx->afu->adapter->adapter_num;
0388 __entry->afu = ctx->afu->slice;
0389 __entry->pe = ctx->pe;
0390 __entry->rc = rc;
0391 __entry->cmd = cmd;
0392 ),
0393
0394 TP_printk("afu%i.%i pe=%i cmd=%s rc=%i",
0395 __entry->card,
0396 __entry->afu,
0397 __entry->pe,
0398 __print_symbolic_u64(__entry->cmd, LLCMD_NAMES),
0399 __entry->rc
0400 )
0401 );
0402
0403 DECLARE_EVENT_CLASS(cxl_afu_psl_ctrl,
0404 TP_PROTO(struct cxl_afu *afu, u64 cmd),
0405
0406 TP_ARGS(afu, cmd),
0407
0408 TP_STRUCT__entry(
0409 __field(u8, card)
0410 __field(u8, afu)
0411 __field(u64, cmd)
0412 ),
0413
0414 TP_fast_assign(
0415 __entry->card = afu->adapter->adapter_num;
0416 __entry->afu = afu->slice;
0417 __entry->cmd = cmd;
0418 ),
0419
0420 TP_printk("afu%i.%i cmd=%s",
0421 __entry->card,
0422 __entry->afu,
0423 __print_symbolic_u64(__entry->cmd, AFU_COMMANDS)
0424 )
0425 );
0426
0427 DECLARE_EVENT_CLASS(cxl_afu_psl_ctrl_done,
0428 TP_PROTO(struct cxl_afu *afu, u64 cmd, int rc),
0429
0430 TP_ARGS(afu, cmd, rc),
0431
0432 TP_STRUCT__entry(
0433 __field(u8, card)
0434 __field(u8, afu)
0435 __field(u64, cmd)
0436 __field(int, rc)
0437 ),
0438
0439 TP_fast_assign(
0440 __entry->card = afu->adapter->adapter_num;
0441 __entry->afu = afu->slice;
0442 __entry->rc = rc;
0443 __entry->cmd = cmd;
0444 ),
0445
0446 TP_printk("afu%i.%i cmd=%s rc=%i",
0447 __entry->card,
0448 __entry->afu,
0449 __print_symbolic_u64(__entry->cmd, AFU_COMMANDS),
0450 __entry->rc
0451 )
0452 );
0453
0454 DEFINE_EVENT(cxl_afu_psl_ctrl, cxl_afu_ctrl,
0455 TP_PROTO(struct cxl_afu *afu, u64 cmd),
0456 TP_ARGS(afu, cmd)
0457 );
0458
0459 DEFINE_EVENT(cxl_afu_psl_ctrl_done, cxl_afu_ctrl_done,
0460 TP_PROTO(struct cxl_afu *afu, u64 cmd, int rc),
0461 TP_ARGS(afu, cmd, rc)
0462 );
0463
0464 DEFINE_EVENT_PRINT(cxl_afu_psl_ctrl, cxl_psl_ctrl,
0465 TP_PROTO(struct cxl_afu *afu, u64 cmd),
0466 TP_ARGS(afu, cmd),
0467
0468 TP_printk("psl%i.%i cmd=%s",
0469 __entry->card,
0470 __entry->afu,
0471 __print_symbolic_u64(__entry->cmd, PSL_COMMANDS)
0472 )
0473 );
0474
0475 DEFINE_EVENT_PRINT(cxl_afu_psl_ctrl_done, cxl_psl_ctrl_done,
0476 TP_PROTO(struct cxl_afu *afu, u64 cmd, int rc),
0477 TP_ARGS(afu, cmd, rc),
0478
0479 TP_printk("psl%i.%i cmd=%s rc=%i",
0480 __entry->card,
0481 __entry->afu,
0482 __print_symbolic_u64(__entry->cmd, PSL_COMMANDS),
0483 __entry->rc
0484 )
0485 );
0486
0487 DEFINE_EVENT(cxl_pe_class, cxl_slbia,
0488 TP_PROTO(struct cxl_context *ctx),
0489 TP_ARGS(ctx)
0490 );
0491
0492 TRACE_EVENT(cxl_hcall,
0493 TP_PROTO(u64 unit_address, u64 process_token, long rc),
0494
0495 TP_ARGS(unit_address, process_token, rc),
0496
0497 TP_STRUCT__entry(
0498 __field(u64, unit_address)
0499 __field(u64, process_token)
0500 __field(long, rc)
0501 ),
0502
0503 TP_fast_assign(
0504 __entry->unit_address = unit_address;
0505 __entry->process_token = process_token;
0506 __entry->rc = rc;
0507 ),
0508
0509 TP_printk("unit_address=0x%016llx process_token=0x%016llx rc=%li",
0510 __entry->unit_address,
0511 __entry->process_token,
0512 __entry->rc
0513 )
0514 );
0515
0516 TRACE_EVENT(cxl_hcall_control,
0517 TP_PROTO(u64 unit_address, char *fct, u64 p1, u64 p2, u64 p3,
0518 u64 p4, unsigned long r4, long rc),
0519
0520 TP_ARGS(unit_address, fct, p1, p2, p3, p4, r4, rc),
0521
0522 TP_STRUCT__entry(
0523 __field(u64, unit_address)
0524 __field(char *, fct)
0525 __field(u64, p1)
0526 __field(u64, p2)
0527 __field(u64, p3)
0528 __field(u64, p4)
0529 __field(unsigned long, r4)
0530 __field(long, rc)
0531 ),
0532
0533 TP_fast_assign(
0534 __entry->unit_address = unit_address;
0535 __entry->fct = fct;
0536 __entry->p1 = p1;
0537 __entry->p2 = p2;
0538 __entry->p3 = p3;
0539 __entry->p4 = p4;
0540 __entry->r4 = r4;
0541 __entry->rc = rc;
0542 ),
0543
0544 TP_printk("unit_address=%#.16llx %s(%#llx, %#llx, %#llx, %#llx, R4: %#lx)): %li",
0545 __entry->unit_address,
0546 __entry->fct,
0547 __entry->p1,
0548 __entry->p2,
0549 __entry->p3,
0550 __entry->p4,
0551 __entry->r4,
0552 __entry->rc
0553 )
0554 );
0555
0556 TRACE_EVENT(cxl_hcall_attach,
0557 TP_PROTO(u64 unit_address, u64 phys_addr, unsigned long process_token,
0558 unsigned long mmio_addr, unsigned long mmio_size, long rc),
0559
0560 TP_ARGS(unit_address, phys_addr, process_token,
0561 mmio_addr, mmio_size, rc),
0562
0563 TP_STRUCT__entry(
0564 __field(u64, unit_address)
0565 __field(u64, phys_addr)
0566 __field(unsigned long, process_token)
0567 __field(unsigned long, mmio_addr)
0568 __field(unsigned long, mmio_size)
0569 __field(long, rc)
0570 ),
0571
0572 TP_fast_assign(
0573 __entry->unit_address = unit_address;
0574 __entry->phys_addr = phys_addr;
0575 __entry->process_token = process_token;
0576 __entry->mmio_addr = mmio_addr;
0577 __entry->mmio_size = mmio_size;
0578 __entry->rc = rc;
0579 ),
0580
0581 TP_printk("unit_address=0x%016llx phys_addr=0x%016llx "
0582 "token=0x%.8lx mmio_addr=0x%lx mmio_size=0x%lx rc=%li",
0583 __entry->unit_address,
0584 __entry->phys_addr,
0585 __entry->process_token,
0586 __entry->mmio_addr,
0587 __entry->mmio_size,
0588 __entry->rc
0589 )
0590 );
0591
0592 DEFINE_EVENT(cxl_hcall, cxl_hcall_detach,
0593 TP_PROTO(u64 unit_address, u64 process_token, long rc),
0594 TP_ARGS(unit_address, process_token, rc)
0595 );
0596
0597 DEFINE_EVENT(cxl_hcall_control, cxl_hcall_control_function,
0598 TP_PROTO(u64 unit_address, char *fct, u64 p1, u64 p2, u64 p3,
0599 u64 p4, unsigned long r4, long rc),
0600 TP_ARGS(unit_address, fct, p1, p2, p3, p4, r4, rc)
0601 );
0602
0603 DEFINE_EVENT(cxl_hcall, cxl_hcall_collect_int_info,
0604 TP_PROTO(u64 unit_address, u64 process_token, long rc),
0605 TP_ARGS(unit_address, process_token, rc)
0606 );
0607
0608 TRACE_EVENT(cxl_hcall_control_faults,
0609 TP_PROTO(u64 unit_address, u64 process_token,
0610 u64 control_mask, u64 reset_mask, unsigned long r4,
0611 long rc),
0612
0613 TP_ARGS(unit_address, process_token,
0614 control_mask, reset_mask, r4, rc),
0615
0616 TP_STRUCT__entry(
0617 __field(u64, unit_address)
0618 __field(u64, process_token)
0619 __field(u64, control_mask)
0620 __field(u64, reset_mask)
0621 __field(unsigned long, r4)
0622 __field(long, rc)
0623 ),
0624
0625 TP_fast_assign(
0626 __entry->unit_address = unit_address;
0627 __entry->process_token = process_token;
0628 __entry->control_mask = control_mask;
0629 __entry->reset_mask = reset_mask;
0630 __entry->r4 = r4;
0631 __entry->rc = rc;
0632 ),
0633
0634 TP_printk("unit_address=0x%016llx process_token=0x%llx "
0635 "control_mask=%#llx reset_mask=%#llx r4=%#lx rc=%li",
0636 __entry->unit_address,
0637 __entry->process_token,
0638 __entry->control_mask,
0639 __entry->reset_mask,
0640 __entry->r4,
0641 __entry->rc
0642 )
0643 );
0644
0645 DEFINE_EVENT(cxl_hcall_control, cxl_hcall_control_facility,
0646 TP_PROTO(u64 unit_address, char *fct, u64 p1, u64 p2, u64 p3,
0647 u64 p4, unsigned long r4, long rc),
0648 TP_ARGS(unit_address, fct, p1, p2, p3, p4, r4, rc)
0649 );
0650
0651 TRACE_EVENT(cxl_hcall_download_facility,
0652 TP_PROTO(u64 unit_address, char *fct, u64 list_address, u64 num,
0653 unsigned long r4, long rc),
0654
0655 TP_ARGS(unit_address, fct, list_address, num, r4, rc),
0656
0657 TP_STRUCT__entry(
0658 __field(u64, unit_address)
0659 __field(char *, fct)
0660 __field(u64, list_address)
0661 __field(u64, num)
0662 __field(unsigned long, r4)
0663 __field(long, rc)
0664 ),
0665
0666 TP_fast_assign(
0667 __entry->unit_address = unit_address;
0668 __entry->fct = fct;
0669 __entry->list_address = list_address;
0670 __entry->num = num;
0671 __entry->r4 = r4;
0672 __entry->rc = rc;
0673 ),
0674
0675 TP_printk("%#.16llx, %s(%#llx, %#llx), %#lx): %li",
0676 __entry->unit_address,
0677 __entry->fct,
0678 __entry->list_address,
0679 __entry->num,
0680 __entry->r4,
0681 __entry->rc
0682 )
0683 );
0684
0685 #endif
0686
0687
0688 #undef TRACE_INCLUDE_PATH
0689 #define TRACE_INCLUDE_PATH .
0690 #define TRACE_INCLUDE_FILE trace
0691 #include <trace/define_trace.h>