On 10/29/2014 08:04 AM, Philippe Gerum wrote: > On 10/29/2014 07:56 AM, Registrierungen wrote: >> Addendum: >> I am using a x64 Kernel. >> Does it matter? > > No, it does not. Do you plan to debug with gdb as I suggested?
This is what you need to enable pipes with Alchemy: https://git.xenomai.org/xenomai-3.git/commit/?h=next&id=eb69a837eaab4cd6639772503c789de0a52906c0 https://git.xenomai.org/xenomai-3.git/commit/?h=next&id=caf0a0b4a3f279e3e4bd42e6b62bc09fab4fba94 > >> >> >> Am 28.10.2014 14:54, schrieb Philippe Gerum: >>> On 10/28/2014 02:44 PM, Registrierungen wrote: >>>> Thanks for your support. >>>> >>>> Unfortainly it din'twork for me. >>>> I patched and recompiled and installed xenomai and my app, >>>> but i have still the same error. >>>> >>>> Have you got another idea, or need some other informations from my side? >>> You may want to trace your app with gdb, configuring with >>> --enable-debug=full, then single-stepping in rt_pipe_create() to >>> pinpoint the failing call in there. >>> >>>> Sascha >>>> >>>> Am 28.10.2014 11:01, schrieb Philippe Gerum: >>>>> On 10/28/2014 10:25 AM, Registrierungen wrote: >>>>>> Hello, >>>>>> >>>>>> i try to switch with my working project from Xenomai 2.6 to 3.0rc >>>>>> Cobaltusing the native/alchemy skin. >>>>>> >>>>>> Creating tasks,etc. seems to works fine. >>>>>> >>>>>> If i try to open a pipe from the realtime taks using rt_pipe_create it >>>>>> returns with the error -88. >>>>> This is -ENOTSOCK, you can check all error codes there: >>>>> /usr/include/asm-generic/errno-base.h >>>>> /usr/include/asm-generic/errno.h >>>>> >>>>> ENOTSOCK is not raised by the alchemy API, so this must be a syscall >>>>> taking the wrong route to the glibc in the core lib. >>>>> Please try this patch: >>>>> >>>>> diff --git a/lib/alchemy/pipe.c b/lib/alchemy/pipe.c >>>>> index 93da9be..439a00f 100644 >>>>> --- a/lib/alchemy/pipe.c >>>>> +++ b/lib/alchemy/pipe.c >>>>> @@ -166,8 +166,8 @@ int rt_pipe_create(RT_PIPE *pipe, >>>>> } >>>>> if (poolsize > 0) { >>>>> - ret = setsockopt(pcb->sock, SOL_XDDP, XDDP_POOLSZ, >>>>> - &poolsize, sizeof(poolsize)); >>>>> + ret = __RT(setsockopt(pcb->sock, SOL_XDDP, XDDP_POOLSZ, >>>>> + &poolsize, sizeof(poolsize))); >>>>> if (ret) >>>>> goto fail_sockopt; >>>>> } >>>>> @@ -181,7 +181,7 @@ int rt_pipe_create(RT_PIPE *pipe, >>>>> memset(&saddr, 0, sizeof(saddr)); >>>>> saddr.sipc_family = AF_RTIPC; >>>>> saddr.sipc_port = minor; >>>>> - ret = bind(sock, (struct sockaddr *)&saddr, sizeof(saddr)); >>>>> + ret = __RT(bind(sock, (struct sockaddr *)&saddr, sizeof(saddr))); >>>>> if (ret) >>>>> goto fail_sockopt; >>>>> >>>>>> Has anything changed handling pipes in 3.0? >>>>> All user-visible changes are reported here: >>>>> http://localhost/xenomai/migrating-from-xenomai-2-x-to-3-x/ >>>>> >>>> >>> >> > > -- Philippe. _______________________________________________ Xenomai mailing list [email protected] http://www.xenomai.org/mailman/listinfo/xenomai
