rtos : current_threadid move to rtos context
[fw/openocd] / src / rtos / rtos.h
index cd4bbb27b4ac6882239906f5a82dac67238ac7fd..df0812fc6c1d67332a0271ce1a5187ef16b4bb99 100644 (file)
@@ -26,8 +26,8 @@
 #include <helper/types.h>
 #include <jim-nvp.h>
 
-typedef long long threadid_t;
-typedef long long symbol_address_t;
+typedef int64_t threadid_t;
+typedef int64_t symbol_address_t;
 
 struct reg;
 
@@ -57,13 +57,15 @@ 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;
-
+       int (*gdb_thread_packet)(struct connection *connection, char *packet, int packet_size);
        void * rtos_specific_params;
 
+
 };
 
 
@@ -74,7 +76,7 @@ struct rtos_type
        int (*detect_rtos)                 ( struct target* target );
        int (*create)                      ( struct target* target );
        int (*update_threads)              ( struct rtos*   rtos );
-       int (*get_thread_reg_list)         ( struct rtos *rtos, long long thread_id, char ** hex_reg_list );
+       int (*get_thread_reg_list)         ( struct rtos *rtos, int64_t thread_id, char ** hex_reg_list );
        int (*get_symbol_list_to_lookup)   (symbol_table_elem_t * symbol_list[] );
 };
 
@@ -91,16 +93,17 @@ struct rtos_register_stacking
        unsigned char                       stack_registers_size;
        signed   char                       stack_growth_direction;
        unsigned char                       num_output_registers;
+       unsigned char                       stack_alignment;
        const struct stack_register_offset* register_offsets;
 };
 
 #define GDB_THREAD_PACKET_NOT_CONSUMED (-40)
 
 int rtos_create(Jim_GetOptInfo *goi, struct target * target);
-int rtos_generic_stack_read( struct target * target, const struct rtos_register_stacking* stacking, long long stack_ptr, char ** hex_reg_list );
+int rtos_generic_stack_read( struct target * target, const struct rtos_register_stacking* stacking, int64_t stack_ptr, char ** hex_reg_list );
 int rtos_try_next( struct target * target );
-int gdb_thread_packet(struct connection *connection, struct target *target, char *packet, int packet_size);
-int rtos_get_gdb_reg_list(struct connection *connection, struct target *target, struct reg **reg_list[], int *reg_list_size);
+int gdb_thread_packet(struct connection *connection, char *packet, int packet_size);
+int rtos_get_gdb_reg_list(struct connection *connection);
 int rtos_update_threads( struct target *target );
 
 #endif // RTOS_H