Messages in this thread | | | Date | Tue, 06 May 2003 13:12:09 -0700 | From | george anzinger <> | Subject | Re: [PATCH]: DELAYTIMER_MAX is defined |
| |
Eric Piel wrote: > Hello, > > Playing around with the posix timers I've noticed that DELAYTIMER_MAX is > not defined. This constant is specified in the POSIX specifications. It > should contain the maximum possible value of overruns on a signal. It is > also said that the overrun shouldn't overflow. cf > http://www.opengroup.org/onlinepubs/007904975/functions/timer_getoverrun.html > > So here is a patch to add this constant and a check that the overrun > variable never overflow. It's for 2.5.67 but should apply flawlessly to > 2.5.69 too. > Actually one could wonder if the test on the overflow is really needed > has an overrun reaching 2^31 seems very hard to happen. However the > constant definition is not hurting anything and looks necessary for > closer POSIX compliance.
I think this is needed in glibc. I am not sure how that relates to kernel defines.
-g > > Eric > > > ------------------------------------------------------------------------ > > diff -ur linux-2.5.67-ia64-hrtcore/include/linux/limits.h linux-2.5.67-ia64-hrtimers/include/linux/limits.h > --- linux-2.5.67-ia64-hrtcore/include/linux/limits.h 2003-04-22 11:10:44.000000000 +0200 > +++ linux-2.5.67-ia64-hrtimers/include/linux/limits.h 2003-05-06 13:45:48.000000000 +0200 > @@ -17,6 +17,8 @@ > #define XATTR_SIZE_MAX 65536 /* size of an extended attribute value (64k) */ > #define XATTR_LIST_MAX 65536 /* size of extended attribute namelist (64k) */ > > +#define DELAYTIMER_MAX INT_MAX /* # timer expiration overruns a POSIX.1b timer may have */ > + > #define RTSIG_MAX 32 > > #endif > diff -ur linux-2.5.67-ia64-hrtcore/include/linux/posix-timers.h linux-2.5.67-ia64-hrtimers/include/linux/posix-timers.h > --- linux-2.5.67-ia64-hrtcore/include/linux/posix-timers.h 2003-04-22 11:10:44.000000000 +0200 > +++ linux-2.5.67-ia64-hrtimers/include/linux/posix-timers.h 2003-05-06 16:07:56.000000000 +0200 > @@ -25,6 +59,7 @@ > > #define posix_bump_timer(timr) do { \ > (timr)->it_timer.expires += (timr)->it_incr; \ > - (timr)->it_overrun++; \ > + if ((timr)->it_overrun < DELAYTIMER_MAX)\ > + (timr)->it_overrun++; \ > }while (0) > #endif >
-- George Anzinger george@mvista.com High-res-timers: http://sourceforge.net/projects/high-res-timers/ Preemption patch: http://www.kernel.org/pub/linux/kernel/people/rml
- To unsubscribe from this list: send the line "unsubscribe linux-kernel" in the body of a message to majordomo@vger.kernel.org More majordomo info at http://vger.kernel.org/majordomo-info.html Please read the FAQ at http://www.tux.org/lkml/
| |