|
@@ -891,6 +891,7 @@ enum perf_callchain_context {
|
|
|
#define PERF_FLAG_PID_CGROUP (1UL << 2) /* pid=cgroup id, per-cpu mode only */
|
|
|
#define PERF_FLAG_FD_CLOEXEC (1UL << 3) /* O_CLOEXEC */
|
|
|
|
|
|
+#if defined(__LITTLE_ENDIAN_BITFIELD)
|
|
|
union perf_mem_data_src {
|
|
|
__u64 val;
|
|
|
struct {
|
|
@@ -902,6 +903,21 @@ union perf_mem_data_src {
|
|
|
mem_rsvd:31;
|
|
|
};
|
|
|
};
|
|
|
+#elif defined(__BIG_ENDIAN_BITFIELD)
|
|
|
+union perf_mem_data_src {
|
|
|
+ __u64 val;
|
|
|
+ struct {
|
|
|
+ __u64 mem_rsvd:31,
|
|
|
+ mem_dtlb:7, /* tlb access */
|
|
|
+ mem_lock:2, /* lock instr */
|
|
|
+ mem_snoop:5, /* snoop mode */
|
|
|
+ mem_lvl:14, /* memory hierarchy level */
|
|
|
+ mem_op:5; /* type of opcode */
|
|
|
+ };
|
|
|
+};
|
|
|
+#else
|
|
|
+#error "Unknown endianness"
|
|
|
+#endif
|
|
|
|
|
|
/* type of opcode (load/store/prefetch,code) */
|
|
|
#define PERF_MEM_OP_NA 0x01 /* not available */
|