timer_create problem

Aitor.Viana.Sanchez at esa.int Aitor.Viana.Sanchez at esa.int
Thu Jun 14 07:25:54 UTC 2007


I just have changed the value of sigev.sigev_notify to SIGEV_SIGNAL (just 
to verify) and I got the same error.




rtems-users-bounces+aitor.viana.sanchez=esa.int at rtems.org wrote on 
13/06/2007 21:13:24:

> Aitor.Viana.Sanchez at esa.int wrote:
> >
> > Hi all,
> >
> > i am having a look to the CANFestival v3.0 trying to port it to RTEMS.
> > I get the code already running over RTEMS but I have a problem with
> > the timer_create POSIX function.
> >
> > The main.c source code gets inside the RTEMS configuration which
> > includes:
> >
> > ...
> > #define CONFIGURE_MAXIMUM_TIMERS            10
> > ...
> >
> > /** RTEMS Configuration */
> > #define CONFIGURE_MAXIMUM_RTEMS_TIMERS CONFIGURE_MAXIMUM_TIMERS
> > ...
> >
> > /** POSIX Configuration */
> > #define CONFIGURE_MAXIMUM_POSIX_TIMERS CONFIGURE_MAXIMUM_TIMERS
> > ...
> >
> > When I try to create a timer calling the timer_create routine:
> >         ....
> >
> >         memset (&sigev, 0, sizeof (struct sigevent));
> >         sigev.sigev_value.sival_int = 0;
> >         sigev.sigev_notify = SIGEV_THREAD;
> >         sigev.sigev_notify_attributes = NULL;
> >         sigev.sigev_notify_function = timer_notify;
> >
> >         status = timer_create (CLOCK_REALTIME, &sigev, &timer);
> >         if (status != 0)
> >                            MSG_ERR(errno, strerror(errno), status);
> >
> >         .....
> >
> > i got an error which is quite weird. I got the errno = 22 which is
> > "invalid argument", that means that the specified clockid
> > (CLOCK_REALTIME) is not defined. Nevertheless, i tried to call the
> > function clock_gettime, which also needs the clockid (CLOCK_REALTIME)
> > as a parameter, and i got no problem at all.
> >
> > I am using RTEMS 4.6.5.
> >
> > Do you have any idea that could help me to solve this problem ?
> >
> Looking in cpukit/posix/src/ptimer1.c, I see other reasons for EINVAL:

> if (evp != NULL) {
> /* The structure has data */
> if ( ( evp->sigev_notify != SIGEV_NONE ) &&
> ( evp->sigev_notify != SIGEV_SIGNAL ) ) {
> /* The value of the field sigev_notify is not valid */
> rtems_set_errno_and_return_minus_one( EINVAL );
> }

> if ( !evp->sigev_signo )
> rtems_set_errno_and_return_minus_one( EINVAL );
> 
> if ( !is_valid_signo(evp->sigev_signo) )
> rtems_set_errno_and_return_minus_one( EINVAL );
> }

> 
> It looks like SIGEV_THREAD is not currently supported.

> If you need it, I would be happy to give you an estimate on
> implementing it for you.

> Thanks.

> --joel
> > Cheers
> >
> >
> >
> > -----------------------------
> > Aitor Viana Sánchez
> >
> > ESA - European Space Technology Centre (ESTEC)
> > TEC-EDD - Data Handling and Computing Section
> > ESA/ESTEC P.O. Box 299 / 2200AG Noordwijk ZH, The Netherlands
> > Tel (+31) 71 565 6727
> > Email: aitor.viana.sanchez at esa.int
> > 
------------------------------------------------------------------------
> >
> > _______________________________________________
> > rtems-users mailing list
> > rtems-users at rtems.com
> > http://rtems.rtems.org/mailman/listinfo/rtems-users
> >

> _______________________________________________
> rtems-users mailing list
> rtems-users at rtems.com
> http://rtems.rtems.org/mailman/listinfo/rtems-users
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.rtems.org/pipermail/users/attachments/20070614/44d1acdc/attachment-0001.html>


More information about the users mailing list