vcpu example problem
adam at os.inf.tu-dresden.de
Thu Aug 2 22:14:21 CEST 2012
On Thu Aug 02, 2012 at 11:14:34 +0800, À×À×½¡ wrote:
> 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
> 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"
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 at os.inf.tu-dresden.de
More information about the l4-hackers