rtos : current_threadid move to rtos context

Change-Id: I49d9d6d64c418be601d8723cb3eea9c3716ecb6b
Signed-off-by: Michel JAOUEN <michel.jaouen@stericsson.com>
Reviewed-on: http://openocd.zylin.com/343
Tested-by: jenkins
Reviewed-by: Evan Hunter <evan@ozhiker.com>
Reviewed-by: Øyvind Harboe <oyvindharboe@gmail.com>
__archive__
Michel JAOUEN 2012-01-03 16:07:55 +01:00 committed by Øyvind Harboe
parent 1db60b9c43
commit ff3028ce1b
2 changed files with 5 additions and 5 deletions

View File

@ -29,7 +29,6 @@
#include "server/gdb_server.h" #include "server/gdb_server.h"
static int64_t current_threadid = -1;
static void hex_to_str( char* dst, char * hex_src ); static void hex_to_str( char* dst, char * hex_src );
static int str_to_hex( char* hex_dst, char* src ); static int str_to_hex( char* hex_dst, char* src );
@ -55,7 +54,6 @@ int rtos_create(Jim_GetOptInfo *goi, struct target * target)
{ {
int x; int x;
char *cp; char *cp;
if (! goi->isconfigure) { if (! goi->isconfigure) {
if (goi->argc != 0) { if (goi->argc != 0) {
if (goi->argc != 0) { if (goi->argc != 0) {
@ -115,6 +113,7 @@ int rtos_create(Jim_GetOptInfo *goi, struct target * target)
/* Create it */ /* Create it */
target->rtos = calloc(1,sizeof(struct rtos)); target->rtos = calloc(1,sizeof(struct rtos));
target->rtos->type = rtos_types[x]; target->rtos->type = rtos_types[x];
target->rtos->current_threadid = -1;
target->rtos->current_thread = 0; target->rtos->current_thread = 0;
target->rtos->symbols = NULL; target->rtos->symbols = NULL;
target->rtos->target = target; target->rtos->target = target;
@ -426,7 +425,7 @@ int rtos_thread_packet(struct connection *connection, char *packet, int packet_s
else if ( packet[0] == 'H') // Set current thread ( 'c' for step and continue, 'g' for all other operations ) else if ( packet[0] == 'H') // Set current thread ( 'c' for step and continue, 'g' for all other operations )
{ {
if ((packet[1] == 'g') && (target->rtos != NULL)) if ((packet[1] == 'g') && (target->rtos != NULL))
sscanf(packet, "Hg%16" SCNx64, &current_threadid); sscanf(packet, "Hg%16" SCNx64, &target->rtos->current_threadid);
gdb_put_packet(connection, "OK", 2); gdb_put_packet(connection, "OK", 2);
return ERROR_OK; return ERROR_OK;
} }
@ -437,7 +436,7 @@ int rtos_thread_packet(struct connection *connection, char *packet, int packet_s
int rtos_get_gdb_reg_list(struct connection *connection) int rtos_get_gdb_reg_list(struct connection *connection)
{ {
struct target *target = get_target_from_connection(connection); struct target *target = get_target_from_connection(connection);
int64_t current_threadid = target->rtos->current_threadid;
if ( ( target->rtos != NULL ) && if ( ( target->rtos != NULL ) &&
( current_threadid != -1 ) && ( current_threadid != -1 ) &&
( current_threadid != 0 ) && ( current_threadid != 0 ) &&

View File

@ -57,7 +57,8 @@ struct rtos
symbol_table_elem_t * symbols; symbol_table_elem_t * symbols;
struct target *target; struct target *target;
/* add a context variable instead of global variable */
int64_t current_threadid;
threadid_t current_thread; threadid_t current_thread;
struct thread_detail* thread_details; struct thread_detail* thread_details;
int thread_count; int thread_count;