Jan Kiszka wrote: > On 14.10.18 21:27, Sebastian Smolorz wrote: > > Hello Philippe or Jan, > > > > I need to retrieve the socket file descriptor from an RTDM device driver > > routine. From what I have seen there is no simple way to obtain this int > > value from struct rtdm_fd. I have identified three possible ways to do > > this, all of them necessitate modification of Xenomai code outside the > > driver: > > > > 1. Iterate over the rb_tree rtdm_fd->owner->fds by means of the macro > > xntree_for_each_entry(pos, root, member). For this macro to work the > > definition of struct rtdm_fd_index must be known to the driver which > > means that it would have to be moved from kernel/cobalt/rtdm/fd.c to > > e.g. include/cobalt/kernel/rtdm/fd.h. > > > > 2. Similar to 1. but offer a new function rtdm_fd_get_ufd(struct rtdm_fd > > *fd) in which the rb_tree is searched. > > > > 3. Introduce a new value "int ufd" in struct rtdm_fd for setting and > > getting the ufd directly (which would be overkill I suppose because the > > vast majority of drivers don't need it). > > OTOH, that structure is not really optimized for size. So I do not see why it > shouldn't take yet another int, which would also be a faster API than the > other > options.
Correct. Nevertheless, we could mitigate the effect of this change by surrounding the new ufd field with #ifdef CONFIG_XENO_DRIVERS_NET_RTIPV4_TCP -- Sebastian _______________________________________________ Xenomai mailing list Xenomai@xenomai.org https://xenomai.org/mailman/listinfo/xenomai