* You should have received a copy of the GNU General Public License *
* along with this program; if not, write to the *
* Free Software Foundation, Inc., *
- * 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. *
+ * 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA. *
***************************************************************************/
#ifdef HAVE_CONFIG_H
return ERROR_FAIL;
}
#ifdef PHYS
- target->type->read_phys_memory(target, pa, size, count, buffer);
+ target_read_phys_memory(target, pa, size, count, buffer);
#endif
- target->type->read_memory(target, address, size, count, buffer);
+ target_read_memory(target, address, size, count, buffer);
return ERROR_OK;
}
{
if ((addr & 0xfffffffc) != addr)
- LOG_INFO("unaligned address %x!!", addr);
+ LOG_INFO("unaligned address %" PRIx32 "!!", addr);
int retval = linux_read_memory(target, addr, 4, 1, buffer);
return retval;
if (found == 0) {
LOG_ERROR
(
- "current thread %" PRIx64 ": no target to perform access of core id %x",
+ "current thread %" PRIx64 ": no target to perform access of core id %" PRIx32,
thread_id,
next->core_id);
return ERROR_FAIL;
/*LOG_INFO("thread %lx current on core %x",thread_id,
* target->coreid);*/
retval =
- target_get_gdb_reg_list(target, ®_list, ®_list_size);
+ target_get_gdb_reg_list(target, ®_list, ®_list_size,
+ REG_CLASS_GENERAL);
if (retval != ERROR_OK)
return retval;
for (i = 0; i < reg_list_size; i++)
reg_packet_size += reg_list[i]->size;
+ assert(reg_packet_size > 0);
+
*hex_reg_list = malloc(DIV_ROUND_UP(reg_packet_size, 8) * 2);
hex_string = *hex_reg_list;
int retval;
if (target_get_gdb_reg_list(head->target, ®_list,
- ®_list_size) != ERROR_OK) {
+ ®_list_size, REG_CLASS_GENERAL) != ERROR_OK) {
free(buffer);
return ERROR_TARGET_FAILURE;
}
LOG_ERROR
("error in linux current thread update");
- if (create) {
+ if (create && ct) {
struct threads *t;
t = calloc(1, sizeof(struct threads));
t->base_addr = ct->TS;
char *tmp_str = out_str;
tmp_str += sprintf(tmp_str, "m");
struct threads *temp = linux_os->thread_list;
- tmp_str += sprintf(tmp_str, "%016" PRIx64, temp->threadid);
- temp = temp->next;
while (temp != NULL) {
- tmp_str += sprintf(tmp_str, ",");
tmp_str += sprintf(tmp_str, "%016" PRIx64, temp->threadid);
temp = temp->next;
+ if (temp)
+ tmp_str += sprintf(tmp_str, ",");
}
gdb_put_packet(connection, out_str, strlen(out_str));
os_linux->threads_needs_update = 0;
os_linux->threadid_count = 1;
os_linux->current_threads = NULL;
- target->rtos->rtos_specific_params = (void *)os_linux;
+ target->rtos->rtos_specific_params = os_linux;
ct->core_id = target->coreid;
ct->threadid = -1;
ct->TS = 0xdeadbeef;
if (temp->context)
tmp +=
sprintf(tmp,
- "%d\t\t%d\t\t%x\t\t%s\n",
- (int)temp->pid, temp->oncpu,
+ "%" PRId32 "\t\t%" PRId32 "\t\t%" PRIx32 "\t\t%s\n",
+ temp->pid, temp->oncpu,
temp->asid, temp->name);
else
tmp +=
sprintf(tmp,
- "%d\t\t%d\t\t%x\t\t%s\n",
- (int)temp->pid, temp->oncpu,
+ "%" PRId32 "\t\t%" PRId32 "\t\t%" PRIx32 "\t\t%s\n",
+ temp->pid, temp->oncpu,
temp->asid, temp->name);
}