vcpu example problem

Adam Lackorzynski adam at os.inf.tu-dresden.de
Thu Aug 2 22:14:21 CEST 2012


Hi,

On Thu Aug 02, 2012 at 11:14:34 +0800, À×À×½¡ wrote:
> Hi,
>        I  am trying  to modify the vcpu example of l4re-snapshot to
> switch registers to execute my C function.But It doesn't work.
>        I have read some papers about l4linux tranplantion.and follow it .
>        To switch the process, I fill the vcpu_state_t structure with
> its registers.and call vcpu_resume_commit action.Then Jump to the ASM
> Code.
>        But problem arises when I want to jump from asm code to C
> function. What's the Problem? The Code is as following:

> #define SVC_MODE	0x00000013
> #define USR_MODE	0x00000010

> 
> asm volatile
> (
>   ".pushsection .text\n"
>   ".p2align 12         \t\n"
>   ".global my_super_code  \t\n"
>   "my_super_code:   \t\n"
> "	msr	cpsr_c, r7\t\n"
> "	mov	lr, r6   \t\n"
> "	mov	pc, r5   \t\n"
> //"       b       my_super_code \t\n"
> ".popsection"
> );

I think the problem is not the jump but the msr, which you cannot do in
user-land and which you probably can safely remove.



Adam
-- 
Adam                 adam at os.inf.tu-dresden.de
  Lackorzynski         http://os.inf.tu-dresden.de/~adam/




More information about the l4-hackers mailing list