#define MAX_THREADS 200
/* specific task */
struct linux_os {
- char *name;
+ const char *name;
uint32_t init_task_addr;
int thread_count;
int threadid_count;
} else {
struct threads *temp = linux_os->thread_list;
- *hex_reg_list = (char *)calloc(1, 500 * sizeof(char));
+ *hex_reg_list = calloc(1, 500 * sizeof(char));
hex_string = *hex_reg_list;
for (i = 0; i < 16; i++)
static int linux_os_smp_init(struct target *target);
static int linux_os_clean(struct target *target);
#define INIT_TASK 0
-static char *linux_symbol_list[] = {
+static const char * const linux_symbol_list[] = {
"init_task",
NULL
};
{
unsigned int i;
*symbol_list = (symbol_table_elem_t *)
- malloc(sizeof(symbol_table_elem_t) * ARRAY_SIZE(linux_symbol_list));
+ calloc(ARRAY_SIZE(linux_symbol_list), sizeof(symbol_table_elem_t));
for (i = 0; i < ARRAY_SIZE(linux_symbol_list); i++)
(*symbol_list)[i].symbol_name = linux_symbol_list[i];
.ps_command = linux_ps_command,
};
-static int linux_thread_packet(struct connection *connection, char *packet,
+static int linux_thread_packet(struct connection *connection, char const *packet,
int packet_size);
static void linux_identify_current_threads(struct target *target);
}
int linux_gdb_thread_packet(struct target *target,
- struct connection *connection, char *packet,
+ struct connection *connection, char const *packet,
int packet_size)
{
int retval;
if (retval != ERROR_OK)
return ERROR_TARGET_FAILURE;
- char *out_str = (char *)calloc(1, 350 * sizeof(int64_t));
+ char *out_str = calloc(1, 350 * sizeof(int64_t));
char *tmp_str = out_str;
tmp_str += sprintf(tmp_str, "m");
struct threads *temp = linux_os->thread_list;
}
gdb_put_packet(connection, out_str, strlen(out_str));
+ free(out_str);
return ERROR_OK;
}
int linux_gdb_thread_update(struct target *target,
- struct connection *connection, char *packet,
+ struct connection *connection, char const *packet,
int packet_size)
{
int found = 0;
if (found == 1) {
/*LOG_INFO("INTO GDB THREAD UPDATE FOUNDING START TASK");*/
- char *out_strr = (char *)calloc(1, 350 * sizeof(int64_t));
+ char *out_strr = calloc(1, 350 * sizeof(int64_t));
char *tmp_strr = out_strr;
tmp_strr += sprintf(tmp_strr, "m");
/*LOG_INFO("CHAR MALLOC & M DONE");*/
}
int linux_thread_extra_info(struct target *target,
- struct connection *connection, char *packet,
+ struct connection *connection, char const *packet,
int packet_size)
{
int64_t threadid = 0;
char *pid_current = "*PID: ";
char *name = "NAME: ";
int str_size = strlen(pid) + strlen(name);
- char *tmp_str = (char *)calloc(1, str_size + 50);
+ char *tmp_str = calloc(1, str_size + 50);
char *tmp_str_ptr = tmp_str;
/* discriminate current task */
tmp_str_ptr += sprintf(tmp_str_ptr, "%s", " | ");
sprintf(tmp_str_ptr, "%s", name);
sprintf(tmp_str_ptr, "%s", temp->name);
- char *hex_str = (char *)calloc(1, strlen(tmp_str) * 2 + 1);
+ char *hex_str = calloc(1, strlen(tmp_str) * 2 + 1);
int pkt_len = hexify(hex_str, tmp_str, 0, strlen(tmp_str) * 2 + 1);
gdb_put_packet(connection, hex_str, pkt_len);
free(hex_str);
}
int linux_gdb_T_packet(struct connection *connection,
- struct target *target, char *packet, int packet_size)
+ struct target *target, char const *packet, int packet_size)
{
int64_t threadid;
struct linux_os *linux_os = (struct linux_os *)
}
int linux_gdb_h_packet(struct connection *connection,
- struct target *target, char *packet, int packet_size)
+ struct target *target, char const *packet, int packet_size)
{
struct linux_os *linux_os = (struct linux_os *)
target->rtos->rtos_specific_params;
return ERROR_OK;
}
-static int linux_thread_packet(struct connection *connection, char *packet,
+static int linux_thread_packet(struct connection *connection, char const *packet,
int packet_size)
{
int retval = ERROR_OK;