fix: toybox命令升级
【背景】liteos_a toybox 命令升级升级 【修改方案】 1、help命令列表不支持命令删除。 2、cp命令和mv命令拷贝文件失败和文件损坏等问题修复。 3、修复du命令统计nfs文件大小为0问题修复。 4、修复ls命令nfs文件时间打印信息有误问题。 5、更新命令不支持入参列表。 re #I41N2A Signed-off-by: yansira <yansira@hotmail.com> Change-Id: I5f5b82e33ba9193ae06e9547182d5b7bac0a3b44
This commit is contained in:
parent
aaa9018acf
commit
76f45b3fb2
|
@ -1,7 +1,6 @@
|
||||||
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
|
||||||
# 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
|
||||||
# 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)
|
||||||
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)
|
||||||
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:
|
||||||
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)
|
||||||
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:
|
||||||
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)
|
||||||
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 @@
|
||||||
#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);
|
||||||
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);
|
||||||
|
|
Loading…
Reference in New Issue