phk         2006-10-22 18:19:08 UTC

  FreeBSD src repository

  Modified files:
    sys/conf             files 
    sys/sys              clock.h 
  Added files:
    sys/kern             subr_fattime.c 
  Log:
  Add two new functions to convert FAT filesystem format timestamps
  to and from struct timespec, to replace the crummy conversion
  function which have been copy&pasted into three different
  filesystems already.
  
  Apart from general crummyness as indicated by code like:
  
          for (year = 1970;; year++) {
                  inc = year & 0x03 ? 365 : 366;
                  if (days < inc)
                          break;
                  days -= inc;
          }
  
  They also contain specialized crummyness which tries to compensate
  for the general crummyness by caching recent conversion results,
  with no regard for locking or consistency.
  
  These replacement functions are smaller, O(1) and handle the Y2.1K
  leap-year correctly.
  
  Ideally, these functions should live in a module of their own,
  which the three offending filesystems would depend on, but the
  size is 877 bytes of code (on i386), so that would be false
  economy.
  
  Revision  Changes    Path
  1.1153    +1 -0      src/sys/conf/files
  1.1       +304 -0    src/sys/kern/subr_fattime.c (new)
  1.6       +3 -0      src/sys/sys/clock.h
_______________________________________________
[email protected] mailing list
http://lists.freebsd.org/mailman/listinfo/cvs-all
To unsubscribe, send any mail to "[EMAIL PROTECTED]"

Reply via email to