projects
/
fw
/
openocd
/ blobdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
|
commitdiff
|
tree
raw
|
inline
| side by side
target/cortex_m: inform if an external reset occurs
[fw/openocd]
/
src
/
rtos
/
eCos.c
diff --git
a/src/rtos/eCos.c
b/src/rtos/eCos.c
index 746172d6c568123a7e9153afaa170dd4ca1fb8d6..e6b70730b5d40533b749305bdd4b97e6ecf533c2 100644
(file)
--- a/
src/rtos/eCos.c
+++ b/
src/rtos/eCos.c
@@
-11,9
+11,7
@@
* GNU General Public License for more details. *
* *
* You should have received a copy of the GNU General Public License *
* GNU General Public License for more details. *
* *
* You should have received a copy of the GNU General Public License *
- * along with this program; if not, write to the *
- * Free Software Foundation, Inc., *
- * 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA. *
+ * along with this program. If not, see <http://www.gnu.org/licenses/>. *
***************************************************************************/
#ifdef HAVE_CONFIG_H
***************************************************************************/
#ifdef HAVE_CONFIG_H
@@
-29,10
+27,10
@@
#include "helper/types.h"
#include "rtos_ecos_stackings.h"
#include "helper/types.h"
#include "rtos_ecos_stackings.h"
-static
int
eCos_detect_rtos(struct target *target);
+static
bool
eCos_detect_rtos(struct target *target);
static int eCos_create(struct target *target);
static int eCos_update_threads(struct rtos *rtos);
static int eCos_create(struct target *target);
static int eCos_update_threads(struct rtos *rtos);
-static int eCos_get_thread_reg_list(struct rtos *rtos, int64_t thread_id,
char **hex_reg_list
);
+static int eCos_get_thread_reg_list(struct rtos *rtos, int64_t thread_id,
struct rtos_reg **reg_list, int *num_regs
);
static int eCos_get_symbol_list_to_lookup(symbol_table_elem_t *symbol_list[]);
struct eCos_thread_state {
static int eCos_get_symbol_list_to_lookup(symbol_table_elem_t *symbol_list[]);
struct eCos_thread_state {
@@
-174,7
+172,6
@@
static int eCos_update_threads(struct rtos *rtos)
sizeof(struct thread_detail) * thread_list_size);
rtos->thread_details->threadid = 1;
rtos->thread_details->exists = true;
sizeof(struct thread_detail) * thread_list_size);
rtos->thread_details->threadid = 1;
rtos->thread_details->exists = true;
- rtos->thread_details->display_str = NULL;
rtos->thread_details->extra_info_str = NULL;
rtos->thread_details->thread_name_str = malloc(sizeof(tmp_str));
strcpy(rtos->thread_details->thread_name_str, tmp_str);
rtos->thread_details->extra_info_str = NULL;
rtos->thread_details->thread_name_str = malloc(sizeof(tmp_str));
strcpy(rtos->thread_details->thread_name_str, tmp_str);
@@
-264,13
+261,11
@@
static int eCos_update_threads(struct rtos *rtos)
state_desc = "Unknown state";
rtos->thread_details[tasks_found].extra_info_str = malloc(strlen(
state_desc = "Unknown state";
rtos->thread_details[tasks_found].extra_info_str = malloc(strlen(
- state_desc)+
1
);
- s
trcpy(rtos->thread_details[tasks_found].extra_info_str
, state_desc);
+ state_desc)+
8
);
+ s
printf(rtos->thread_details[tasks_found].extra_info_str, "State: %s"
, state_desc);
rtos->thread_details[tasks_found].exists = true;
rtos->thread_details[tasks_found].exists = true;
- rtos->thread_details[tasks_found].display_str = NULL;
-
tasks_found++;
prev_thread_ptr = thread_index;
tasks_found++;
prev_thread_ptr = thread_index;
@@
-290,13
+285,12
@@
static int eCos_update_threads(struct rtos *rtos)
return 0;
}
return 0;
}
-static int eCos_get_thread_reg_list(struct rtos *rtos, int64_t thread_id, char **hex_reg_list)
+static int eCos_get_thread_reg_list(struct rtos *rtos, int64_t thread_id,
+ struct rtos_reg **reg_list, int *num_regs)
{
int retval;
const struct eCos_params *param;
{
int retval;
const struct eCos_params *param;
- *hex_reg_list = NULL;
-
if (rtos == NULL)
return -1;
if (rtos == NULL)
return -1;
@@
-350,7
+344,8
@@
static int eCos_get_thread_reg_list(struct rtos *rtos, int64_t thread_id, char *
return rtos_generic_stack_read(rtos->target,
param->stacking_info,
stack_ptr,
return rtos_generic_stack_read(rtos->target,
param->stacking_info,
stack_ptr,
- hex_reg_list);
+ reg_list,
+ num_regs);
}
return -1;
}
return -1;
@@
-368,14
+363,14
@@
static int eCos_get_symbol_list_to_lookup(symbol_table_elem_t *symbol_list[])
return 0;
}
return 0;
}
-static
int
eCos_detect_rtos(struct target *target)
+static
bool
eCos_detect_rtos(struct target *target)
{
if ((target->rtos->symbols != NULL) &&
(target->rtos->symbols[eCos_VAL_thread_list].address != 0)) {
/* looks like eCos */
{
if ((target->rtos->symbols != NULL) &&
(target->rtos->symbols[eCos_VAL_thread_list].address != 0)) {
/* looks like eCos */
- return
1
;
+ return
true
;
}
}
- return
0
;
+ return
false
;
}
static int eCos_create(struct target *target)
}
static int eCos_create(struct target *target)