lkml.org 
[lkml]   [2002]   [Oct]   [20]   [last100]   RSS Feed
Views: [wrap][no wrap]   [headers]  [forward] 
 
Messages in this thread
/
Date
From
SubjectRe: [PATCH ] POSIX clocks & timers take 3 (NOT HIGH RES)
Stephen Rothwell wrote:
>
> Hi George,
>
> On Thu, 17 Oct 2002 16:10:26 -0700 george anzinger <george@mvista.com> wrote:
> >
> > +++ linux/include/asm-generic/siginfo.h Thu Oct 17 15:33:39 2002
> > @@ -43,8 +43,9 @@
> >
> > /* POSIX.1b timers */
> > struct {
> > - unsigned int _timer1;
> > - unsigned int _timer2;
> > + timer_t _tid; /* timer id */
> > + int _overrun; /* overrun count */
> > + sigval_t _sigval; /* same as below */
> > } _timer;
>
> This, of course, will only work on architectures where (sizeof(timer_t) +
> sizeof(int) + alignment padding for sigval_t) is the same as
> (sizeof(pid_t) + sizeof(uid_t) + alignment padding for sigval_t). Which is
> true as far as I can see, but is fragile. It might be worth a comment.

Hm..., yes, but I would rather express such things as
something that will cause the compiler to complain (i.e.
stop, not just warn). Possibly something like:

static int
dummy[sizeof(timer_t)+sizeof(int)-sizeof(pid_t)-sizeof(uid_t)];
static int
dummy2[sizeof(pid_t)+sizeof(uid_t)-sizeof(timer_t)-sizeof(int)-];

It is UGLY, but it does cause the right thing (i.e. a
failure) to happen when things are wrong.

Or we could do the same sort of thing on the offset of
_sigval in the several unions, which is what we really care
about.

Thanks for the comments.

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

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

\
 
 \ /
  Last update: 2005-03-22 13:30    [W:0.176 / U:0.324 seconds]
©2003-2020 Jasper Spaans|hosted at Digital Ocean and TransIP|Read the blog|Advertise on this site