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);