首页
学习
活动
专区
工具
TVP
发布

瓜大三哥

专栏作者
339
文章
528228
阅读量
91
订阅数
文件地址映射之yaffs_GetTnode
yaffs文件系统在更新文件数据的时候,会分配一块新的chunk,也就是说,同样的文件偏移地址,在该地址上的数据更新前和更新后,其对应的flash上的存储地址是不一样的。那么,如何根据文件内偏移地址确定flash存储地址呢?最容易想到的办法,就是在内存中维护一张映射表。由于 flash基本存储单位是chunk,因此,只要将以chunk描述的文件偏移量作为表索引,将flash chunk序号作为表内容,就可以解决该问题了。但是这个方法有几个问题,首先就是在做seek操作的时候,要从表项0开始按序搜索,对于大文
瓜大三哥
2018-02-24
7370
allocater
此程序相当于Linux里面的一个slab内存分配器 一、Slab 内存slab分配器最初思想来自Solaris的内核态小数据结构(一页以内)的内存分配,受到Solaris的影响,Linux内核也采用类似思想来减少页内碎片,其基本思想是:一次向内核获取整数页,slab根据数据结构的大小进行划分为一个个小的数据结构,当需要时直接从该链表上摘取一个返回应用程序,当应用程序释放时,而非真正释放,只需要该空间放回到链表中,当分散的一页多块又聚集一页时,又会拼成一页,同时判断slab空闲的页数,如果空闲页超过一定的页数
瓜大三哥
2018-02-24
5790
yaffs_attribs.c
1.void yaffs_load_attribs(struct yaffs_obj *obj, struct yaffs_obj_hdr *oh)//struct yaffs_obj_hdr//表示存在NAND上的object数据结构,将NAND上一些文件属性(时间)存入文件系统中 2.void yaffs_load_attribs_oh(struct yaffs_obj_hdr *oh, struct yaffs_obj *obj)//上述的逆过程 3.void yaffs_load_current_
瓜大三哥
2018-02-24
3750
yaffsfs.c
1.int yaffs_write(int fd, const void *buf, unsigned int nbyte)如果一个需要写入文件大于一个chunk咋办呢?(只是将不大于一个chunk的
瓜大三哥
2018-02-24
5520
没有更多了
社区活动
腾讯技术创作狂欢月
“码”上创作 21 天,分 10000 元奖品池!
Python精品学习库
代码在线跑,知识轻松学
博客搬家 | 分享价值百万资源包
自行/邀约他人一键搬运博客,速成社区影响力并领取好礼
技术创作特训营·精选知识专栏
往期视频·千货材料·成员作品 最新动态
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档