diff --git a/apps/toybox/liteos_a_custom.config b/apps/toybox/liteos_a_custom.config index 03dbae418f4f4b32ed9e62c642514713f2ef7424..7628c2fa08bf01668b27454562de83ca94e1c948 100644 --- a/apps/toybox/liteos_a_custom.config +++ b/apps/toybox/liteos_a_custom.config @@ -1,7 +1,6 @@ -CONFIG_GETTY=y -CONFIG_MDEV=y -CONFIG_MDEV_CONF=y +# CONFIG_BASENAME is not set # CONFIG_CAL is not set +# CONFIG_CAT is not set # CONFIG_CATV is not set # CONFIG_CKSUM is not set # CONFIG_CRC32 is not set @@ -13,6 +12,7 @@ CONFIG_MDEV_CONF=y # CONFIG_CUT is not set # CONFIG_DF is not set # CONFIG_DIRNAME is not set +# CONFIG_ECHO is not set # CONFIG_ENV is not set # CONFIG_EXPAND is not set # CONFIG_FALSE is not set @@ -178,3 +178,9 @@ CONFIG_MDEV_CONF=y # CONFIG_SEQ is not set # CONFIG_SU is not set # CONFIG_SYNC is not set +# +# pending (see toys/pending/README) +# +# CONFIG_GETTY is not set +# CONFIG_MDEV is not set +# CONFIG_MDEV_CONF is not set diff --git a/fs/fat/os_adapt/fatfs.c b/fs/fat/os_adapt/fatfs.c index b6c02f02184ca5ca3b5cb9a5c1197ff68d5814db..8df522ab6862bc48dcb51ccd975238d4e9db226b 100644 --- a/fs/fat/os_adapt/fatfs.c +++ b/fs/fat/os_adapt/fatfs.c @@ -1416,6 +1416,9 @@ int fatfs_stat(struct Vnode *vp, struct stat* sp) time = fattime_transfer(finfo->fdate, finfo->ftime); sp->st_mtime = time; + /* Adapt to kstat member "long tv_sec" */ + sp->__st_mtim32.tv_sec = (long)time; + unlock_fs(fs, FR_OK); return 0; } diff --git a/fs/jffs2/src/vfs_jffs2.c b/fs/jffs2/src/vfs_jffs2.c index 63cbf3c6d72a108d8e499a39af5a5301bab104d2..4392295386ccfe1628665c5a3c3d5a4e0f9ef297 100644 --- a/fs/jffs2/src/vfs_jffs2.c +++ b/fs/jffs2/src/vfs_jffs2.c @@ -807,6 +807,11 @@ int VfsJffs2Stat(struct Vnode *pVnode, struct stat *buf) buf->st_mtime = node->i_mtime; buf->st_ctime = node->i_ctime; + /* Adapt to kstat member long tv_sec */ + buf->__st_atim32.tv_sec = (long)node->i_atime; + buf->__st_mtim32.tv_sec = (long)node->i_mtime; + buf->__st_ctim32.tv_sec = (long)node->i_ctime; + LOS_MuxUnlock(&g_jffs2FsLock); return 0; diff --git a/syscall/fs_syscall.c b/syscall/fs_syscall.c index b424b05b1a1701812907b6b7d730c5ffa8890bd3..c4f0af49189a1e67f7e6e28f388834f665dbd0dd 100644 --- a/syscall/fs_syscall.c +++ b/syscall/fs_syscall.c @@ -1206,7 +1206,7 @@ OUT: return ret; } -int SysStat(const char *path, struct stat *buf) +int SysStat(const char *path, struct kstat *buf) { int ret; char *pathRet = NULL; @@ -1225,7 +1225,7 @@ int SysStat(const char *path, struct stat *buf) goto OUT; } - ret = LOS_ArchCopyToUser(buf, &bufRet, sizeof(struct stat)); + ret = LOS_ArchCopyToUser(buf, &bufRet, sizeof(struct kstat)); if (ret != 0) { ret = -EFAULT; } @@ -1237,7 +1237,7 @@ OUT: return ret; } -int SysLstat(const char *path, struct stat *buffer) +int SysLstat(const char *path, struct kstat *buffer) { int ret; char *pathRet = NULL; @@ -1256,7 +1256,7 @@ int SysLstat(const char *path, struct stat *buffer) goto OUT; } - ret = LOS_ArchCopyToUser(buffer, &bufRet, sizeof(struct stat)); + ret = LOS_ArchCopyToUser(buffer, &bufRet, sizeof(struct kstat)); if (ret != 0) { ret = -EFAULT; } diff --git a/syscall/los_syscall.h b/syscall/los_syscall.h index 37429b88a3cdc52db139a72edb27f2e7b47bf956..1934673da6df2e5ba20f709b6f38322e128fe62e 100644 --- a/syscall/los_syscall.h +++ b/syscall/los_syscall.h @@ -55,6 +55,7 @@ #include "time.h" #include "sys/time.h" #include "sys/stat.h" +#include "sys/kstat.h" #ifdef LOSCFG_FS_VFS #include "sys/socket.h" #include "dirent.h" @@ -252,8 +253,8 @@ extern int SysFtruncate(int fd, off_t length); extern int SysStatfs(const char *path, struct statfs *buf); extern int SysStatfs64(const char *path, size_t sz, struct statfs *buf); -extern int SysStat(const char *path, struct stat *buf); -extern int SysLstat(const char *path, struct stat *buffer); +extern int SysStat(const char *path, struct kstat *buf); +extern int SysLstat(const char *path, struct kstat *buffer); extern int SysFstat(int fildes, struct stat *buf); extern int SysStatx(int fd, const char *restrict path, int flag, unsigned mask, struct statx *restrict stx); extern int SysFsync(int fd);