|
@@ -6,8 +6,36 @@
|
|
#ifndef __IOTRACE_H
|
|
#ifndef __IOTRACE_H
|
|
#define __IOTRACE_H
|
|
#define __IOTRACE_H
|
|
|
|
|
|
|
|
+//#include <common.h>
|
|
#include <linux/types.h>
|
|
#include <linux/types.h>
|
|
|
|
|
|
|
|
+/* Support up to the machine word length for now */
|
|
|
|
+typedef ulong iovalue_t;
|
|
|
|
+
|
|
|
|
+enum iotrace_flags {
|
|
|
|
+ IOT_8 = 0,
|
|
|
|
+ IOT_16,
|
|
|
|
+ IOT_32,
|
|
|
|
+
|
|
|
|
+ IOT_READ = 0 << 3,
|
|
|
|
+ IOT_WRITE = 1 << 3,
|
|
|
|
+};
|
|
|
|
+
|
|
|
|
+/**
|
|
|
|
+ * struct iotrace_record - Holds a single I/O trace record
|
|
|
|
+ *
|
|
|
|
+ * @flags: I/O access type
|
|
|
|
+ * @timestamp: Timestamp of access
|
|
|
|
+ * @addr: Address of access
|
|
|
|
+ * @value: Value written or read
|
|
|
|
+ */
|
|
|
|
+struct iotrace_record {
|
|
|
|
+ enum iotrace_flags flags;
|
|
|
|
+ u64 timestamp;
|
|
|
|
+ phys_addr_t addr;
|
|
|
|
+ iovalue_t value;
|
|
|
|
+};
|
|
|
|
+
|
|
/*
|
|
/*
|
|
* This file is designed to be included in arch/<arch>/include/asm/io.h.
|
|
* This file is designed to be included in arch/<arch>/include/asm/io.h.
|
|
* It redirects all IO access through a tracing/checksumming feature for
|
|
* It redirects all IO access through a tracing/checksumming feature for
|