diff --git a/src/flash/lpc2000.c b/src/flash/lpc2000.c
index 01b17f53cf4f799bf04e09047baa284cdf368668..ab2b1c8ef55f22dd93e21fc4393d8ea4763da603 100644
--- a/src/flash/lpc2000.c
+++ b/src/flash/lpc2000.c
@@ -239,7 +239,7 @@ static int lpc2000_iap_call(flash_bank_t *bank, int code, uint32_t param_table[5
 	int retval;
 	struct lpc2000_flash_bank *lpc2000_info = bank->driver_priv;
 	target_t *target = bank->target;
-	mem_param_t mem_params[2];
+	struct mem_param mem_params[2];
 	reg_param_t reg_params[5];
 	armv4_5_algorithm_t armv4_5_info; /* for LPC2000 */
 	armv7m_algorithm_t armv7m_info;   /* for LPC1700 */
diff --git a/src/target/algorithm.c b/src/target/algorithm.c
index 5fcbfd30e8a685b11e74e4234d5997307e3cfa51..6d213e0c5d10236a95f17bc166b9876af8611dcd 100644
--- a/src/target/algorithm.c
+++ b/src/target/algorithm.c
@@ -25,7 +25,7 @@
 #include "binarybuffer.h"
 
 
-void init_mem_param(mem_param_t *param, uint32_t address, uint32_t size, enum param_direction direction)
+void init_mem_param(struct mem_param *param, uint32_t address, uint32_t size, enum param_direction direction)
 {
 	param->address = address;
 	param->size = size;
@@ -33,7 +33,7 @@ void init_mem_param(mem_param_t *param, uint32_t address, uint32_t size, enum pa
 	param->direction = direction;
 }
 
-void destroy_mem_param(mem_param_t *param)
+void destroy_mem_param(struct mem_param *param)
 {
 	free(param->value);
 	param->value = NULL;
diff --git a/src/target/algorithm.h b/src/target/algorithm.h
index 600580cb7cbf433cb07c92377a82fab7c5d7442a..963d1a55c0b888ad3bb66f0a973bfb4fed331777 100644
--- a/src/target/algorithm.h
+++ b/src/target/algorithm.h
@@ -29,13 +29,13 @@ enum param_direction
 	PARAM_IN_OUT
 };
 
-typedef struct mem_param_s
+struct mem_param
 {
 	uint32_t address;
 	uint32_t size;
 	uint8_t *value;
 	enum param_direction direction;
-} mem_param_t;
+};
 
 typedef struct reg_param_s
 {
@@ -45,9 +45,9 @@ typedef struct reg_param_s
 	enum param_direction direction;
 } reg_param_t;
 
-void init_mem_param(mem_param_t *param,
+void init_mem_param(struct mem_param *param,
 		uint32_t address, uint32_t size, enum param_direction dir);
-void destroy_mem_param(mem_param_t *param);
+void destroy_mem_param(struct mem_param *param);
 
 void init_reg_param(reg_param_t *param,
 		char *reg_name, uint32_t size, enum param_direction dir);
diff --git a/src/target/arm11.c b/src/target/arm11.c
index 23185488dc6bdf8362c1d843932f54f6fdd2a3b3..d7fca7d3a482a77775d08a0025b630b352ba47dc 100644
--- a/src/target/arm11.c
+++ b/src/target/arm11.c
@@ -1614,7 +1614,7 @@ static int arm11_remove_watchpoint(struct target_s *target,
 // HACKHACKHACK - FIXME mode/state
 /* target algorithm support */
 static int arm11_run_algorithm(struct target_s *target,
-		int num_mem_params, mem_param_t *mem_params,
+		int num_mem_params, struct mem_param *mem_params,
 		int num_reg_params, reg_param_t *reg_params,
 		uint32_t entry_point, uint32_t exit_point,
 		int timeout_ms, void *arch_info)
diff --git a/src/target/arm7_9_common.c b/src/target/arm7_9_common.c
index 96575d579c231b42be3542f74f86734480d288b3..66b13df4f5e8fbb1fcbce7b0d8a5f9be39f9b889 100644
--- a/src/target/arm7_9_common.c
+++ b/src/target/arm7_9_common.c
@@ -2654,7 +2654,7 @@ static const uint32_t dcc_code[] =
 	0xeafffff9	/*    b   w                   */
 };
 
-int armv4_5_run_algorithm_inner(struct target_s *target, int num_mem_params, mem_param_t *mem_params, int num_reg_params, reg_param_t *reg_params, uint32_t entry_point, uint32_t exit_point, int timeout_ms, void *arch_info, int (*run_it)(struct target_s *target, uint32_t exit_point, int timeout_ms, void *arch_info));
+int armv4_5_run_algorithm_inner(struct target_s *target, int num_mem_params, struct mem_param *mem_params, int num_reg_params, reg_param_t *reg_params, uint32_t entry_point, uint32_t exit_point, int timeout_ms, void *arch_info, int (*run_it)(struct target_s *target, uint32_t exit_point, int timeout_ms, void *arch_info));
 
 int arm7_9_bulk_write_memory(target_t *target, uint32_t address, uint32_t count, uint8_t *buffer)
 {
diff --git a/src/target/arm7_9_common.h b/src/target/arm7_9_common.h
index a49dab2739e43402dd0c822e7e2c74c5c027236a..1a9e173c016be751a55a4c3856aad6e9fed6d566 100644
--- a/src/target/arm7_9_common.h
+++ b/src/target/arm7_9_common.h
@@ -141,7 +141,7 @@ int arm7_9_bulk_write_memory(target_t *target, uint32_t address, uint32_t count,
 int arm7_9_checksum_memory(struct target_s *target, uint32_t address, uint32_t count, uint32_t* checksum);
 int arm7_9_blank_check_memory(struct target_s *target, uint32_t address, uint32_t count, uint32_t* blank);
 
-int arm7_9_run_algorithm(struct target_s *target, int num_mem_params, mem_param_t *mem_params, int num_reg_prams, reg_param_t *reg_param, uint32_t entry_point, void *arch_info);
+int arm7_9_run_algorithm(struct target_s *target, int num_mem_params, struct mem_param *mem_params, int num_reg_prams, reg_param_t *reg_param, uint32_t entry_point, void *arch_info);
 
 int arm7_9_add_breakpoint(struct target_s *target, breakpoint_t *breakpoint);
 int arm7_9_remove_breakpoint(struct target_s *target, breakpoint_t *breakpoint);
diff --git a/src/target/armv4_5.c b/src/target/armv4_5.c
index c0a9c8ab5bb8d509fd9334d8c7ab02dfb62500fb..12509aa8ad02c8246c5ef3de75dc6371f0061aee 100644
--- a/src/target/armv4_5.c
+++ b/src/target/armv4_5.c
@@ -543,7 +543,7 @@ static int armv4_5_run_algorithm_completion(struct target_s *target, uint32_t ex
 	return ERROR_OK;
 }
 
-int armv4_5_run_algorithm_inner(struct target_s *target, int num_mem_params, mem_param_t *mem_params, int num_reg_params, reg_param_t *reg_params, uint32_t entry_point, uint32_t exit_point, int timeout_ms, void *arch_info, int (*run_it)(struct target_s *target, uint32_t exit_point, int timeout_ms, void *arch_info))
+int armv4_5_run_algorithm_inner(struct target_s *target, int num_mem_params, struct mem_param *mem_params, int num_reg_params, reg_param_t *reg_params, uint32_t entry_point, uint32_t exit_point, int timeout_ms, void *arch_info, int (*run_it)(struct target_s *target, uint32_t exit_point, int timeout_ms, void *arch_info))
 {
 	struct armv4_5_common_s *armv4_5 = target_to_armv4_5(target);
 	armv4_5_algorithm_t *armv4_5_algorithm_info = arch_info;
@@ -708,7 +708,7 @@ int armv4_5_run_algorithm_inner(struct target_s *target, int num_mem_params, mem
 	return retval;
 }
 
-int armv4_5_run_algorithm(struct target_s *target, int num_mem_params, mem_param_t *mem_params, int num_reg_params, reg_param_t *reg_params, uint32_t entry_point, uint32_t exit_point, int timeout_ms, void *arch_info)
+int armv4_5_run_algorithm(struct target_s *target, int num_mem_params, struct mem_param *mem_params, int num_reg_params, reg_param_t *reg_params, uint32_t entry_point, uint32_t exit_point, int timeout_ms, void *arch_info)
 {
 	return armv4_5_run_algorithm_inner(target, num_mem_params, mem_params, num_reg_params, reg_params, entry_point, exit_point, timeout_ms, arch_info, armv4_5_run_algorithm_completion);
 }
diff --git a/src/target/armv4_5.h b/src/target/armv4_5.h
index 1eaab12da300103c57fbe9e5f4491e39bb7a3897..e908d54a8bdca5154f805b1dad264e506ee5dd56 100644
--- a/src/target/armv4_5.h
+++ b/src/target/armv4_5.h
@@ -183,7 +183,7 @@ int armv4_5_register_commands(struct command_context_s *cmd_ctx);
 int armv4_5_init_arch_info(target_t *target, armv4_5_common_t *armv4_5);
 
 int armv4_5_run_algorithm(struct target_s *target,
-		int num_mem_params, mem_param_t *mem_params,
+		int num_mem_params, struct mem_param *mem_params,
 		int num_reg_params, reg_param_t *reg_params,
 		uint32_t entry_point, uint32_t exit_point,
 		int timeout_ms, void *arch_info);
diff --git a/src/target/armv7m.c b/src/target/armv7m.c
index 0f9d811405a5d5efde32df098f5b8fdbc53a3a18..36f828b7c2df8cf0e4d0e26eac81da5782595cda 100644
--- a/src/target/armv7m.c
+++ b/src/target/armv7m.c
@@ -357,7 +357,7 @@ static int armv7m_run_and_wait(struct target_s *target, uint32_t entry_point, in
 
 /** Runs a Thumb algorithm in the target. */
 int armv7m_run_algorithm(struct target_s *target,
-	int num_mem_params, mem_param_t *mem_params,
+	int num_mem_params, struct mem_param *mem_params,
 	int num_reg_params, reg_param_t *reg_params,
 	uint32_t entry_point, uint32_t exit_point,
 	int timeout_ms, void *arch_info)
diff --git a/src/target/armv7m.h b/src/target/armv7m.h
index 76016856265c4524d4bd74076b844f3db9cfcd49..6b51c477906b9302de2edf8ff5d322703149985b 100644
--- a/src/target/armv7m.h
+++ b/src/target/armv7m.h
@@ -146,7 +146,7 @@ int armv7m_register_commands(struct command_context_s *cmd_ctx);
 int armv7m_init_arch_info(target_t *target, armv7m_common_t *armv7m);
 
 int armv7m_run_algorithm(struct target_s *target,
-		int num_mem_params, mem_param_t *mem_params,
+		int num_mem_params, struct mem_param *mem_params,
 		int num_reg_params, reg_param_t *reg_params,
 		uint32_t entry_point, uint32_t exit_point,
 		int timeout_ms, void *arch_info);
diff --git a/src/target/mips32.c b/src/target/mips32.c
index d1722c1ab06ea847a9844d3a1c845ccdd1bb4df0..18bea79a852e968e494727082073c3c9273d669e 100644
--- a/src/target/mips32.c
+++ b/src/target/mips32.c
@@ -336,7 +336,7 @@ int mips32_register_commands(struct command_context_s *cmd_ctx)
 	return ERROR_OK;
 }
 
-int mips32_run_algorithm(struct target_s *target, int num_mem_params, mem_param_t *mem_params, int num_reg_params, reg_param_t *reg_params, uint32_t entry_point, uint32_t exit_point, int timeout_ms, void *arch_info)
+int mips32_run_algorithm(struct target_s *target, int num_mem_params, struct mem_param *mem_params, int num_reg_params, reg_param_t *reg_params, uint32_t entry_point, uint32_t exit_point, int timeout_ms, void *arch_info)
 {
 	/*TODO*/
 	return ERROR_OK;
diff --git a/src/target/mips32.h b/src/target/mips32.h
index 64328e3519b03a6b24067732a54322bf81bef6c4..927c2f177fc93eb981655d0507eb22498a677a8e 100644
--- a/src/target/mips32.h
+++ b/src/target/mips32.h
@@ -135,7 +135,7 @@ int mips32_save_context(target_t *target);
 reg_cache_t *mips32_build_reg_cache(target_t *target);
 
 int mips32_run_algorithm(struct target_s *target,
-		int num_mem_params, mem_param_t *mem_params,
+		int num_mem_params, struct mem_param *mem_params,
 		int num_reg_params, reg_param_t *reg_params,
 		uint32_t entry_point, uint32_t exit_point,
 		int timeout_ms, void *arch_info);
diff --git a/src/target/target.c b/src/target/target.c
index 2528a64e49c0047725bed4b9d806348985f6fb66..44fe6bc9ae6f0f333e570aa950ce45f9c6163f78 100644
--- a/src/target/target.c
+++ b/src/target/target.c
@@ -559,7 +559,7 @@ static int target_soft_reset_halt_imp(struct target_s *target)
 	return target->type->soft_reset_halt_imp(target);
 }
 
-static int target_run_algorithm_imp(struct target_s *target, int num_mem_params, mem_param_t *mem_params, int num_reg_params, reg_param_t *reg_param, uint32_t entry_point, uint32_t exit_point, int timeout_ms, void *arch_info)
+static int target_run_algorithm_imp(struct target_s *target, int num_mem_params, struct mem_param *mem_params, int num_reg_params, reg_param_t *reg_param, uint32_t entry_point, uint32_t exit_point, int timeout_ms, void *arch_info)
 {
 	if (!target_was_examined(target))
 	{
@@ -634,7 +634,7 @@ int target_step(struct target_s *target,
 
 
 int target_run_algorithm(struct target_s *target,
-		int num_mem_params, mem_param_t *mem_params,
+		int num_mem_params, struct mem_param *mem_params,
 		int num_reg_params, reg_param_t *reg_param,
 		uint32_t entry_point, uint32_t exit_point,
 		int timeout_ms, void *arch_info)
diff --git a/src/target/target.h b/src/target/target.h
index f5b6eb22121ac8ec6da4997d98be6904c36eece5..691a00015a158707bc431f016128495030c0954f 100644
--- a/src/target/target.h
+++ b/src/target/target.h
@@ -360,7 +360,7 @@ int target_step(struct target_s *target,
  * This routine is a wrapper for target->type->run_algorithm.
  */
 int target_run_algorithm(struct target_s *target,
-		int num_mem_params, mem_param_t *mem_params,
+		int num_mem_params, struct mem_param *mem_params,
 		int num_reg_params, reg_param_t *reg_param,
 		uint32_t entry_point, uint32_t exit_point,
 		int timeout_ms, void *arch_info);
diff --git a/src/target/target_type.h b/src/target/target_type.h
index dd469db10788af5764500c829bba7cd07f930ed3..f8c78e20e514980e2a40dd46e938f460b1f0232d 100644
--- a/src/target/target_type.h
+++ b/src/target/target_type.h
@@ -144,12 +144,12 @@ struct target_type_s
 	int (*remove_watchpoint)(struct target_s *target, watchpoint_t *watchpoint);
 
 	/* target algorithm support */
-	int (*run_algorithm_imp)(struct target_s *target, int num_mem_params, mem_param_t *mem_params, int num_reg_params, reg_param_t *reg_param, uint32_t entry_point, uint32_t exit_point, int timeout_ms, void *arch_info);
+	int (*run_algorithm_imp)(struct target_s *target, int num_mem_params, struct mem_param *mem_params, int num_reg_params, reg_param_t *reg_param, uint32_t entry_point, uint32_t exit_point, int timeout_ms, void *arch_info);
 	/**
 	 * Target algorithm support.  Do @b not call this method directly,
 	 * use target_run_algorithm() instead.
 	 */
-	int (*run_algorithm)(struct target_s *target, int num_mem_params, mem_param_t *mem_params, int num_reg_params, reg_param_t *reg_param, uint32_t entry_point, uint32_t exit_point, int timeout_ms, void *arch_info);
+	int (*run_algorithm)(struct target_s *target, int num_mem_params, struct mem_param *mem_params, int num_reg_params, reg_param_t *reg_param, uint32_t entry_point, uint32_t exit_point, int timeout_ms, void *arch_info);
 
 	int (*register_commands)(struct command_context_s *cmd_ctx);