Yaffs_checkptrw

1.static int apply_chunk_offset(struct yaffs_dev *dev, int chunk)
{return chunk - dev->chunk_offset;}//得到chunk偏移量
2.static int apply_block_offset(struct yaffs_dev *dev, int block)
{return block - dev->block_offset;}//得到block偏移量
3.static void yaffs2_checkpt_init_chunk_hdr(struct yaffs_dev *dev)
memcpy(dev->checkpt_buffer, &hdr, sizeof(hdr));//初始化校验缓冲区
4.static int yaffs2_checkpt_check_chunk_hdr(struct yaffs_dev *dev)//检测校验区的chunk的校验位
5.static int yaffs2_checkpt_space_ok(struct yaffs_dev *dev)
int blocks_avail = dev->n_erased_blocks - dev->param.n_reserved_blocks;//检测是否有空闲块,如果没有返回0,否则返回1
6.static int yaffs_checkpt_erase(struct yaffs_dev *dev)
7.static void yaffs2_checkpt_find_erased_block(struct yaffs_dev *dev)//检查是或否找到可擦除的块
8.static void yaffs2_checkpt_find_block(struct yaffs_dev *dev)//检查块是否被找到
9.int yaffs2_checkpt_open(struct yaffs_dev *dev, int writing)//检测是否可以写,如果不可以返回0,否则返回擦除状态
if (writing) {
memset(dev->checkpt_buffer, 0, dev->data_bytes_per_chunk);
yaffs2_checkpt_init_chunk_hdr(dev);
return yaffs_checkpt_erase(dev);
10.int yaffs2_get_checkpt_sum(struct yaffs_dev *dev, u32 * sum)//懂不起
{
u32 composite_sum;composite_sum = (dev->checkpt_sum << 8) | (dev->checkpt_xor & 0xff);
*sum = composite_sum;
return 1;
}
11.static int yaffs2_checkpt_flush_buffer(struct yaffs_dev *dev)//检验是否流进buffer缓冲
12.int yaffs2_checkpt_wr(struct yaffs_dev *dev, const void *data, int n_bytes)
if (!dev->checkpt_buffer)return 0;
if (!dev->checkpt_open_write)return -1;
Else return i;
如果缓冲区满则返回0,打开写失败返回-1,其他情况返回失败时候的字节号
13.int yaffs2_checkpt_rd(struct yaffs_dev *dev, void *data, int n_bytes)//类似于写
14.int yaffs_checkpt_close(struct yaffs_dev *dev)
if (dev->checkpt_buffer)
return 1;
else
return 0;
15.int yaffs2_checkpt_invalidate_stream(struct yaffs_dev *dev)
return yaffs_checkpt_erase(dev);

原文发布于微信公众号 - 瓜大三哥(xiguazai_tortoise)

原文发表时间:2016-05-26

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

发表于

我来说两句

0 条评论
登录 后参与评论

相关文章

来自专栏SAP梦心的SAP分享

【域控管理】父域的搭建

从这篇博文开始,所有的域控系统都是在虚拟机中创建的。 在VM里安装Windows Server 2008 R2的方法就不多说了,无脑式安装,略过不提。 进到系统...

3998
来自专栏云计算教程系列

如何在Ubuntu 16.04上将BIND配置为专用网络DNS服务器

管理服务器配置和基础架构的一个重要部分包括通过设置适当的域名系统(DNS),维护一种通过名称查找网络接口和IP地址的简便方法。使用完全限定的域名(FQDN)而不...

8590
来自专栏蓝天

MOOON-agent更新:新增IHeartbeatHook接口

新增IHeartbeatHook接口的目的是让应用可以在心跳包中安插自己的数据,比如将自己的状态数据通过心跳带回去。

611
来自专栏月牙寂

k8s源码分析----apiserver之APIGroupVersion

第一时间获取文章,可以关注本人公众号 月牙寂道长 yueyajidaozhang

4664
来自专栏FreeBuf

Fortinet FortiClient的Windows系统提权登录漏洞(附PoC)

近期,Fortinet(飞塔)主机终端安全防护软件FortiClient,被曝在Windows登录界面处存在权限提升漏洞(CVE-2017-7344 ),可被攻...

2656
来自专栏木子昭的博客

nodejs爬虫获取漫威超级英雄电影海报

1713
来自专栏沈唁志

Chrome扩展JSON代码格式化高亮推荐-JSON-Handle

2424
来自专栏云计算教程系列

如何在Debian 9上将BIND配置为专用网络DNS服务器

管理服务器配置和基础架构的一个重要部分包括通过设置适当的域名系统(DNS),维护一种通过名称查找网络接口和IP地址的简便方法。使用完全限定的域名(FQDN)而不...

4654
来自专栏Laoqi's Linux运维专列

PHP相关配置

PHP相关配置 : 通过如下方式找到咱们的php配置文件,这才是真正的PHP配置文件! [root@localhost test3.com]# /usr/loc...

4306
来自专栏清风

Linux 时区修改以及时间同步 原

3523

扫码关注云+社区

领取腾讯云代金券