Re: L4_SYSCALL_INVOKE is a negative PC value?

Zachary <[email protected]>
Newsgroups gmane.comp.micro-kernel.l4.devel
Message-ID <[email protected]>
Adam Lackorzynski <adam <at> os.inf.tu-dresden.de> writes:

> 
> 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__
> >     (" <at>  l4_cache_op_arm_call(start) \n\t"
> >      "mov     lr, pc	            \n\t"
> >      "mov     pc, %[sc]	            \n\t"
> >      " <at>  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

Thank you, Adam. Based on your reply, I have another question.

As the macro defined in L4Re source code, the branch adress is:
L4_SYSCALL_INVOKE		0xFFFFFFF4
L4_SYSCALL_MEM_OP		0xFFFFFFF0

This means the "L4_SYSCALL_INVOKE" is at the higher address.

And in asm_entry.h, the syscall table is:
.macro GEN_SYSCALL_TABLE
.align 4
.global sys_call_table
sys_call_table:
	...
	.word sys_kdb_ke
	.word sys_ipc_wrapper
	.word sys_arm_mem_op
	...
.endm

On the contrary, this table tells me that the "sys_ipc_wrapper" is at the 
lower address, so, why this happens? 

Best,
Zacary


_______________________________________________
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.