PRINT_FIELD_ADDR64(", ", attr, data_out);
PRINT_FIELD_U(", ", attr, repeat);
PRINT_FIELD_U(", ", attr, duration);
+ /*
+ * The following four fields were introduced by Linux commit
+ * v5.2-rc1~133^2~193^2~6.
+ */
+ if (len > offsetof(struct BPF_PROG_TEST_RUN_struct, ctx_size_in)) {
+ PRINT_FIELD_U(", ", attr, ctx_size_in);
+ PRINT_FIELD_U(", ", attr, ctx_size_out);
+ PRINT_FIELD_ADDR64(", ", attr, ctx_in);
+ PRINT_FIELD_ADDR64(", ", attr, ctx_out);
+ }
tprints("}");
}
END_BPF_CMD_DECODER(RVAL_DECODED)
uint64_t ATTRIBUTE_ALIGNED(8) data_out;
uint32_t repeat;
uint32_t duration;
+ uint32_t ctx_size_in;
+ uint32_t ctx_size_out;
+ uint64_t ATTRIBUTE_ALIGNED(8) ctx_in;
+ uint64_t ATTRIBUTE_ALIGNED(8) ctx_out;
};
# define BPF_PROG_TEST_RUN_struct_size \
sizeof(struct BPF_PROG_TEST_RUN_struct)
-# define expected_BPF_PROG_TEST_RUN_struct_size 40
+# define expected_BPF_PROG_TEST_RUN_struct_size 64
struct BPF_PROG_GET_NEXT_ID_struct {
uint32_t start_id;
", data_in=0xfacef11dbadc2ded"
", data_out=0xfacef33dbadc4ded"
", repeat=4207410904, duration=4207541978}"
+ },
+ {
+ .data = { .BPF_PROG_TEST_RUN_data = {
+ .prog_fd = -1,
+ .retval = 0xfac1fed2,
+ .data_size_in = 0xfac3fed4,
+ .data_size_out = 0xfac5fed6,
+ .data_in = (uint64_t) 0xfacef11dbadc2dedULL,
+ .data_out = (uint64_t) 0xfacef33dbadc4dedULL,
+ .repeat = 0xfac7fed8,
+ .duration = 0xfac9feda,
+ .ctx_size_in = 0xfacbfedc,
+ .ctx_size_out = 0xfacdfede,
+ .ctx_in = (uint64_t) 0xfacef55dbadc6dedULL,
+ .ctx_out = (uint64_t) 0xfacef77dbadc8dedULL
+ } },
+ .size = offsetofend(struct BPF_PROG_TEST_RUN_struct, ctx_out),
+ .str = "test={prog_fd=-1, retval=4207017682"
+ ", data_size_in=4207148756, data_size_out=4207279830"
+ ", data_in=0xfacef11dbadc2ded"
+ ", data_out=0xfacef33dbadc4ded"
+ ", repeat=4207410904"
+ ", duration=4207541978"
+ ", ctx_size_in=4207673052"
+ ", ctx_size_out=4207804126"
+ ", ctx_in=0xfacef55dbadc6ded"
+ ", ctx_out=0xfacef77dbadc8ded}"
}
};