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?
>
>
> 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