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

Reply via email to