]> git.sur5r.net Git - openocd/blobdiff - src/target/mips32_pracc.c
arm7_9_common: use register_commands()
[openocd] / src / target / mips32_pracc.c
index 3177e0f291959482e42d2a33e06f61c71cff5062..4f9a7042276373144d40118593d779abf3a46c39 100644 (file)
@@ -440,7 +440,7 @@ int mips32_pracc_read_mem16(struct mips_ejtag *ejtag_info, uint32_t addr, int co
        };
 
 //     /* TODO remove array */
-       uint32_t param_out[count];
+       uint32_t *param_out = malloc(count * sizeof(uint32_t));
        int i;
 
 //     int retval;
@@ -472,6 +472,8 @@ int mips32_pracc_read_mem16(struct mips_ejtag *ejtag_info, uint32_t addr, int co
                buf[i] = param_out[i];
        }
 
+       free(param_out);
+
        return ERROR_OK;
 }
 
@@ -519,7 +521,7 @@ int mips32_pracc_read_mem8(struct mips_ejtag *ejtag_info, uint32_t addr, int cou
        };
 
 //     /* TODO remove array */
-       uint32_t param_out[count];
+       uint32_t *param_out = malloc(count * sizeof(uint32_t));
        int i;
 
 //     int retval;
@@ -551,6 +553,8 @@ int mips32_pracc_read_mem8(struct mips_ejtag *ejtag_info, uint32_t addr, int cou
                buf[i] = param_out[i];
        }
 
+       free(param_out);
+
        return ERROR_OK;
 }
 
@@ -609,14 +613,16 @@ int mips32_pracc_write_mem32(struct mips_ejtag *ejtag_info, uint32_t addr, int c
        };
 
        /* TODO remove array */
-       uint32_t param_in[count + 2];
+       uint32_t *param_in = malloc((count + 2) * sizeof(uint32_t));
        param_in[0] = addr;
        param_in[1] = addr + count * sizeof(uint32_t);  //last address
 
        memcpy(&param_in[2], buf, count * sizeof(uint32_t));
 
        mips32_pracc_exec(ejtag_info, sizeof(code)/sizeof(code[0]), code, \
-               sizeof(param_in)/sizeof(param_in[0]),param_in, 0, NULL, 1);
+               count + 2, param_in, 0, NULL, 1);
+
+       free(param_in);
 
        return ERROR_OK;
 }
@@ -698,7 +704,7 @@ int mips32_pracc_write_mem16(struct mips_ejtag *ejtag_info, uint32_t addr, int c
        };
 
        /* TODO remove array */
-       uint32_t param_in[count + 2];
+       uint32_t *param_in = malloc((count + 2) * sizeof(uint32_t));
        int i;
        param_in[0] = addr;
        param_in[1] = count;
@@ -709,7 +715,9 @@ int mips32_pracc_write_mem16(struct mips_ejtag *ejtag_info, uint32_t addr, int c
        }
 
        mips32_pracc_exec(ejtag_info, sizeof(code)/sizeof(code[0]), code, \
-               sizeof(param_in)/sizeof(param_in[0]), param_in, 0, NULL, 1);
+               count + 2, param_in, 0, NULL, 1);
+
+       free(param_in);
 
        return ERROR_OK;
 }
@@ -758,7 +766,7 @@ int mips32_pracc_write_mem8(struct mips_ejtag *ejtag_info, uint32_t addr, int co
        };
 
        /* TODO remove array */
-       uint32_t param_in[count + 2];
+       uint32_t *param_in = malloc((count + 2) * sizeof(uint32_t));
        int retval;
        int i;
        param_in[0] = addr;
@@ -770,7 +778,9 @@ int mips32_pracc_write_mem8(struct mips_ejtag *ejtag_info, uint32_t addr, int co
        }
 
        retval = mips32_pracc_exec(ejtag_info, sizeof(code)/sizeof(code[0]), code, \
-               sizeof(param_in)/sizeof(param_in[0]), param_in, 0, NULL, 1);
+               count +2, param_in, 0, NULL, 1);
+
+       free(param_in);
 
        return retval;
 }