[Tinyos-2-commits] CVS: tinyos-2.x/tos/chips/at45db LogStorageP.nc,
1.1.2.17, 1.1.2.18
David Gay
idgay at users.sourceforge.net
Fri Sep 22 15:00:13 PDT 2006
Update of /cvsroot/tinyos/tinyos-2.x/tos/chips/at45db
In directory sc8-pr-cvs10.sourceforge.net:/tmp/cvs-serv16957/tos/chips/at45db
Modified Files:
Tag: tinyos-2_0_devel-BRANCH
LogStorageP.nc
Log Message:
add recordsLost "result" to appendDone event
Index: LogStorageP.nc
===================================================================
RCS file: /cvsroot/tinyos/tinyos-2.x/tos/chips/at45db/LogStorageP.nc,v
retrieving revision 1.1.2.17
retrieving revision 1.1.2.18
diff -C2 -d -r1.1.2.17 -r1.1.2.18
*** LogStorageP.nc 15 Aug 2006 11:59:08 -0000 1.1.2.17
--- LogStorageP.nc 22 Sep 2006 22:00:09 -0000 1.1.2.18
***************
*** 199,202 ****
--- 199,203 ----
uint8_t client = NO_CLIENT;
uint8_t metaState;
+ bool recordsLost;
at45page_t firstPage, lastPage;
storage_len_t len;
***************
*** 314,318 ****
{
case R_ERASE: signal LogWrite.eraseDone[c](ok); break;
! case R_APPEND: signal LogWrite.appendDone[c](ptr, actualLen, ok); break;
case R_SYNC: signal LogWrite.syncDone[c](ok); break;
case R_READ: signal LogRead.readDone[c](ptr, actualLen, ok); break;
--- 315,319 ----
{
case R_ERASE: signal LogWrite.eraseDone[c](ok); break;
! case R_APPEND: signal LogWrite.appendDone[c](ptr, actualLen, recordsLost, ok); break;
case R_SYNC: signal LogWrite.syncDone[c](ok); break;
case R_READ: signal LogRead.readDone[c](ptr, actualLen, ok); break;
***************
*** 594,597 ****
--- 595,602 ----
len -= count;
+ /* We lose data at the point we make the first write to a page */
+ if (offset == 0)
+ recordsLost = TRUE;
+
call At45db.write(s[client].wpage, offset, buf, count);
}
***************
*** 618,621 ****
--- 623,628 ----
storage_len_t vlen = (storage_len_t)npages() * PAGE_SIZE;
+ recordsLost = FALSE;
+
/* If request would span the end of the flash, sync, to maintain the
invariant that the last flash page is synced and that either
***************
*** 727,731 ****
else
{
! /* resume writing at the beginning of the first page */
s[client].rvalid = TRUE;
s[client].rpage = lastVolumePage() - 1;
--- 734,738 ----
else
{
! /* resume reading at the beginning of the first page */
s[client].rvalid = TRUE;
s[client].rpage = lastVolumePage() - 1;
***************
*** 968,972 ****
event void At45db.copyPageDone(error_t error) { }
! default event void LogWrite.appendDone[uint8_t logId](void* buf, storage_len_t l, error_t error) { }
default event void LogWrite.eraseDone[uint8_t logId](error_t error) { }
default event void LogWrite.syncDone[uint8_t logId](error_t error) { }
--- 975,979 ----
event void At45db.copyPageDone(error_t error) { }
! default event void LogWrite.appendDone[uint8_t logId](void* buf, storage_len_t l, bool rLost, error_t error) { }
default event void LogWrite.eraseDone[uint8_t logId](error_t error) { }
default event void LogWrite.syncDone[uint8_t logId](error_t error) { }
More information about the Tinyos-2-commits
mailing list