qemu-devel
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: [Qemu-devel] SPARC user mode multithread


From: David Munday
Subject: Re: [Qemu-devel] SPARC user mode multithread
Date: Fri, 6 Nov 2009 11:10:00 -0800 (PST)

Hi,
Sorry forgot attachment! I have attached it to this email now. I also noticed 
that the last line should assign the pid to the child, but I didn't see where I 
can find that info and pass it into the cpu_clone_regs function.

Thanks for the help,
David



----- Original Message -----
From: "Blue Swirl" <address@hidden>
To: "David Munday" <address@hidden>
Cc: address@hidden
Sent: Friday, November 6, 2009 10:31:23 AM GMT -08:00 US/Canada Pacific
Subject: Re: [Qemu-devel] SPARC user mode multithread

On Thu, Nov 5, 2009 at 10:29 PM, David Munday <address@hidden> wrote:
> Hi,
> I found the Linux/Sparc clone operations in copy_thread() from process32.c 
> (attached)

Forgot to attach?

> I tried modifying cpu_clone_regs with the following code per the Sparc/linux 
> routines, but qemu still stalls on signal suspend.
>
> It seems like it should only need to set the stack pointer and the return 
> addresses for the child and parent processes, but it's clearly missing 
> something.
>
> Is there more to this fix than these two assignments?
>
> static inline void cpu_clone_regs(CPUState *PARENT_env, CPUState *child_env, 
> target_ulong newsp)
> {
>    if (newsp)
>    {
>     child_env->regwptr[14] = newsp; //changed to 14 per process32.c DM
>         //env->regwptr[22] = newsp;

But 14 would be l6, not i6.

>     printf("setting stack pointer\n");
>    }
>    child_env->regwptr[0] = 0;

This should be the pid.

Attachment: process_32.c
Description: Text document


reply via email to

[Prev in Thread] Current Thread [Next in Thread]