<table cellspacing="0" cellpadding="0" border="0" ><tr><td valign="top" style="font: inherit;">Related to the previous problem, I decided to bypass the L4 inlines and direclty use L4_Ipc.<br><br>I still have MR1 corrupted. <br><br>Do you somehow pass a clobber list to the compiler when compiling L4_Ipc()?<br><br>Thank you,<br>Gabi Voiculescu<br><br>in main ()<br>......<br><span style="font-style: italic;"> L4_LoadMR(1, 0x1234); //-gabi this MR is corrupted anyway</span><br style="font-style: italic;"><span style="font-style: italic;"> L4_LoadMR(2, 0x5678); //-gabi </span><span style="font-style: italic;"> this MR is corrupted anyway</span><br style="font-style: italic;"><span style="font-style: italic;"> L4_LoadMR(3, 0x9012);</span><br style="font-style: italic;"><span style="font-style:
italic;"> L4_LoadMR(4, 0x3456);</span><br style="font-style: italic;"><span style="font-style: italic;"> L4_LoadMR(5, 0xdead);</span><br style="font-style: italic;"><span style="font-style: italic;"> L4_LoadMR(6, 0xbeef);</span><br style="font-style: italic;"><br style="font-style: italic;"><span style="font-style: italic;"> tag = L4_Make_MsgTag(0x1, 0); //label 0x1, flags send block//L4_MsgTag();</span><br style="font-style: italic;"><span style="font-style: italic;"> L4_Set_SendBlock(&tag);</span><br style="font-style: italic;"><span style="font-style: italic;"> // L4_Set_MemoryCopy(&tag);</span><br style="font-style: italic;"><span style="font-style: italic;">
tag.X.u = 6; </span><br style="font-style: italic;"><br style="font-style: italic;"><span style="font-style: italic;"> tag = L4_Ipc(thread_l4tid(thread_tid[i]), L4_nilthread, tag, (L4_ThreadId_t *)0);</span><br>.......<br>and in the thread:<br><br><span style="font-style: italic;"> L4_MsgLoad(&msg);</span><br style="font-style: italic;"><span style="font-style: italic;">// L4_Wait(&from_tid) detailed below:</span><br style="font-style: italic;"><span style="font-style: italic;"> tag = L4_Niltag;</span><br style="font-style: italic;"><span style="font-style: italic;"> L4_Set_ReceiveBlock(&tag);</span><br style="font-style: italic;"><span style="font-style: italic;"> tag = L4_Ipc(L4_nilthread, L4_anythread, tag, &from_tid);</span><br style="font-style: italic;"><br style="font-style: italic;"><span
style="font-style: italic;"> L4_MsgStore(tag, &msg);</span><br style="font-style: italic;"><span style="font-style: italic;"> label = L4_Label(tag);</span><br><br>Now I only have the first two MR's broken, but I can't explain why MR1 is broken since: I don't have an exception, I don't create a thread, or have a page fault.<br><span style="font-style: italic;">Thread: mr[0]=20001</span><br style="font-style: italic;"><span style="font-style: italic;">Thread</span><span style="font-style: italic;">: mr[1]=8002c0b8</span><br style="font-style: italic;"><span style="font-style: italic;">Thread</span><span style="font-style: italic;">: mr[2]=9012</span> <---from here on I have what I write<br style="font-style: italic;"><span style="font-style: italic;">Thread</span><span style="font-style: italic;">: mr[3]=3456</span><br style="font-style: italic;"><span style="font-style: italic;">Thread</span><span
style="font-style: italic;">: mr[4]=dead</span><br style="font-style: italic;"><span style="font-style: italic;">Thread</span><span style="font-style: italic;">: mr[5]=beef</span><br style="font-style: italic;"><span style="font-style: italic;">msg.tag.X.u = 6</span><br style="font-style: italic;"><span style="font-style: italic;">L4_Label(tag) = 1</span><br><br><br><br><br><br><br><br></td></tr></table><br>