Add target breakpoint and watchpoint wrapper:
authorzwelch <zwelch@b42882b7-edfa-0310-969c-e2dbd0fdcd60>
Sun, 31 May 2009 11:31:52 +0000 (11:31 +0000)
committerzwelch <zwelch@b42882b7-edfa-0310-969c-e2dbd0fdcd60>
Sun, 31 May 2009 11:31:52 +0000 (11:31 +0000)
- replaces all calls to target->type->{add,remove}_{break,watch}point.

git-svn-id: svn://svn.berlios.de/openocd/trunk@1967 b42882b7-edfa-0310-969c-e2dbd0fdcd60

src/target/breakpoints.c
src/target/target.c
src/target/target.h

index 106095cd8cfb194bcc36a3a9f52c6e8ccf4696bd..55524a7661a358f867fa4f4ba4c24d78faee78be 100644 (file)
@@ -61,7 +61,7 @@ int breakpoint_add(target_t *target, u32 address, u32 length, enum breakpoint_ty
        (*breakpoint_p)->orig_instr = malloc(length);
        (*breakpoint_p)->next = NULL;
        
-       if ((retval = target->type->add_breakpoint(target, *breakpoint_p)) != ERROR_OK)
+       if ((retval = target_add_breakpoint(target, *breakpoint_p)) != ERROR_OK)
        {
                switch (retval)
                {
@@ -108,7 +108,7 @@ static void breakpoint_free(target_t *target, breakpoint_t *breakpoint_remove)
        if (breakpoint==NULL)
                return;
        
-       target->type->remove_breakpoint(target, breakpoint);
+       target_remove_breakpoint(target, breakpoint);
        
        (*breakpoint_p) = breakpoint->next;
        free(breakpoint->orig_instr);
@@ -184,7 +184,7 @@ int watchpoint_add(target_t *target, u32 address, u32 length, enum watchpoint_rw
        (*watchpoint_p)->set = 0;
        (*watchpoint_p)->next = NULL;
                
-       if ((retval = target->type->add_watchpoint(target, *watchpoint_p)) != ERROR_OK)
+       if ((retval = target_add_watchpoint(target, *watchpoint_p)) != ERROR_OK)
        {
                switch (retval)
                {
@@ -229,7 +229,7 @@ static void watchpoint_free(target_t *target, watchpoint_t *watchpoint_remove)
        
        if (watchpoint==NULL)
                return;
-       target->type->remove_watchpoint(target, watchpoint);
+       target_remove_watchpoint(target, watchpoint);
        (*watchpoint_p) = watchpoint->next;
        free(watchpoint);
 }
index a54e0654b02384354f824d1b4e7baf919cd4d10e..16d28727bc9c4c4d7e956f6524e8ec5ed0d55e77 100644 (file)
@@ -546,6 +546,27 @@ int target_bulk_write_memory(struct target_s *target,
        return target->type->bulk_write_memory(target, address, count, buffer);
 }
 
+int target_add_breakpoint(struct target_s *target,
+               struct breakpoint_s *breakpoint)
+{
+       return target->type->add_breakpoint(target, breakpoint);
+}
+int target_remove_breakpoint(struct target_s *target,
+               struct breakpoint_s *breakpoint)
+{
+       return target->type->remove_breakpoint(target, breakpoint);
+}
+
+int target_add_watchpoint(struct target_s *target,
+               struct watchpoint_s *watchpoint)
+{
+       return target->type->add_watchpoint(target, watchpoint);
+}
+int target_remove_watchpoint(struct target_s *target,
+               struct watchpoint_s *watchpoint)
+{
+       return target->type->remove_watchpoint(target, watchpoint);
+}
 
 int target_get_gdb_reg_list(struct target_s *target,
                struct reg_s **reg_list[], int *reg_list_size)
index 91dd1b15422f4a7dfe1ca9ba8838147bfeb6fb03..6e282d9ee02fa804d323168e95b311c1835b4661 100644 (file)
@@ -413,6 +413,36 @@ extern void target_set_examined(struct target_s *target);
 /// Reset the @c examined flag for the given target.
 extern void target_reset_examined(struct target_s *target);
 
+
+/**
+ * Add the @a breakpoint for @a target.
+ *
+ * This routine is a wrapper for target->type->add_breakpoint.
+ */
+extern int target_add_breakpoint(struct target_s *target,
+               struct breakpoint_s *breakpoint);
+/**
+ * Remove the @a breakpoint for @a target.
+ *
+ * This routine is a wrapper for target->type->remove_breakpoint.
+ */
+extern int target_remove_breakpoint(struct target_s *target,
+               struct breakpoint_s *breakpoint);
+/**
+ * Add the @a watchpoint for @a target.
+ *
+ * This routine is a wrapper for target->type->add_watchpoint.
+ */
+extern int target_add_watchpoint(struct target_s *target,
+               struct watchpoint_s *watchpoint);
+/**
+ * Remove the @a watchpoint for @a target.
+ *
+ * This routine is a wrapper for target->type->remove_watchpoint.
+ */
+extern int target_remove_watchpoint(struct target_s *target,
+               struct watchpoint_s *watchpoint);
+
 /**
  * Obtain the registers for GDB.
  *

Linking to existing account procedure

If you already have an account and want to add another login method you MUST first sign in with your existing account and then change URL to read https://review.openocd.org/login/?link to get to this page again but this time it'll work for linking. Thank you.

SSH host keys fingerprints

1024 SHA256:YKx8b7u5ZWdcbp7/4AeXNaqElP49m6QrwfXaqQGJAOk gerrit-code-review@openocd.zylin.com (DSA)
384 SHA256:jHIbSQa4REvwCFG4cq5LBlBLxmxSqelQPem/EXIrxjk gerrit-code-review@openocd.org (ECDSA)
521 SHA256:UAOPYkU9Fjtcao0Ul/Rrlnj/OsQvt+pgdYSZ4jOYdgs gerrit-code-review@openocd.org (ECDSA)
256 SHA256:A13M5QlnozFOvTllybRZH6vm7iSt0XLxbA48yfc2yfY gerrit-code-review@openocd.org (ECDSA)
256 SHA256:spYMBqEYoAOtK7yZBrcwE8ZpYt6b68Cfh9yEVetvbXg gerrit-code-review@openocd.org (ED25519)
+--[ED25519 256]--+
|=..              |
|+o..   .         |
|*.o   . .        |
|+B . . .         |
|Bo. = o S        |
|Oo.+ + =         |
|oB=.* = . o      |
| =+=.+   + E     |
|. .=o   . o      |
+----[SHA256]-----+
2048 SHA256:0Onrb7/PHjpo6iVZ7xQX2riKN83FJ3KGU0TvI0TaFG4 gerrit-code-review@openocd.zylin.com (RSA)