In my current project, there is a xenomai thread in the user space,It doing the following things: 1.recieve the TIPC message from other services then handle it 2.recieve the packet from RTNet then handle it Program is probably as follows: while(1) { select(...); /*block and waiting for TIPC messages */ /*do something*/ do { ret = rt_dev_recvmsg(...,MSG_DONTWAIT); /*recieve packets from RTNet*/ /* do something */ } while(ret > 0); }
the RTNet stack will trigger a virtual interrupt(use the rtdm_nrtsig_pend) when recieved a packet,then the virtual interrupt handler will send a SIGUSR2 to the xenomai thread,...,at last the xenomai thread wake up.the problem is the xenomai thread will crash when calling rt_dev_recvmsg sometimes.i found that ops->operation##_nrt(i.e. ops->recvmsg_nrt) will be call(in the MAJOR_FUNCTION_WRAPPER_TH),but ops->recvmsg_nrt is NULL,so the xenomai thread crash. is my usage wrong?why the current domain become linux when executing xenomai syscall?by the way,what is the reason to remove CONFIG_XENO_OPT_ISHIELD? Thanks very much!! _______________________________________________ Xenomai-help mailing list Xenomai-help@gna.org https://mail.gna.org/listinfo/xenomai-help