Re: L4_SYSCALL_INVOKE is a negat ive PC value?

Adam Lackorzynski <[email protected]>
Newsgroups gmane.comp.micro-kernel.l4.devel
Message-ID <[email protected]>
On Fri Sep 26, 2014 at 07:22:09 +0000, Zachary wrote:
> In cache.h file(..\l4\pkg\l4sys\include\ARCH-arm\cache.h), a piece of code 
> is as follows:
> 
> l4_cache_op_arm_call(unsigned long op,
>                      unsigned long start,
>                      unsigned long end)
> {
>   ...
> 
>   __asm__ __volatile__
>     ("@ l4_cache_op_arm_call(start) \n\t"
>      "mov     lr, pc	            \n\t"
>      "mov     pc, %[sc]	            \n\t"
>      "@ l4_cache_op_arm_call(end)   \n\t"
>        :
> 	"=r" (_op),
> 	"=r" (_start),
> 	"=r" (_end)
>        :
>        [sc] "i" (L4_SYSCALL_MEM_OP),
> 	"0" (_op),
> 	"1" (_start),
> 	"2" (_end)
>        :
> 	"cc", "memory", "lr"
>        );
> }
> 
> My question is whether the code means that PC jumps to the address of 
> L4_SYSCALL_MEM_OP(actual value is -0x00000010)? If it is true, then it means
> the address is 0xFFFFFFF0 ?

Yes.

> My second question is whether the address 0xFFFFFFF0 corresponds to the 
> sys_arm_mem_op in the following definition?
> (..\kernel\fiasco\src\kern\arm\asm_entry.h) 

Yes, the syscall table is used to find the function to branch to.



Adam
-- 
Adam                 [email protected]
  Lackorzynski         http://os.inf.tu-dresden.de/~adam/

_______________________________________________
l4-hackers mailing list
[email protected]
http://os.inf.tu-dresden.de/mailman/listinfo/l4-hackers
lmpx.com only provides a reader for public news (NNTP) servers. It is not affiliated with the servers or forums shown here and is not responsible for the content of articles, which is written by their respective authors.