On Thu, Jul 23, 2015 at 9:43 AM, <deco33000 at yandex.com> wrote:
> I am struggling on one field of a struct :
> http://fxr.watson.org/fxr/source/kern/kern_tc.c?v=FREEBSD10#L63
> I would like to understand what th_generation means please.
>
Seems to me you get a clue from: (
http://fxr.watson.org/fxr/source/kern/kern_tc.c?v=FREEBSD10#L192)
*/*** * Functions for reading the time.  We have to loop until we are
sure that** * the timehands that we operated on was not updated under
our feet.  See** * the comment in <sys/time.h> for a description of
these 12 functions.** */*>
> #ifdef FFCLOCK
> voidfbclock_binuptime
<http://fxr.watson.org/fxr/ident?v=FREEBSD10;i=fbclock_binuptime>(struct
bintime <http://fxr.watson.org/fxr/ident?v=FREEBSD10;i=bintime> *bt
<http://fxr.watson.org/fxr/ident?v=FREEBSD10;i=bt>)
> {
>         struct timehands
<http://fxr.watson.org/fxr/ident?v=FREEBSD10;i=timehands> *th;
>         unsigned int gen
<http://fxr.watson.org/fxr/ident?v=FREEBSD10;i=gen>;
>
>         do {
>                 th = timehands
<http://fxr.watson.org/fxr/ident?v=FREEBSD10;i=timehands>;
>                 gen
<http://fxr.watson.org/fxr/ident?v=FREEBSD10;i=gen> =
th->th_generation;
>                 *bt
<http://fxr.watson.org/fxr/ident?v=FREEBSD10;i=bt> = th->th_offset;
>                 bintime_addx
<http://fxr.watson.org/fxr/ident?v=FREEBSD10;i=bintime_addx>(bt
<http://fxr.watson.org/fxr/ident?v=FREEBSD10;i=bt>, th->th_scale *
tc_delta <http://fxr.watson.org/fxr/ident?v=FREEBSD10;i=tc_delta>(th));
>         } while (gen
<http://fxr.watson.org/fxr/ident?v=FREEBSD10;i=gen> == 0 || gen
<http://fxr.watson.org/fxr/ident?v=FREEBSD10;i=gen> !=
th->th_generation);
> }
>
> --
brandon s allbery kf8nh                               sine nomine associates
allbery.b at gmail.com                                  ballbery at
sinenomine.net
unix, openafs, kerberos, infrastructure, xmonad        http://sinenomine.net