chenjing
e50cf0be6f
feat: fatfs支持符号链接功能
...
1 将fatfs_creat与fatfs_mkdir抽象成fatfs_creat_obj,通过参数type控制创建的对象类型;
2 新增fatfs_symlink与fatfs_readlink接口,其中:
1) fatfs_symlink通过fatfs_creat_obj创建出符号链接文件,并为其申请新簇,将target内容写入簇的第一个sector;
2) fatfs_readlink读出符号链接文件对应簇中第一个sector的内容
close #I3V8D1
Signed-off-by: chenjing <chenjing139@huawei.com>
Change-Id: I38dfaa28af156399817530923534d5b73b4c64af
2021-06-15 11:32:55 +08:00
chenjing
6eddc869d3
feat: support link/symlink/readlink
...
新增link/symlink/readlink接口的系统调用及内核实现,当前仅支持jffs2文件系统。具体接口说明如下:
一、hard link
接口原型:
int link(const char *oldpath, const char *newpath);
int linkat(int olddirfd, const char *oldpath, int newdirfd, const char *newpath, int flags);
作用:
创建oldpath的硬链接,名为newpath。
功能说明:
1、newpath与oldpath必须在同一挂载分区内。
2、若newpath已存在,不会覆盖,错误码EEXIST。
3、oldpath必须为普通文件或者软链接文件。
4、如果oldpath是一个软链接文件,那么:
若调用link接口或者linkat(flags=0),创建出软链接文件的硬链接;
若调用linkat(flags = AT_SYMLINK_FOLLOW),创建出软链接所指向源文件的硬链接。
5、oldpath与newpath对应同一个文件,对oldpath与newpath任一名字的操作都是直接操作文件,没有“原始文件”的说法。
6、使用cp命令拷贝一个硬链接文件,生成文件的拷贝,新文件的nlink数为1。
7、删除oldpath或newpath,底层文件仍存在,可以通过另一个path访问。只有当两个path都删除之后,才会真正将文件删除,空间释放。
二、symbol link
接口原型:
int symlink(const char *target, const char *linkpath);
int symlinkat(const char *target, int newdirfd, const char *linkpath);
作用:
创建一个软链接文件linkpath,存储字符串target。
功能说明:
1、target可以为任意字符串(长度小于PATH_MAX)。
2、若linkpath文件名已存在,不会覆盖,错误码EEXIST。
3、用readlink函数可读取软链接的target内容。
4、软链接文件本身大小为target长度。
5、ls时软链接文件类型显示为 'l'。
6、symlink最大循环次数为CONFIG_FS_MAX_LNK_CNT(目前为40),超出则返回错误,错误码ELOOP。
7、使用cp命令拷贝一个软链接文件:
若target是一个文件:创建一个源文件的拷贝,类型为普通文件;
若target非文件:拷贝失败。
三、readlink
接口原型:
ssize_t readlink(const char *pathname, char *buf, size_t bufsiz);
ssize_t readlinkat(int dirfd, const char *pathname, char *buf, size_t bufsiz);
作用:
读取软链接文件存放的的target内容。
功能说明:
1、pathname必须为软链接文件,否则错误码EINVAL。
2、如果bufsiz小于target长度,则截断target。
close #I3Q0OD
Change-Id: I3864d6069b627b705a369e8e32dc1eb922dc0157
Signed-off-by: chenjing <chenjing139@huawei.com>
2021-06-09 16:39:41 +08:00
openharmony_ci
6dee4ae603
!277 README_zh.md: update the incorrect link
...
Merge pull request !277 from zhangyanxian/master
2021-06-09 14:05:07 +08:00
openharmony_ci
413e02304d
!261 fix(build): clang10.0.1支持lto,去掉冗余判断
...
Merge pull request !261 from SimonLi/fix-lto
2021-06-09 14:03:52 +08:00
openharmony_ci
8c5b358bb1
!263 fix(build): 去除冗余单板相关的宏配置
...
Merge pull request !263 from SimonLi/fix-redundant-macro
2021-06-09 14:02:52 +08:00
openharmony_ci
3bf8cbc728
!301 修复SysOpenat返回的文件句柄不正确的问题
...
Merge pull request !301 from JING/openat
2021-06-09 13:50:40 +08:00
openharmony_ci
36462bcd7e
!305 内核态在console初始化完成后,使用printf无法正常打印
...
Merge pull request !305 from zhangfanfan2/master
2021-06-09 13:46:19 +08:00
openharmony_ci
1f8e5424f3
!306 refactor(mksh): reduce the mksh size by Oz
...
Merge pull request !306 from MGY917/mksh_size_reduce
2021-06-09 13:43:38 +08:00
openharmony_ci
ebb1305ba4
!288 修复shm用例多次执行时失败问题
...
Merge pull request !288 from lnlan/shm_test_fixed
2021-06-09 09:31:04 +08:00
Guangyao Ma
565b2e85cd
refactor(mksh): reduce the mksh size by Oz
...
clang不支持“-flto,-Oz”作为链接选项,但是可以作为编译选项,且作为编译选项时,有更好的size减少效果。这里为了使用这种
编译选项组合,且为了不影响链接过程(Build.sh链接时也会使用CFLAGS),在链接选项生效的-O选项中,重置其为O2。
最终size可以从300+k,缩减为不到180k。
Close #I3UVEV
Change-Id: If29ac4a058bcd40c4c36deb484c9468c93bcd1ec
Signed-off-by: Guangyao Ma <guangyao.ma@outlook.com>
2021-06-08 21:57:27 +08:00
YOUR_NAME
44ce696904
fix: 内核态在console初始化完成后,使用printf无法正常打印
...
printf实现流程上会调用cmd为TIOCGWINSZ的ioctl命令,该命令的实现
在console层ConsoleGetWinSize函数中,而此函数copy结果时使用函数
LOS_ArchCopyToUser,由于该过程在内核态,导致LOS_ArchCopyToUser失败,
从而引发printf无法正常打印的问题。
close: #I3UG00
Signed-off-by: zhangfanfan <zhangfanfan2@huawei.com>
Change-Id: I3e85f682429cbe30842206842ddb2a8388ec8412
2021-06-08 20:01:39 +08:00
openharmony_ci
1a3f3f54e7
!302 fix: Codex告警清零
...
Merge pull request !302 from Far/master
2021-06-08 08:48:48 +08:00
openharmony_ci
7d10057103
!300 codex问题修复
...
Merge pull request !300 from LeonChan/master
2021-06-08 08:48:30 +08:00
openharmony_ci
a94c6b09bd
!303 对toybox侵入式修改进行分离
...
Merge pull request !303 from Kiita/toybox_porting_210607
2021-06-07 23:06:23 +08:00
openharmony_ci
647f3defcd
!296 支持最小化特性编译,添加了一个针对qemu arm virt的样例config配置
...
Merge pull request !296 from Caoruihong/master
2021-06-07 22:51:46 +08:00
chenwei
101a55d119
fix: codex
...
1,VFS代码中不修改参数增加const修饰
2,fs_file_mapping.c: 增加安全函数的判空
3,path_cache.c: sizeof改为使用类型
4,fs_syscall.c: 对NULL解引用
5,VnodeLookup:冗余的判空,及不正确的判空
close: I3UMWD
Signed-off-by: yansira <yansira@hotmail.com>
2021-06-07 22:45:40 +08:00
Kiita
09756fe55b
refactor: 对toybox侵入式修改进行分离
...
【背景】当前liteos_a支持的toybox命令与linux存在差别,需要特别实现,为
避免侵入式修改,采用porting的方式将修改分离。
【修改方案】
在third_party/toybox下新增porting目录,以达到分离修改的目的。本次修改
基于porting目录且只涉及liteos目前支持的命令文件。
re #I3UQCK
Signed-off-by: yansira <yansira@hotmail.com>
Change-Id: I15d5835e25d5b5de6e0a6f888c87264c2f886cdf
2021-06-07 21:54:12 +08:00
chenjing
3457c0b11d
fix: SysOpenat返回值应该为进程fd,而非系统全局fd。
...
close #I3TNAK
Signed-off-by: chenjing <chenjing139@huawei.com>
Change-Id: Ie754259ead7fc8f4c3b0fa36ef31969dd728b235
2021-06-07 19:50:33 +08:00
lnlan
0676578aae
fix(kernel_test): 内核mem/shm冒烟用例重复运行失败
...
【背景】内核mem/shm冒烟用例概率性失败门禁中shm冒烟用例失败,经验证
与构建,不符合预期
【修改方案】
原内核用例的源文件是通过框架自带的source_set(一种虚拟静态库)的方式组织的,
不受unittests(自定义的一种方式)控制,修改为文件列表直接加入到unittest中。
【影响】
对现有的产品编译不会有影响。
re #I3TH4W
Signed-off-by: lnlanc <lanleinan@163.com>
Change-Id: If5452adb033c17ee0d7c7f683968fe53013ee289
2021-06-07 18:51:28 +08:00
Far
b5370af822
fix: codex clean
...
1. 修复可能对NULL指针解引用的场景
2. 将不修改内容的指针入参修改为const
3. 对getpgrp的返回值进行校验后再使用
4. 修复了局部变量未初始化的问题
Close #I3UOFN
Signed-off-by: Far <yesiyuan2@huawei.com>
2021-06-07 17:08:02 +08:00
Caoruihong
744b2021b2
chore: add a mini config for qemu arm virt
...
support turn off as many features as possible.
current only libc and posix and bsd can not be turned off.
Signed-off-by: Caoruihong <crh.cao@huawei.com>
Change-Id: I1e97570c67593207a56dc11f357eca4b4a018bfd
2021-06-05 17:40:22 +08:00
openharmony_ci
c39c10c978
!294 最新1.1版本的代码3516编译报错: Disk full
...
Merge pull request !294 from zhangfanfan2/master
2021-06-05 17:38:20 +08:00
openharmony_ci
efbab200aa
!254 memory-based romfs
...
Merge pull request !254 from LeonChan/lc-master
2021-06-04 23:22:25 +08:00
openharmony_ci
a580754751
!295 修复删除/dev目录下的文件但是vnode number没有减小的问题
...
Merge pull request !295 from LeonChan/lc-bugfix-vnode
2021-06-04 21:50:32 +08:00
openharmony_ci
e5bfe19b28
!289 A核proc文件系统在echo模式下新增write的功能
...
Merge pull request !289 from li_zan/master
2021-06-04 18:10:24 +08:00
chenwei
4f514a16af
fix: the total used vnode number not increased after unlink a file under
...
/dev/
fix #I3TS1Y
Signed-off-by: yansira <yansira@hotmail.com>
2021-06-04 16:49:04 +08:00
chenwei
c4595d2504
feat(file system): add memory-based romfs
...
1, this RomFS's codebase is Nuttx romfs, then it is compatible with
Linux RomFS and you can create such a file system using the tool genromfs.
2, there are two major changes against with the original Nuttx romfs:
1), it is memory-based: all contents of the fs are stored in the
memory in the very first stage of "mount".
2), this version of romfs is altered to be compatible with our new
version of VFS to take advantage of vnode cache and path cache.
close: #I3S0CP
2021-06-04 16:39:51 +08:00
openharmony_ci
eb7d977b3e
!290 timer_create支持SIGEV_THREAD
...
Merge pull request !290 from Kiita/timer_create_0603
2021-06-04 16:34:56 +08:00
li_zan
f10dd7c135
feat: A核proc文件系统在echo模式下新增write的功能
...
close: #I3T6MZ
Signed-off-by: li_zan <371442490@qq.com>
2021-06-04 16:14:18 +08:00
Kiita
e5f6bf0556
feat: timer_create支持以SIGEV_THREAD方式创建定时器
...
【背景】当前timer_create接口不支持以SIGEV_THREAD的方式创建多个定时器
【修改方案】
1、内核timer_create接口在创建software timers相应的线程时,使用线程
taskCB所携带的信息识别各个线程的信号并依据该信息分别派发出信号。
2、关于用户任务操作许可验证的修改,现在允许同一用户线程向其自身派发信
号,软件定时器计时结束,向用户态发送相应的信号,完成用户态线程的回调。
【影响】
对现有的产品暂无影响。
re #I3SRFI
Signed-off-by: yansira <yansira@hotmail.com>
Change-Id: Ia23f5ef01975bf867dd7f5db797a30c264c50501
2021-06-04 15:29:44 +08:00
YOUR_NAME
c54879b548
fix: 解决不同环境下计算的rootfs的size偏小,导致mcopy造成的disk full错误
...
构建环境的分区文件系统格式不同,会引起du命令计算文件夹size不同,当制作fat格式
的rootfs时,计算的rootfs文件夹的size比fat格式下的小, 则会导致mcopy过程出现
disk full错误。当前通过修正du计算的rootfs文件夹size的方式处理该问题。
close: #I3IA06
Signed-off-by: YOUR_NAME <zhangfanfan2@huawei.com>
Change-Id: I19c66e35c4382d768e020531a869e1e9186032a7
2021-06-04 14:53:09 +08:00
openharmony_ci
e93c52c091
!273 修复timer用例引起用户态挂死
...
Merge pull request !273 from lnlan/master0524
2021-06-04 13:56:11 +08:00
openharmony_ci
042f06e2b1
!260 【轻量级 PR】:fix: fix stored typo
...
Merge pull request !260 from jmxl/N/A
2021-06-04 13:54:53 +08:00
lnlan
0db43f24f5
fix(kernel_test):内核门禁稳定性调整,失败用例移除
...
【背景】
timer两条用例会导致测试进程异常退出
【修改方案】
将TIME_TEST_TZSET_001和TIME_TEST_TZSET_002两条用例从门禁中去掉
【影响】
对现有的产品编译不会有影响
re #I3SP0J
Signed-off-by: lnlanc <lanleinan@163.com>
Change-Id: Iad89b8ef4260a8d3202c496a39f3a185aec6744e
2021-06-03 19:42:08 +08:00
openharmony_ci
2067b2f648
!256 fix: 解决kill进程时无法保证进程持有的系统资源合理释放
...
Merge pull request !256 from zhushengle/Sig
2021-06-03 17:00:00 +08:00
openharmony_ci
e59693e7fa
!278 修复开机概率挂死
...
Merge pull request !278 from Zhaotianyu/0603initframework_fix
2021-06-03 14:50:39 +08:00
openharmony_ci
4d07d2e954
!274 优化内核用例架构
...
Merge pull request !274 from lnlan/notest_nobuild
2021-06-03 14:39:07 +08:00
openharmony_ci
db38464778
!282 fix: 修复MagicKey数组越界访问
...
Merge pull request !282 from MGY917/master
2021-06-03 11:52:17 +08:00
Guangyao Ma
071cd6268a
fix: 修复MagicKey数组越界访问
...
closes #I3U4N9
Signed-off-by: Guangyao Ma <guangyao.ma@outlook.com>
Change-Id: Ic4c4c7442cd381d03d2e40a51655a17299c4c250
2021-06-03 11:11:21 +08:00
arvinzzz
2e82c361f7
fix: 修复开机概率挂死
...
close:#I3SWY2
Change-Id: Ied2a5828ffb682903e291dab4088020033d79230
Signed-off-by: arvinzzz <fcykztyu@163.com>
2021-06-03 09:43:27 +08:00
zhangyanxian
a00cce8128
README_zh.md: update the correct links
...
当前链接点进去后会提示:你所访问的页面不存在!
更新正确的链接信息
Signed-off-by: zhang yanxian <zhangyanxianmail@163.com>
2021-06-03 09:24:50 +08:00
openharmony_ci
25f1051d7a
!269 修复启动框架debug模式编译问题
...
Merge pull request !269 from Zhaotianyu/0526initframework_fix
2021-06-02 16:50:35 +08:00
arvinzzz
4c024159a9
fix: 修复启动框架debug模式下-Werror=maybe-uninitialized告警以及符号链接不进镜像的隐患
...
close: #I3T5HR
Change-Id: I2e2452d59c82726614fb78d1177d3f0f03d6e315
Signed-off-by: arvinzzz <fcykztyu@163.com>
Change-Id: I7f0b44c15a296bd8d15f0bf1fbdde60f67bb0a6c
2021-06-02 09:31:51 +08:00
lnlan
9bdf716407
feat(build): 使用xts -notest选项时,内核用例不参与编译构建和用例编译配置方式调整
...
【背景】
1.编译新增-notest选项为了排除用例参与构建,使用该选项时内核用例仍会参与构建,不符合预期
2.用例编译配置选项太多,需调整优化
【修改方案】
1.原内核用例的源文件是通过框架自带的source_set(一种虚拟静态库)的方式组织的,
不受unittests(自定义的一种方式)控制,修改为文件列表直接加入到unittest中。
2.编译配置通过level控制
【影响】
对现有的产品编译不会有影响。
Change-Id: I2c6a96e7276346de96f222b725d417418ff0e537
2021-05-29 17:58:39 +08:00
zhushengle
cf89f016e9
fix: 解决kill进程时无法保证进程的已持有的内核资源合理释放.
...
背景: 当前信号实现原理是在系统调用结束和中断结束时检查是否有信号处理,
如果有信号处理就切去处理信号,信号处理结束后回来继续按原来流程执行。
问题:当用户态线程在执行系统调用或缺页异常时,运行在内核态,如果此时有信
号需要处理,且该线程已经持有了部分内核资源(如:锁,内存等), 此时如
果有中断发生,则在中断结束时,就会去处理该信号,此时用户态线程持有
了内核未释放的资源跑到了用户态去运行,如果该线程在用户态出现问题,
那么它持有的内核资源就无法被释放了。
方案:用户态线程在执行系统调用和缺页异常时暂时屏蔽信号,防止此时有中断去
处理信号,等系统调用结束或缺页异常结束时再去处理信号。
解决的问题:
1. 执行系统调用或缺页异常时屏蔽信号,防止中断去处理信号
2.解决无法kill 因为用户态的锁、ipc等阻塞的用户态线程
3.进程退出方式转变为: 依次通过kill去杀死该进程的所有线程
Close #I3S0N0
Change-Id: I0c48b9c89382826191b8a9326c71b57ba84124c2
2021-05-24 14:29:37 +08:00
openharmony_ci
3f16f1684a
!248 fix: fix length typo
...
Merge pull request !248 from kenneth/los_queue.h
2021-05-22 09:13:46 +08:00
openharmony_ci
bfc788e27b
!267 关闭jffs和fat后,rootfs配置也被相应关闭,导致nand介质的rootfs不可用
...
Merge pull request !267 from zhangfanfan2/master
2021-05-21 23:26:15 +08:00
zhangfanfan2
0ea476b974
fix: 关闭jffs和fat后,rootfs配置也被相应关闭,导致nand介质的rootfs不可用。
...
close: #I3SBYN
2021-05-21 17:41:30 +08:00
openharmony_ci
f5c5a69162
!265 删除exc interaction残留宏以及无用函数声明
...
Merge pull request !265 from Zhaotianyu/0521
2021-05-21 16:21:16 +08:00
openharmony_ci
a3cef3f176
!264 补充TODOList
...
Merge pull request !264 from Denny/DennyShen-master-patch-73167
2021-05-21 15:17:08 +08:00