The problem seems to be that CONFIG_RTNET_SELECT_SUPPORT is not defined when
compiling rtnet.

In the rtnet configure script,  this is automatically defined when
$CONFIG_XENO_OPT_RTDM_SELECT is set to 'y',  but I have no idea how this is
supposed to be set.  It was certainly not set when I configured rtnet.

On Tue, Oct 12, 2010 at 4:27 PM, Gilles Chanteperdrix <
gilles.chanteperd...@xenomai.org> wrote:

> Johan Cockx wrote:
> >
> >
> > On Tue, Oct 12, 2010 at 3:38 PM, Gilles Chanteperdrix
> > <gilles.chanteperd...@xenomai.org
> > <mailto:gilles.chanteperd...@xenomai.org>> wrote:
> >
> >     Gilles Chanteperdrix wrote:
> >     > Johan Cockx wrote:
> >     >>
> >     >> On Tue, Oct 12, 2010 at 3:04 PM, Gilles Chanteperdrix
> >     >> <gilles.chanteperd...@xenomai.org
> >     <mailto:gilles.chanteperd...@xenomai.org>
> >     >>     > Ok: __real_socket is not called,  the
> >     XENOMAI_SKINCALL3(...) code
> >     >>     > returns zero in this case.
> >     >>
> >     >>     Ok. zero should be translated in something like 1024 - 128.
> >     And the
> >     >>     reverse operation happen in select code.
> >     >>
> >     >>
> >     >> If I understand you correctly,  the socket call is returning a
> valid
> >     >> Xenomai file descriptor as it should.  So, the next question is:
> >     why is
> >     >> this file descriptor (or the corresponding mask) not recognized
> >     as such
> >     >> in select()?  Do you have any further suggestions on how to debug
> >     this?
> >     >
> >     > As I just explained. verify that __wrap_socket returns 1024 - 128,
> or
> >     > something like that. And that this value gets translated back to 0
> in
> >     > select code.
> >
> >     Normally, since there is only one file descriptor in the fdset, the
> test
> >     which fails should be first_fp_valid_p.
> >
> >
> > I guess you are looking at the kernel code? I was still looking at the
> > user space code for __wrap_select.  The arguments of that function are
> > as expected: nfds=897, and the bit for file descriptor 896 is set in
> > __readfds. I guess the XENOMAI_SKINCALL5 macro expands to a kernel
> > call,  but sorry I have little experience with kernel programming.  Does
> > this go straight to the __select function in skins/posix/syscall.c?  I
> > can see the first_fp_valid_p call there.
>
> You can assume that it goes straight. It is a bit more complex than
> that, but the details do not really matter for this case.
>
> >
> > This is the function where I previously put a printk call.  I just
> > checked dmesg again,  and the printk'd message now appears (it seems
> > that `dmesg | tail -f` isn't working correctly for me, but `dmesg |
> > tail` is). Also, when I change syscall.c,  a `make-kpkg --rootcmd
> > fakeroot --initrd kernel_image|`| at the top of the source tree somehow
> > does not rebuild anything.  Until now, I have done a clean + complete
> > rebuild for the whole kernel for each change,  but that takes quite some
> > time.  Is there a better way to do this?
>
> Well, build your kernel without make_kpkg. But you can put printks all
> over the places in select code, this will save you compilations.
>
> --
>                                             Gilles.
>
------------------------------------------------------------------------------
Beautiful is writing same markup. Internet Explorer 9 supports
standards for HTML5, CSS3, SVG 1.1,  ECMAScript5, and DOM L2 & L3.
Spend less time writing and  rewriting code and more time creating great
experiences on the web. Be a part of the beta today.
http://p.sf.net/sfu/beautyoftheweb
_______________________________________________
RTnet-users mailing list
RTnet-users@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/rtnet-users

Reply via email to