Re: Another question about L4 system call

Raphael Neider <[email protected]> Sun, 07 Sep 2008 18:24:10 +0200
Newsgroups gmane.comp.micro-kernel.l4.l4ka.general
Message-ID <[email protected]>
Hi,

> __L4_init_syscalls() then goes and writes into the .text section of the
> current address space (bad coding style, but fast), replacing the
> call __L4_init_syscalls
> in each of the library syscall wrappers with a jmp to the address of the
> trampoline in the KIP [...]

Strictly speaking, we do not write into the .text section (which is 
usually mapped read-only by sane pagers), but place the library syscall 
wrappers into writable, allocatable, and executable sections via

.section .data.syscalls, "wax", "progbits"

(see DEFINE_SYSCALL in user/lib/l4/ia32-syscall-stubs.S). This section 
is guaranteed to be writable and its use not quite as bad as using .text 
would be ;-) The idea, however, remains the same.
I just thought that writeable .text sections might be misleading and 
unnecessarily raise more questions.

Hoping this clarifies things a little further,
Raphael