Hi Björn!
Why do you need Linux functions to do L4 IPC? We need them, because we want to provide (L4)Linux kernel features to other L4/L4Linux tasks.
Sleeping in IPC in an IRQ context works. Have a look at drivers/net/l4ore.c - this is a network driver interfacing the ORe network server. It runs in IRQ context and does blocking IPC to an external server. Yes, but that's the other way round - that's already working. I was talking about the IPC-*Server* side where you might run into a *Linux* function that wants to go into *Linux* sleep which normally causes scheduling within Linux.
This is a known limitation of the L4v2 API and there are many packages in the L4 tree that handle these situations, for instance l4/pkg/l4vfs/term_server, and l4/pkg/ore. Yes, I know that. I also described a way how it can be handled. What I was asking for, was *another* way, a simpler way of solving this problem.
AFAIR there is a discussion (or even more) about "separated" IPC where some arbitrary thread of a task may reply to an incoming IPC to another thread of that task. Regards Oskar. -- Sirrix AG security technologies - http://www.sirrix.com Oskar Senft eMail: o.senft@sirrix.com Tel +49 (681) 936 251 - 119 Fax +49 (681) 936 251 - 519 get public key from keyserver Fingerprint 6FC6 3E44 233F 7F4B 33C7 A8D0 2EDA F3BA B5A3 0BA4 This message may contain confidential and/or privileged information. If you are not the addressee, you must not use, copy, disclose or take any action based on this message or any information herein. If you have received this message in error, please advise the sender immediately by reply e-mail and delete this message.