]> git.sur5r.net Git - openocd/commitdiff
Add target_get_gdb_reg_list wrapper:
authorzwelch <zwelch@b42882b7-edfa-0310-969c-e2dbd0fdcd60>
Sun, 31 May 2009 11:30:59 +0000 (11:30 +0000)
committerzwelch <zwelch@b42882b7-edfa-0310-969c-e2dbd0fdcd60>
Sun, 31 May 2009 11:30:59 +0000 (11:30 +0000)
- replaces all calls to target->type->get_gdb_reg_list.
- add documentation in target_s to warn not to invoke callback directly.

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

src/server/gdb_server.c
src/target/target.c
src/target/target.h

index c012738808b14182f35e5a25e39fa04062c62135..4a6bc035daae01d72bed1609e989da8b86f60119 100644 (file)
@@ -947,7 +947,7 @@ int gdb_get_registers_packet(connection_t *connection, target_t *target, char* p
        LOG_DEBUG("-");
 #endif
 
-       if ((retval = target->type->get_gdb_reg_list(target, &reg_list, &reg_list_size)) != ERROR_OK)
+       if ((retval = target_get_gdb_reg_list(target, &reg_list, &reg_list_size)) != ERROR_OK)
        {
                return gdb_error(connection, retval);
        }
@@ -1005,7 +1005,7 @@ int gdb_set_registers_packet(connection_t *connection, target_t *target, char *p
                return ERROR_SERVER_REMOTE_CLOSED;
        }
 
-       if ((retval = target->type->get_gdb_reg_list(target, &reg_list, &reg_list_size)) != ERROR_OK)
+       if ((retval = target_get_gdb_reg_list(target, &reg_list, &reg_list_size)) != ERROR_OK)
        {
                return gdb_error(connection, retval);
        }
@@ -1057,7 +1057,7 @@ int gdb_get_register_packet(connection_t *connection, target_t *target, char *pa
        LOG_DEBUG("-");
 #endif
 
-       if ((retval = target->type->get_gdb_reg_list(target, &reg_list, &reg_list_size)) != ERROR_OK)
+       if ((retval = target_get_gdb_reg_list(target, &reg_list, &reg_list_size)) != ERROR_OK)
        {
                return gdb_error(connection, retval);
        }
@@ -1092,7 +1092,7 @@ int gdb_set_register_packet(connection_t *connection, target_t *target, char *pa
 
        LOG_DEBUG("-");
 
-       if ((retval = target->type->get_gdb_reg_list(target, &reg_list, &reg_list_size)) != ERROR_OK)
+       if ((retval = target_get_gdb_reg_list(target, &reg_list, &reg_list_size)) != ERROR_OK)
        {
                return gdb_error(connection, retval);
        }
index 4a60cc4977cf1bf02e0ab2194a3bc16a982c2900..7a4548cccf48fcf4f6c306a39596346f27bae61f 100644 (file)
@@ -543,6 +543,12 @@ int target_bulk_write_memory(struct target_s *target,
 }
 
 
+int target_get_gdb_reg_list(struct target_s *target,
+               struct reg_s **reg_list[], int *reg_list_size)
+{
+       return target->type->get_gdb_reg_list(target, reg_list, reg_list_size);
+}
+
 int target_run_algorithm(struct target_s *target,
                int num_mem_params, mem_param_t *mem_params,
                int num_reg_params, reg_param_t *reg_param,
index 9674c473c150409869c4bb6a82ca964329721685..1b28893889eaafeb8dccc71bc9a501739d5602f1 100644 (file)
@@ -151,7 +151,9 @@ typedef struct target_type_s
        int (*soft_reset_halt_imp)(struct target_s *target);
        int (*soft_reset_halt)(struct target_s *target);
 
-       /* target register access for gdb.
+       /**
+        * Target register access for GDB.  Do @b not call this function
+        * directly, use target_get_gdb_reg_list() instead.
         *
         * Danger! this function will succeed even if the target is running
         * and return a register list with dummy values.
@@ -400,6 +402,14 @@ 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);
 
+/**
+ * Obtain the registers for GDB.
+ *
+ * This routine is a wrapper for target->type->get_gdb_reg_list.
+ */
+extern int target_get_gdb_reg_list(struct target_s *target,
+               struct reg_s **reg_list[], int *reg_list_size);
+
 /**
  * Run an algorithm on the @a target given.
  *