[EMSCB] L4Linux + IPC

Oskar Senft oskar.senft at crypto.rub.de
Wed May 3 11:53:53 CEST 2006


Hi!

Thank you for your reply!

> > Something as simple as
> > [...]
> > should work.
Hmm ... your examples work, indeed. Ours (using IPC) does not  :-(


#include <l4/sys/ipc.h>
#include <stdio.h>

int main(void)
{
  while (1) {
    l4_threadid_t src;
    l4_umword_t dword0, dword1;
    l4_msgdope_t result;

    // wait for IPC message until timeout reached
    if (l4_ipc_wait(&src,
        L4_IPC_SHORT_MSG,
        &dword0,
        &dword1,
        L4_IPC_TIMEOUT(0, 0, 1, 4, 0, 0), // wait for some time
        &result))
    {
        dword0 = 0;
    }
    printf("%lu\n", dword0);
  }

  return 0;
}

> > Are your user apps in the alien state? (Check with lp in jdb.)
26.00                      a   *.**    3s rcv,ipc_progr,alien

Seems so ... what does that mean? The above sample always blocks for
exactly the IPC wait time. Then it runs again (accepting input, eg. from
keyboard) and blocks again. It can be terminated by pressing CTRL-C as
the input seems to be queued until the IPC wait timeout expired.

As I previously said, our programs used to run with older DROPS versions
... what happened?

Best regards
Oskar.




More information about the l4-hackers mailing list