Re : MR registers corrupted when using L4_Send, L4_Receive

1 message Options
Embed this post
Permalink
Gabi Voiculescu

Re : MR registers corrupted when using L4_Send, L4_Receive

Reply Threaded More More options
Print post
Permalink
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