Re: Make remote-m32r-sdi target already register a main thread

Pedro Alves
2008-08-08T02:48:08Z

[-- Attachment #1: Type: text/plain, Size: 561 bytes --]

On Friday 08 August 2008 03:19:56, Daniel Jacobowitz wrote:
> On Fri, Aug 08, 2008 at 03:03:55AM +0100, Pedro Alves wrote:
> > This adjust the remote-m32r-sdi target to add a thread to gdb's thread
> > table.
> >
> > I've no means to test this, although the changes are very similar
> > to what I've done to monitor.c, and remote-sim.c, the latter I
> > did test at the time I changed it.
> >
> > OK?
>
> OK.

Thanks!

I checked it in, ..., only to realise afterwards that I missed
two target methods. I've checked in the attached as obvious.

--
Pedro Alves

[-- Attachment #2: remote-m32r_thread_alive.diff --]
[-- Type: text/x-diff, Size: 2058 bytes --]

Index: ChangeLog
===================================================================
RCS file: /cvs/src/src/gdb/ChangeLog,v
retrieving revision 1.9620
diff -u -p -r1.9620 ChangeLog
--- ChangeLog 8 Aug 2008 02:34:08 -0000 1.9620
+++ ChangeLog 8 Aug 2008 02:44:33 -0000
@@ -1,5 +1,10 @@
2008-08-08 Pedro Alves <pedro@codesourcery.com>

+ * remote-m32r-sdi.c (m32r_thread_alive, m32r_pid_to_str): New.
+ (init_m32r_ops): Register m32r_thread_alive and m32r_pid_to_str.
+
+2008-08-08 Pedro Alves <pedro@codesourcery.com>
+
* remote-m32r-sdi.c: Include "gdbthread.h".
(remote_m32r_ptid): New.
(m32r_close): Delete the main thread.
Index: remote-m32r-sdi.c
===================================================================
RCS file: /cvs/src/src/gdb/remote-m32r-sdi.c,v
retrieving revision 1.32
diff -u -p -r1.32 remote-m32r-sdi.c
--- remote-m32r-sdi.c 8 Aug 2008 02:34:10 -0000 1.32
+++ remote-m32r-sdi.c 8 Aug 2008 02:44:33 -0000
@@ -1490,6 +1490,34 @@ m32r_stopped_by_watchpoint (void)
return m32r_stopped_data_address (&current_target, &addr);
}

+/* Check to see if a thread is still alive. */
+
+static int
+m32r_thread_alive (ptid_t ptid)
+{
+ if (ptid_equal (ptid, remote_m32r_ptid))
+ /* The main task is always alive. */
+ return 1;
+
+ return 0;
+}
+
+/* Convert a thread ID to a string. Returns the string in a static
+ buffer. */
+
+static char *
+m32r_pid_to_str (ptid_t ptid)
+{
+ static char buf[64];
+
+ if (ptid_equal (remote_m32r_ptid, ptid))
+ {
+ xsnprintf (buf, sizeof buf, "Thread ");
+ return buf;
+ }
+
+ return normal_pid_to_str (ptid);
+}

static void
sdireset_command (char *args, int from_tty)
@@ -1612,6 +1640,8 @@ init_m32r_ops (void)
m32r_ops.to_mourn_inferior = m32r_mourn_inferior;
m32r_ops.to_stop = m32r_stop;
m32r_ops.to_log_command = serial_log_command;
+ m32r_ops.to_thread_alive = m32r_thread_alive;
+ m32r_ops.to_pid_to_str = m32r_pid_to_str;
m32r_ops.to_stratum = process_stratum;
m32r_ops.to_has_all_memory = 1;
m32r_ops.to_has_memory = 1;