summaryrefslogtreecommitdiff
path: root/src/target/xscale.c
diff options
context:
space:
mode:
authorØyvind Harboe <oyvind.harboe@zylin.com>2010-07-19 08:45:45 +0200
committerØyvind Harboe <oyvind.harboe@zylin.com>2010-07-19 22:13:48 +0200
commit70fee9207b5fd1c6f499b790591446adc4d4467c (patch)
tree441eee8f9af2ed37eaf072d22465246037f99d15 /src/target/xscale.c
parent612184176fee6333e5372c4637e3cf54628ee416 (diff)
downloadopenocd_libswd-70fee9207b5fd1c6f499b790591446adc4d4467c.tar.gz
openocd_libswd-70fee9207b5fd1c6f499b790591446adc4d4467c.tar.bz2
openocd_libswd-70fee9207b5fd1c6f499b790591446adc4d4467c.tar.xz
openocd_libswd-70fee9207b5fd1c6f499b790591446adc4d4467c.zip
arm: add error propagation to generic get_ttb fn
Signed-off-by: Øyvind Harboe <oyvind.harboe@zylin.com>
Diffstat (limited to 'src/target/xscale.c')
-rw-r--r--src/target/xscale.c11
1 files changed, 8 insertions, 3 deletions
diff --git a/src/target/xscale.c b/src/target/xscale.c
index d5c21299..35efa857 100644
--- a/src/target/xscale.c
+++ b/src/target/xscale.c
@@ -2002,15 +2002,20 @@ static int xscale_bulk_write_memory(struct target *target, uint32_t address,
return xscale_write_memory(target, address, 4, count, buffer);
}
-static uint32_t xscale_get_ttb(struct target *target)
+static int xscale_get_ttb(struct target *target, uint32_t *result)
{
struct xscale_common *xscale = target_to_xscale(target);
uint32_t ttb;
+ int retval;
- xscale_get_reg(&xscale->reg_cache->reg_list[XSCALE_TTB]);
+ retval = xscale_get_reg(&xscale->reg_cache->reg_list[XSCALE_TTB]);
+ if (retval != ERROR_OK)
+ return retval;
ttb = buf_get_u32(xscale->reg_cache->reg_list[XSCALE_TTB].value, 0, 32);
- return ttb;
+ *result = ttb;
+
+ return ERROR_OK;
}
static void xscale_disable_mmu_caches(struct target *target, int mmu,