提交 76f45b3f 编写于 作者: Yansira's avatar Yansira

fix: toybox命令升级

【背景】liteos_a toybox 命令升级升级

【修改方案】
1、help命令列表不支持命令删除。
2、cp命令和mv命令拷贝文件失败和文件损坏等问题修复。
3、修复du命令统计nfs文件大小为0问题修复。
4、修复ls命令nfs文件时间打印信息有误问题。
5、更新命令不支持入参列表。

re #I41N2A
Signed-off-by: Yansira's avataryansira <yansira@hotmail.com>
Change-Id: I5f5b82e33ba9193ae06e9547182d5b7bac0a3b44
上级 aaa9018a
CONFIG_GETTY=y # CONFIG_BASENAME is not set
CONFIG_MDEV=y
CONFIG_MDEV_CONF=y
# CONFIG_CAL is not set # CONFIG_CAL is not set
# CONFIG_CAT is not set
# CONFIG_CATV is not set # CONFIG_CATV is not set
# CONFIG_CKSUM is not set # CONFIG_CKSUM is not set
# CONFIG_CRC32 is not set # CONFIG_CRC32 is not set
...@@ -13,6 +12,7 @@ CONFIG_MDEV_CONF=y ...@@ -13,6 +12,7 @@ CONFIG_MDEV_CONF=y
# CONFIG_CUT is not set # CONFIG_CUT is not set
# CONFIG_DF is not set # CONFIG_DF is not set
# CONFIG_DIRNAME is not set # CONFIG_DIRNAME is not set
# CONFIG_ECHO is not set
# CONFIG_ENV is not set # CONFIG_ENV is not set
# CONFIG_EXPAND is not set # CONFIG_EXPAND is not set
# CONFIG_FALSE is not set # CONFIG_FALSE is not set
...@@ -178,3 +178,9 @@ CONFIG_MDEV_CONF=y ...@@ -178,3 +178,9 @@ CONFIG_MDEV_CONF=y
# CONFIG_SEQ is not set # CONFIG_SEQ is not set
# CONFIG_SU is not set # CONFIG_SU is not set
# CONFIG_SYNC 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
...@@ -1416,6 +1416,9 @@ int fatfs_stat(struct Vnode *vp, struct stat* sp) ...@@ -1416,6 +1416,9 @@ int fatfs_stat(struct Vnode *vp, struct stat* sp)
time = fattime_transfer(finfo->fdate, finfo->ftime); time = fattime_transfer(finfo->fdate, finfo->ftime);
sp->st_mtime = time; sp->st_mtime = time;
/* Adapt to kstat member "long tv_sec" */
sp->__st_mtim32.tv_sec = (long)time;
unlock_fs(fs, FR_OK); unlock_fs(fs, FR_OK);
return 0; return 0;
} }
......
...@@ -807,6 +807,11 @@ int VfsJffs2Stat(struct Vnode *pVnode, struct stat *buf) ...@@ -807,6 +807,11 @@ int VfsJffs2Stat(struct Vnode *pVnode, struct stat *buf)
buf->st_mtime = node->i_mtime; buf->st_mtime = node->i_mtime;
buf->st_ctime = node->i_ctime; 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); LOS_MuxUnlock(&g_jffs2FsLock);
return 0; return 0;
......
...@@ -1206,7 +1206,7 @@ OUT: ...@@ -1206,7 +1206,7 @@ OUT:
return ret; return ret;
} }
int SysStat(const char *path, struct stat *buf) int SysStat(const char *path, struct kstat *buf)
{ {
int ret; int ret;
char *pathRet = NULL; char *pathRet = NULL;
...@@ -1225,7 +1225,7 @@ int SysStat(const char *path, struct stat *buf) ...@@ -1225,7 +1225,7 @@ int SysStat(const char *path, struct stat *buf)
goto OUT; goto OUT;
} }
ret = LOS_ArchCopyToUser(buf, &bufRet, sizeof(struct stat)); ret = LOS_ArchCopyToUser(buf, &bufRet, sizeof(struct kstat));
if (ret != 0) { if (ret != 0) {
ret = -EFAULT; ret = -EFAULT;
} }
...@@ -1237,7 +1237,7 @@ OUT: ...@@ -1237,7 +1237,7 @@ OUT:
return ret; return ret;
} }
int SysLstat(const char *path, struct stat *buffer) int SysLstat(const char *path, struct kstat *buffer)
{ {
int ret; int ret;
char *pathRet = NULL; char *pathRet = NULL;
...@@ -1256,7 +1256,7 @@ int SysLstat(const char *path, struct stat *buffer) ...@@ -1256,7 +1256,7 @@ int SysLstat(const char *path, struct stat *buffer)
goto OUT; goto OUT;
} }
ret = LOS_ArchCopyToUser(buffer, &bufRet, sizeof(struct stat)); ret = LOS_ArchCopyToUser(buffer, &bufRet, sizeof(struct kstat));
if (ret != 0) { if (ret != 0) {
ret = -EFAULT; ret = -EFAULT;
} }
......
...@@ -55,6 +55,7 @@ ...@@ -55,6 +55,7 @@
#include "time.h" #include "time.h"
#include "sys/time.h" #include "sys/time.h"
#include "sys/stat.h" #include "sys/stat.h"
#include "sys/kstat.h"
#ifdef LOSCFG_FS_VFS #ifdef LOSCFG_FS_VFS
#include "sys/socket.h" #include "sys/socket.h"
#include "dirent.h" #include "dirent.h"
...@@ -252,8 +253,8 @@ extern int SysFtruncate(int fd, off_t length); ...@@ -252,8 +253,8 @@ extern int SysFtruncate(int fd, off_t length);
extern int SysStatfs(const char *path, struct statfs *buf); extern int SysStatfs(const char *path, struct statfs *buf);
extern int SysStatfs64(const char *path, size_t sz, 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 SysStat(const char *path, struct kstat *buf);
extern int SysLstat(const char *path, struct stat *buffer); extern int SysLstat(const char *path, struct kstat *buffer);
extern int SysFstat(int fildes, struct stat *buf); 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 SysStatx(int fd, const char *restrict path, int flag, unsigned mask, struct statx *restrict stx);
extern int SysFsync(int fd); extern int SysFsync(int fd);
......
Markdown is supported
0% .
You are about to add 0 people to the discussion. Proceed with caution.
先完成此消息的编辑!
想要评论请 注册