extern struct rtos_type nuttx_rtos;
extern struct rtos_type hwthread_rtos;
extern struct rtos_type riot_rtos;
+extern struct rtos_type zephyr_rtos;
static struct rtos_type *rtos_types[] = {
&ThreadX_rtos,
&uCOS_III_rtos,
&nuttx_rtos,
&riot_rtos,
+ &zephyr_rtos,
/* keep this as last, as it always matches with rtos auto */
&hwthread_rtos,
NULL
};
+static int rtos_try_next(struct target *target);
+
int rtos_thread_packet(struct connection *connection, const char *packet, int packet_size);
int rtos_smp_init(struct target *target)
if (!target->rtos)
return;
- if (target->rtos->symbols)
- free(target->rtos->symbols);
-
+ free(target->rtos->symbols);
free(target->rtos);
target->rtos = NULL;
}
return target->rtos->gdb_thread_packet(connection, packet, packet_size);
}
-static symbol_table_elem_t *next_symbol(struct rtos *os, char *cur_symbol, uint64_t cur_addr)
+static struct symbol_table_elem *next_symbol(struct rtos *os, char *cur_symbol, uint64_t cur_addr)
{
- symbol_table_elem_t *s;
+ struct symbol_table_elem *s;
if (!os->symbols)
os->type->get_symbol_list_to_lookup(&os->symbols);
* if 'symbol' is not declared optional */
static bool is_symbol_mandatory(const struct rtos *os, const char *symbol)
{
- for (symbol_table_elem_t *s = os->symbols; s->symbol_name; ++s) {
+ for (struct symbol_table_elem *s = os->symbols; s->symbol_name; ++s) {
if (!strcmp(s->symbol_name, symbol))
return !s->optional;
}
uint64_t addr = 0;
size_t reply_len;
char reply[GDB_BUFFER_SIZE + 1], cur_sym[GDB_BUFFER_SIZE / 2 + 1] = ""; /* Extra byte for null-termination */
- symbol_table_elem_t *next_sym = NULL;
+ struct symbol_table_elem *next_sym = NULL;
struct target *target = get_target_from_connection(connection);
struct rtos *os = target->rtos;
return ERROR_OK;
}
-int rtos_try_next(struct target *target)
+static int rtos_try_next(struct target *target)
{
struct rtos *os = target->rtos;
struct rtos_type **type = rtos_types;
return 0;
os->type = *type;
- if (os->symbols) {
- free(os->symbols);
- os->symbols = NULL;
- }
+
+ free(os->symbols);
+ os->symbols = NULL;
return 1;
}