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