Feature request
Alexei Mandrykine <[email protected]>
| Newsgroups | gmane.comp.micro-kernel.l4.l4ka.general |
|---|---|
| Message-ID | <[email protected]> |
Hello l4ka, Let us introduce a new bit in control word of ExchangeRegisters syscall. Bit F (0x400) that changes semantics of the FLAGS word. Thus if F bit set to 1 then FLAGS argument become a pointer to the memory in requestor's address space, which holds registers' and flag's state of requested thread. The format of structure, which holds registers' state, is not important. It depends on CPU type and could be any memory region with size enough to keep task state. BTW, you can define size of this structure in the KIP. Why F flag is needed? It can noticeably simplify implementation of POSIX signals, setjmp, longjmp functions, and fork syscall. Such approach allows making application programs more portable. Don't you believe me? For example, setjmp/longjmp functions can be implemented without assembler language. Another example - POSIX siganls. What will happen if signal arise inside function with register's varibale? Could anybody give a warranty that the signal handler function saves all registers? -- Best regards, Alexei mailto:[email protected]