joel.bertrand at systella.fr
Sat Dec 4 16:14:16 CET 2010
I think I have misunderstood StringItem IPC but I don't know where is
My roottask spawns a thread that sends a stringitem to roottask. I have
checked with debugger that this stringitem contains my string :
si = L4_StringItem(str.length_trim, (void *) str.c);
str is a struct vms$string :
unsigned char *c;
My roottask receives this IPC in following function:
running = 1;
tag = L4_Wait(&partner);
if ((tag.raw & L4_REQUEST_MASK) == L4_PAGEFAULT)
sys$pagefault(partner, L4_Get(&msg, 0), L4_Get(&msg, 1),
"unknown IPC from $%lX "
"with label $%lX\n", L4_ThreadNo(partner),
tag = L4_ReplyWait(partner, &partner);
When system boots, I can intercept on serial line:
%SYS-F-PAGEFLT, pagefault request from $3C at $0000000000800110
%SYS-F-PAGEFLT, pagefault request from $3C at $000000000010FFF8
%SYS-F-PAGEFLT, pagefault request from $3C at $00000000008015C0
%SYS-F-PAGEFLT, pagefault request from $3C at $0000000000801C10
%IPC-F-UNKNOWN, unknown IPC from $0 with label $0
Panic at sys$loop, sys/sys_loop.c line 73
Have a nice day !
<00> [$000000000104F5B8] -> $0000000001004ED5 (sys$loop)
<01> [$000000000104F838] -> $0000000001005813 (main)
Pagefault messages are written by sys$pagefault() subroutine. As
sys$loop() function writes 'Here!', it receives an IPC with CALL$PRINT
First question: I don't know how read this stringitem. I have tried
with msgbuff without any result. I suppose I have misunderstood how
StringItem IPC works.
Second question: I don't understand last line:
"%IPC-F-UNKNOWN, unknown IPC from $0 with label $0". I suppose this
error comes from a bad stringitem IPC.
I haven't found any stringitem IPC example. Help is welcome.
More information about the l4-hackers