From 2a72e90ab8969b69304d84aa7070720d63c60d06 Mon Sep 17 00:00:00 2001 From: Damien George Date: Mon, 31 Aug 2020 14:55:54 +1000 Subject: extmod/vfs: Add option to use 1970 as Epoch. By setting MICROPY_EPOCH_IS_1970 a port can opt to use 1970/1/1 as the Epoch for timestamps returned by stat(). And this setting is enabled on the unix and windows ports because that's what they use. Signed-off-by: Damien George --- extmod/vfs_fat.c | 3 +++ extmod/vfs_lfsx.c | 3 +++ 2 files changed, 6 insertions(+) (limited to 'extmod') diff --git a/extmod/vfs_fat.c b/extmod/vfs_fat.c index 79b0fc119..ace5ba5b6 100644 --- a/extmod/vfs_fat.c +++ b/extmod/vfs_fat.c @@ -319,6 +319,9 @@ STATIC mp_obj_t fat_vfs_stat(mp_obj_t vfs_in, mp_obj_t path_in) { (fno.ftime >> 5) & 0x3f, 2 * (fno.ftime & 0x1f) ); + #if MICROPY_EPOCH_IS_1970 + seconds += TIMEUTILS_SECONDS_1970_TO_2000; + #endif t->items[0] = MP_OBJ_NEW_SMALL_INT(mode); // st_mode t->items[1] = MP_OBJ_NEW_SMALL_INT(0); // st_ino t->items[2] = MP_OBJ_NEW_SMALL_INT(0); // st_dev diff --git a/extmod/vfs_lfsx.c b/extmod/vfs_lfsx.c index 9f5d9ce6d..d00df5310 100644 --- a/extmod/vfs_lfsx.c +++ b/extmod/vfs_lfsx.c @@ -366,6 +366,9 @@ STATIC mp_obj_t MP_VFS_LFSx(stat)(mp_obj_t self_in, mp_obj_t path_in) { ns = ns << 8 | mtime_buf[i - 1]; } mtime = timeutils_seconds_since_2000_from_nanoseconds_since_1970(ns); + #if MICROPY_EPOCH_IS_1970 + mtime += TIMEUTILS_SECONDS_1970_TO_2000; + #endif } #endif -- cgit v1.2.3