On Apr. 01, 2009, 11:05 +0300, Boaz Harrosh <bharrosh@xxxxxxxxxxx> wrote: > On 03/31/2009 09:52 PM, Benny Halevy wrote: >> On Mar. 31, 2009, 11:04 +0300, Andrew Morton <akpm@xxxxxxxxxxxxxxxxxxxx> wrote: >>> ~0 is signed 0xffffffff. >>> >>> When assigning to a u64 it gets signed extended to signed >>> 0xffffffffffffffff and then converted to unsigned 0xffffffffffffffff. >> Right (I think, I'm not sure in what order) >> >>> I think. Just as with plain old "-1". Perhaps using plain old "-1" >>> would be clearer here. >> or maybe ~0ULL or ~(uint64_t)0 to be extremely anal about it. >> >> Benny >> > > There is only one right way => ULLONG_MAX. Takes care of the human factor > too. (BTW that one is defined (~0ULL)) Ideally, since the variable is a uint64_t, you'd want a U64_MAX. unsigned long long may, at some point, be larger than uint64 on some architectures. With the available defs ~(uint64_t)0 or even just ~0 seem more portable... Benny > > Thanks > Boaz > -- To unsubscribe from this list: send the line "unsubscribe linux-fsdevel" in the body of a message to majordomo@xxxxxxxxxxxxxxx More majordomo info at http://vger.kernel.org/majordomo-info.html