+#ifndef OPENOCD_TARGET_MIPS32_PRACC_H
+#define OPENOCD_TARGET_MIPS32_PRACC_H
+
+#include <target/mips32.h>
+#include <target/mips_ejtag.h>
+
+#define MIPS32_PRACC_FASTDATA_AREA 0xFF200000
+#define MIPS32_PRACC_FASTDATA_SIZE 16
+#define MIPS32_PRACC_BASE_ADDR 0xFF200000
+#define MIPS32_PRACC_TEXT 0xFF200200
+#define MIPS32_PRACC_PARAM_OUT 0xFF202000
+
+#define PRACC_UPPER_BASE_ADDR (MIPS32_PRACC_BASE_ADDR >> 16)
+#define PRACC_MAX_CODE (MIPS32_PRACC_PARAM_OUT - MIPS32_PRACC_TEXT)
+#define PRACC_MAX_INSTRUCTIONS (PRACC_MAX_CODE / 4)
+#define PRACC_OUT_OFFSET (MIPS32_PRACC_PARAM_OUT - MIPS32_PRACC_BASE_ADDR)
+
+#define MIPS32_FASTDATA_HANDLER_SIZE 0x80
+#define UPPER16(uint32_t) (uint32_t >> 16)
+#define LOWER16(uint32_t) (uint32_t & 0xFFFF)
+#define NEG16(v) (((~(v)) + 1) & 0xFFFF)
+#define SWAP16(v) ((LOWER16(v) << 16) | (UPPER16(v)))
+/*#define NEG18(v) (((~(v)) + 1) & 0x3FFFF)*/
+
+#define PRACC_BLOCK 128 /* 1 Kbyte */
+
+typedef struct {
+ uint32_t instr;
+ uint32_t addr;
+} pa_list;
+
+struct pracc_queue_info {
+ struct mips_ejtag *ejtag_info;
+ unsigned isa;
+ int retval;
+ int code_count;
+ int store_count;
+ int max_code; /* max intstructions with currently allocated memory */
+ pa_list *pracc_list; /* Code and store addresses at dmseg */
+};