diff --git a/firmware/target/hosted/filesystem-app.h b/firmware/target/hosted/filesystem-app.h index 68b3f13b6e..b35b63e95f 100644 --- a/firmware/target/hosted/filesystem-app.h +++ b/firmware/target/hosted/filesystem-app.h @@ -82,6 +82,7 @@ ssize_t app_write(int fildes, const void *buf, size_t nbyte); #endif /* HAVE_SDL_THREADS */ int app_remove(const char *path); int app_rename(const char *old, const char *new); +#define app_modtime os_modtime #define app_filesize os_filesize #define app_fsamefile os_fsamefile int app_relate(const char *path1, const char *path2); diff --git a/firmware/target/hosted/filesystem-hosted.h b/firmware/target/hosted/filesystem-hosted.h index 5147ef6db6..b9c7ce648a 100644 --- a/firmware/target/hosted/filesystem-hosted.h +++ b/firmware/target/hosted/filesystem-hosted.h @@ -33,6 +33,7 @@ void * os_lc_open(const char *ospath); #define _FILESYSTEM_HOSTED__FILE_H_ #ifndef OSFUNCTIONS_DECLARED +int os_modtime(const char *path, time_t modtime); off_t os_filesize(int osfd); int os_fsamefile(int osfd1, int osfd2); int os_relate(const char *path1, const char *path2); diff --git a/firmware/target/hosted/filesystem-unix.c b/firmware/target/hosted/filesystem-unix.c index 177cb574e0..f0d7de640d 100644 --- a/firmware/target/hosted/filesystem-unix.c +++ b/firmware/target/hosted/filesystem-unix.c @@ -23,6 +23,7 @@ #include #include #include +#include #include "config.h" #include "system.h" #include "file.h" @@ -35,6 +36,17 @@ #define SAME_FILE_INFO(sb1p, sb2p) \ ((sb1p)->st_dev == (sb2p)->st_dev && (sb1p)->st_ino == (sb2p)->st_ino) +int os_modtime(const char *path, time_t modtime) +{ + struct utimbuf times = + { + .actime = modtime, + .modtime = modtime, + }; + + return utime(path, ×); +} + off_t os_filesize(int osfd) { struct stat sb;