Related to the previous problem, I decided to bypass the L4 inlines and direclty use L4_Ipc.
I still have MR1 corrupted.
Do you somehow pass a clobber list to the compiler when compiling L4_Ipc()?
Thank you, Gabi Voiculescu
in main () ...... L4_LoadMR(1, 0x1234); //-gabi this MR is corrupted anyway L4_LoadMR(2, 0x5678); //-gabi this MR is corrupted anyway L4_LoadMR(3, 0x9012); L4_LoadMR(4, 0x3456); L4_LoadMR(5, 0xdead); L4_LoadMR(6, 0xbeef);
tag = L4_Make_MsgTag(0x1, 0); //label 0x1, flags send block//L4_MsgTag(); L4_Set_SendBlock(&tag); // L4_Set_MemoryCopy(&tag);
tag.X.u = 6;
tag = L4_Ipc(thread_l4tid(thread_tid[i]), L4_nilthread, tag, (L4_ThreadId_t *)0); ....... and in the thread:
L4_MsgLoad(&msg); // L4_Wait(&from_tid) detailed below: tag = L4_Niltag; L4_Set_ReceiveBlock(&tag); tag = L4_Ipc(L4_nilthread, L4_anythread, tag, &from_tid);
L4_MsgStore(tag, &msg); label = L4_Label(tag);
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. Thread: mr[0]=20001 Thread: mr[1]=8002c0b8 Thread: mr[2]=9012 <---from here on I have what I write Thread: mr[3]=3456 Thread: mr[4]=dead Thread: mr[5]=beef msg.tag.X.u = 6 L4_Label(tag) = 1
|
_______________________________________________
Developer mailing list
[hidden email]
https://lists.okl4.org/mailman/listinfo/developer