Johan Borkhuis wrote:
> I am trying to use semaphores inside my driver. It is a driver that can 
> be used as standard Linux driver and RTDM driver.
> 
> However, when I use rt_sem_p or rtdm_sem_timeddown in my read_nrt 
> function I get a -1 return value, indicating EPERM.

Your read_nrt function is only for non real-time tasks. So if you use a 
call to a service which requires primary execution mode of Xenomai it 
consequentially fails.

> When I look at the 
> thread state I see a value of 0x00400080, which indicates a standard 
> Linux thread. The rtdm-context is 0x00000001.
> The userspace thread has a thread state of 00300380.
> 
> What am I doing wrong here? How can I get a semaphore or other sync 
> mechanism to work inside my RTDM driver?

Use RTDM services inside the *_rt functions and plain Linux services 
inside the *_nrt functions of your driver.

-- 
Sebastian

_______________________________________________
Xenomai-help mailing list
[email protected]
https://mail.gna.org/listinfo/xenomai-help

Reply via email to