Em Qua 08 Set 2004 21:36, YOSHIFUJI Hideaki / 吉藤英明 escreveu:
> In article <200409082127.57827.acme@xxxxxxxxxxxxxxxx> (at Wed, 8 Sep 2004
21:27:57 -0300), Arnaldo Carvalho de Melo <acme@xxxxxxxxxxxxxxxx> says:
> > Em Qua 08 Set 2004 21:24, YOSHIFUJI Hideaki / 吉藤英明 escreveu:
> > > In article <20040909000330.GA5581@xxxxxxxxxxxxxxxxxxx> (at Thu, 9 Sep
> > > 2004
> >
> > 10:03:31 +1000), Herbert Xu <herbert@xxxxxxxxxxxxxxxxxxx> says:
> > > > + u32 ecn = (iph->tos + 1) & INET_ECN_MASK;
> > > >
> > > > + /*
> > > > + * The following gives us:
> > > > + * INET_ECN_ECT_1 => check += __constant_htons(0xFFFD)
> > > > + * INET_ECN_ECT_0 => check += __constant_htons(0xFFFE)
> > > > + */
> > > > + if (__constant_htons(1) != 1)
> > > > + ecn <<= 8;
> > > > + check += __constant_htons(0xFFFB) + ecn;
> > > > +
> > > > iph->check = check + (check>=0xFFFF);
> > > > iph->tos |= INET_ECN_CE;
> > > > }
> > >
> > > s/__constant_htons/htons/g here, please.
> >
> > For Herbert understanding: the generated code is the same in this case.
> > :)
>
> Yes, thanks.
> And, we don't use __const_{hton,ntoh}{s,l}() unless it is really required.
> e.g. variable initializer
Yes, that is the only case, like I learned in my early janitor days, using the
__constant_ variations is not needed and makes the code needlessly ugly :)
|