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

Reply via email to