[EMSCB] L4Linux + IPC

Oskar Senft o.senft at sirrix.com
Wed May 3 11:43:23 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.

-- 
Sirrix AG security technologies - http://www.sirrix.com
Oskar Senft  eMail: o.senft at sirrix.com
Tel +49 (681) 936 251 - 119   Fax +49 (681) 936 251 - 500
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.




More information about the l4-hackers mailing list