Hannes Mayer wrote: > Hi Jan! > > Jan Kiszka wrote: > [...] > >> Almost: ioaddr=0x3f8 > > > Yep, tried that too before, but disabling ttyS0 with setserial did the > trick :-) > >> Ok, we need some README about xeno_16550A somewhere. Where would you >> look for information first? > > > API-docs -> Modules -> Real-Time Driver Model -> Device Profiles -> > Serial Devices ?
Hmm, that part is intended to remain implementation indepent. Will have
to think about it.
>> How can I get rt_dev_ioctl to block ?
>
> AHA! Found it! :-)
>
> There is
> if (!rtdm_in_rt_context())
> return -EPERM;
> in rt_16550_ioctl(...)
>
> Silly me put a printf into it:
> ret = rt_task_set_mode(0, T_PRIMARY, NULL);
> [...]
> printf(RTASK_PREFIX "waiting for event\n");
> ret = rt_dev_ioctl(write_fd, RTSER_RTIOC_WAIT_EVENT, &rx_event );
> so the whole thing was not in RT anymore.
But this one IS documented! ;)
Well, the patch containing this check is rather new. Maybe it should
better read like this:
if (!rtdm_in_rt_context())
return -ENOSYS;
The result would be that the nucleus will try to switch the caller to RT
on return and restart the call afterwards. Then you shouldn't notice any
error. Patch in preparation...
Jan
signature.asc
Description: OpenPGP digital signature
