Yaffs_checkptrw
时间:2022-04-28
本文章向大家介绍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);
- 360春秋杯3道web题的简单分析
- Vue 2.0 学习总结,精华全在这里了
- 25.2 安装Docker
- 使用JDBC向Kudu表插入中文字符-cast的秘密
- 使用JDBC向Kudu表插入中文字符-双引号的秘密
- Yarn的JobHistory目录权限问题导致MapReduce作业异常
- 输入一个数字,然后计算出从1到输入数字的和,要求,如果输入的数字小于1,则重新输入,直到输入正确的数字为止
- Linux基础(day76)
- zabbix设置QQ邮箱告警
- 关于JSON CSRF的一些思考
- linux学习第七十篇:expect脚本同步文件,expect脚本指定host和要同步的文件,构建文件分发系统,批量远程执行命令
- linux学习第六十九篇:分发系统介绍,expect脚本远程登录,expect脚本远程执行命令,expect脚本传递参数
- linux学习第六十八篇:告警系统邮件引擎,运行告警系统
- linux学习第六十七篇:告警系统主脚本,告警系统配置文件,告警系统监控项目
- JavaScript 教程
- JavaScript 编辑工具
- JavaScript 与HTML
- JavaScript 与Java
- JavaScript 数据结构
- JavaScript 基本数据类型
- JavaScript 特殊数据类型
- JavaScript 运算符
- JavaScript typeof 运算符
- JavaScript 表达式
- JavaScript 类型转换
- JavaScript 基本语法
- JavaScript 注释
- Javascript 基本处理流程
- Javascript 选择结构
- Javascript if 语句
- Javascript if 语句的嵌套
- Javascript switch 语句
- Javascript 循环结构
- Javascript 循环结构实例
- Javascript 跳转语句
- Javascript 控制语句总结
- Javascript 函数介绍
- Javascript 函数的定义
- Javascript 函数调用
- Javascript 几种特殊的函数
- JavaScript 内置函数简介
- Javascript eval() 函数
- Javascript isFinite() 函数
- Javascript isNaN() 函数
- parseInt() 与 parseFloat()
- escape() 与 unescape()
- Javascript 字符串介绍
- Javascript length属性
- javascript 字符串函数
- Javascript 日期对象简介
- Javascript 日期对象用途
- Date 对象属性和方法
- Javascript 数组是什么
- Javascript 创建数组
- Javascript 数组赋值与取值
- Javascript 数组属性和方法
- Yii框架的redis命令使用方法简单示例
- Laravel如何实现自动加载类
- 在Laravel中实现使用AJAX动态刷新部分页面
- laravel 自定义常量的两种方案
- Thinkphp页面跳转设置跳转等待时间的操作
- Laravel 创建可以传递参数 Console服务的例子
- laravel实现查询最后执行的一条sql语句的方法
- 解决laravel groupBy 对查询结果进行分组出现的问题
- laravel批量生成假数据的方法
- 对laravel in 查询的使用方法详解
- PHP使用redis位图bitMap 实现签到功能
- thinkphp5+layui实现的分页样式示例
- Laravel实现搜索的时候分页并携带参数
- PHP7.3.10编译安装教程
- Laravel-添加后台模板AdminLte的实现方法