projects
/
yaffs2.git
/ blobdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
|
commitdiff
|
tree
raw
|
inline
| side by side
Add newlines to a couple of trace/diagnostic messages.
[yaffs2.git]
/
yaffs_checkptrw.c
diff --git
a/yaffs_checkptrw.c
b/yaffs_checkptrw.c
index 2f658e68aadacf37eca09f30e34bb584e018cd5a..2f3f875f75a65e677c6ee24688a3804550746077 100644
(file)
--- a/
yaffs_checkptrw.c
+++ b/
yaffs_checkptrw.c
@@
-12,7
+12,7
@@
*/
const char *yaffs_checkptrw_c_version =
*/
const char *yaffs_checkptrw_c_version =
- "$Id: yaffs_checkptrw.c,v 1.1
3 2007-02-14 01:09:06 wookey
Exp $";
+ "$Id: yaffs_checkptrw.c,v 1.1
4 2007-05-15 20:07:40 charles
Exp $";
#include "yaffs_checkptrw.h"
#include "yaffs_checkptrw.h"
@@
-32,7
+32,6
@@
static int yaffs_CheckpointSpaceOk(yaffs_Device *dev)
}
}
-
static int yaffs_CheckpointErase(yaffs_Device *dev)
{
static int yaffs_CheckpointErase(yaffs_Device *dev)
{
@@
-153,6
+152,8
@@
int yaffs_CheckpointOpen(yaffs_Device *dev, int forWriting)
dev->checkpointOpenForWrite = forWriting;
dev->checkpointByteCount = 0;
dev->checkpointOpenForWrite = forWriting;
dev->checkpointByteCount = 0;
+ dev->checkpointSum = 0;
+ dev->checkpointXor = 0;
dev->checkpointCurrentBlock = -1;
dev->checkpointCurrentChunk = -1;
dev->checkpointNextBlock = dev->internalStartBlock;
dev->checkpointCurrentBlock = -1;
dev->checkpointCurrentChunk = -1;
dev->checkpointNextBlock = dev->internalStartBlock;
@@
-180,6
+181,14
@@
int yaffs_CheckpointOpen(yaffs_Device *dev, int forWriting)
return 1;
}
return 1;
}
+int yaffs_GetCheckpointSum(yaffs_Device *dev, __u32 *sum)
+{
+ __u32 compositeSum;
+ compositeSum = (dev->checkpointSum << 8) | (dev->checkpointXor & 0xFF);
+ *sum = compositeSum;
+ return 1;
+}
+
static int yaffs_CheckpointFlushBuffer(yaffs_Device *dev)
{
static int yaffs_CheckpointFlushBuffer(yaffs_Device *dev)
{
@@
-243,12
+252,18
@@
int yaffs_CheckpointWrite(yaffs_Device *dev,const void *data, int nBytes)
if(!dev->checkpointBuffer)
return 0;
if(!dev->checkpointBuffer)
return 0;
+
+ if(!dev->checkpointOpenForWrite)
+ return -1;
while(i < nBytes && ok) {
while(i < nBytes && ok) {
- dev->checkpointBuffer[dev->checkpointByteOffset] = *dataBytes ;
+ dev->checkpointBuffer[dev->checkpointByteOffset] = *dataBytes ;
+ dev->checkpointSum += *dataBytes;
+ dev->checkpointXor ^= *dataBytes;
+
dev->checkpointByteOffset++;
i++;
dataBytes++;
dev->checkpointByteOffset++;
i++;
dataBytes++;
@@
-279,6
+294,9
@@
int yaffs_CheckpointRead(yaffs_Device *dev, void *data, int nBytes)
if(!dev->checkpointBuffer)
return 0;
if(!dev->checkpointBuffer)
return 0;
+ if(dev->checkpointOpenForWrite)
+ return -1;
+
while(i < nBytes && ok) {
while(i < nBytes && ok) {
@@
-320,6
+338,8
@@
int yaffs_CheckpointRead(yaffs_Device *dev, void *data, int nBytes)
if(ok){
*dataBytes = dev->checkpointBuffer[dev->checkpointByteOffset];
if(ok){
*dataBytes = dev->checkpointBuffer[dev->checkpointByteOffset];
+ dev->checkpointSum += *dataBytes;
+ dev->checkpointXor ^= *dataBytes;
dev->checkpointByteOffset++;
i++;
dataBytes++;
dev->checkpointByteOffset++;
i++;
dataBytes++;