l4-hackers Digest, Vol 112, Issue 3

raylei0825ssdut raylei0825ssdut at gmail.com
Fri Aug 3 13:37:21 CEST 2012

I just remove the statement "msr cpsr_c,r7". But It just doesn't Work. And If I change the code to the following:
I set the vcpu_state_t registers  as following :
  vcpu->r()->r[4]=(l4_umword_t)(idle_stack+sizeof(idle_stack)-1);  vcpu->r()->ip =(l4_umword_t)super_code_map_addr;  vcpu->r()->r[5] = (l4_umword_t)idle_code_map_addr;  vcpu->r()->sp = (l4_umword_t)0x30000;
and I change the my_super_code :
asm (    ".pushsection .text\n"  ".p2align 12         \t\n"  ".global my_super_code  \t\n"  "my_super_code:   \t\n"
" swi 0       \t\n"
" mov sp, r4   \t\n"" mov lr, r6   \t\n"" mov pc, r5   \t\n"".popsection");
and still, it doesn't work.And The vcpu upcall function 
will be called again and again.



发送时间:2012-08-03 18:00
主题:l4-hackers Digest, Vol 112, Issue 3
收件人:"l4-hackers"<l4-hackers at os.inf.tu-dresden.de>

Send l4-hackers mailing list submissions to 
    l4-hackers at os.inf.tu-dresden.de 

To subscribe or unsubscribe via the World Wide Web, visit 
or, via email, send a message with subject or body 'help' to 
    l4-hackers-request at os.inf.tu-dresden.de 

You can reach the person managing the list at 
    l4-hackers-owner at os.inf.tu-dresden.de 

When replying, please edit your Subject line so it is more specific 
than "Re: Contents of l4-hackers digest..." 

Today's Topics: 

   1. Re: vcpu example problem (Adam Lackorzynski) 


Message: 1 
Date: Thu, 2 Aug 2012 22:14:21 +0200 
From: Adam Lackorzynski <adam at os.inf.tu-dresden.de> 
To: l4-hackers at os.inf.tu-dresden.de 
Subject: Re: vcpu example problem 
Message-ID: <20120802201421.GA7129 at os.inf.tu-dresden.de> 
Content-Type: text/plain; charset=iso-8859-1 


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 at os.inf.tu-dresden.de 
  Lackorzynski         http://os.inf.tu-dresden.de/~adam/ 


l4-hackers mailing list 
l4-hackers at os.inf.tu-dresden.de 

End of l4-hackers Digest, Vol 112, Issue 3 
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://os.inf.tu-dresden.de/pipermail/l4-hackers/attachments/20120803/4e41787d/attachment.html>

More information about the l4-hackers mailing list