Re:Another question about L4 system call
Bob <[email protected]> Fri, 5 Sep 2008 14:07:08 +0800 (CST)
| Newsgroups | gmane.comp.micro-kernel.l4.l4ka.general |
|---|---|
| Message-ID | <29432216.187551220594828965.JavaMail.coremail@bj163app137.163.com> |
what's more, in file \user\lib\l4\ia32_syscall_init.cc
#define FIXUP(syscall) \
do { \
void __L4_##syscall (void); \
*(L4_Word8_t *) (__L4_##syscall) = 0xe9; \
*(L4_Word32_t *) ((L4_Word_t) __L4_##syscall + 1) = \
(L4_Word_t) kip + kip->syscall - (L4_Word_t) __L4_##syscall - 5;\
} while (0)
But kip has no filed named syscall, so how kip->syscall in this marco work.
Thanks , All
Bob
在2008-09-05,Bob <[email protected]> 写道:
Hi, All
I have another question about L4 system call.
I think all system call are implemented in system space. So only enter system level can execute it.
Now I saw the code just jmp to the system call address getted from kip_area. And then will
use "int SYSCALL_NUMBER" instruction enter system level or not.
But the system call address getted from kip_area is in system space. If don't enter system level first, isn't there a page fault will occur?
Anyone could tell me why ?
Thank you very much !
Bob
KFC骨肉相连优惠券