HomeFreeBSD

Add two new functions to convert FAT filesystem format timestamps
rS163611Unpublished

Unpublished Commit ยท Learn More

No further details are available.

Description

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.

Details

Provenance
phkAuthored on
Parents
rS163610: Fix ttyv* device names.
Branches
Unknown
Tags
Unknown

Event Timeline