On Thu, Jul 14, 2011 at 12:05:18PM -0700, Matthew Dempsky wrote:
> I'm unsure what values are best to pick for UTIME_NOW and UTIME_OMIT.
> The only restriction is that they be distinct integer values outside
> the valid range for tv_nsec values (i.e., [0, 999999999]). Values
> below are from Linux; OpenSolaris uses UTIME_NOW == -1 and UTIME_OMIT
> == -2.
Unless anyone objects, I'm going to change this to UTIME_OMIT == -1
and UTIME_NOW == -2. Rationale is weak, but:
- It should be slightly more efficient to check
(tv_nsec >= 0 && tv_nsec <= 999999999) ||
tv_nsec == UTIME_OMIT || tv_nsec == UTIME_NOW
if UTIME_OMIT and UTIME_NOW are contiguous with [0, 999999999].
The compiler should be able to optimize the test to simply
((u_long)tv_nsec + 2) <= 1000000001.)
- Making UTIME_OMIT == -1 means it has the same bit pattern as
VNOVAL. (Code shouldn't rely on this because they're logically
disjoint types, but I can imagine it being a convenience when
debugging VFS code that all 'noval' values are -1.)