This is an automated email from Gerrit.

Michel JAOUEN ([email protected]) just uploaded a new patch set to 
Gerrit, which you can find at http://openocd.zylin.com/343

-- gerrit

commit de6f4b6d9e68028fe9e3e78d60cd9093ed7ad00a
Author: Michel JAOUEN <[email protected]>
Date:   Tue Jan 3 16:07:55 2012 +0100

    rtos : current_threadid move to rtos context
    
    Change-Id: I49d9d6d64c418be601d8723cb3eea9c3716ecb6b
    Signed-off-by: Michel JAOUEN <[email protected]>

diff --git a/src/rtos/rtos.c b/src/rtos/rtos.c
index f7d9486..78a7e9d 100644
--- a/src/rtos/rtos.c
+++ b/src/rtos/rtos.c
@@ -29,7 +29,6 @@
 #include "server/gdb_server.h"
 
 
-static int64_t current_threadid = -1;
 
 static void hex_to_str( char* dst, char * hex_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;
        char *cp;
-
        if (! goi->isconfigure) {
                if (goi->argc != 0) {
                        if (goi->argc != 0) {
@@ -115,6 +113,7 @@ int rtos_create(Jim_GetOptInfo *goi, struct target * target)
        /* Create it */
        target->rtos = calloc(1,sizeof(struct rtos));
        target->rtos->type = rtos_types[x];
+       target->rtos->current_threadid = -1;
        target->rtos->current_thread = 0;
        target->rtos->symbols = NULL;
        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 )
        {
                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);
                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)
 {
        struct target *target = get_target_from_connection(connection);
-
+       int64_t current_threadid = target->rtos->current_threadid;
        if ( ( target->rtos != NULL ) &&
                 ( current_threadid != -1 ) &&
                 ( current_threadid != 0 ) &&
diff --git a/src/rtos/rtos.h b/src/rtos/rtos.h
index 93a980e..df0812f 100644
--- a/src/rtos/rtos.h
+++ b/src/rtos/rtos.h
@@ -57,7 +57,8 @@ struct rtos
 
        symbol_table_elem_t * symbols;
        struct target *target;
-
+       /*  add a context variable instead of global variable */
+       int64_t current_threadid;
        threadid_t current_thread;
        struct thread_detail* thread_details;
        int thread_count;

-- 

------------------------------------------------------------------------------
Ridiculously easy VDI. With Citrix VDI-in-a-Box, you don't need a complex
infrastructure or vast IT resources to deliver seamless, secure access to
virtual desktops. With this all-in-one solution, easily deploy virtual 
desktops for less than the cost of PCs and save 60% on VDI infrastructure 
costs. Try it free! http://p.sf.net/sfu/Citrix-VDIinabox
_______________________________________________
OpenOCD-devel mailing list
[email protected]
https://lists.sourceforge.net/lists/listinfo/openocd-devel

Reply via email to