[Tinyos-beta-commits] CVS: tinyos-1.x/beta/STM25P/STM25P
FormatStorageM.nc, 1.3, 1.4
Jonathan Hui
jwhui at users.sourceforge.net
Tue May 17 14:14:31 PDT 2005
Update of /cvsroot/tinyos/tinyos-1.x/beta/STM25P/STM25P
In directory sc8-pr-cvs1.sourceforge.net:/tmp/cvs-serv24477
Modified Files:
FormatStorageM.nc
Log Message:
- Sync changes with rest of storage stack.
Index: FormatStorageM.nc
===================================================================
RCS file: /cvsroot/tinyos/tinyos-1.x/beta/STM25P/STM25P/FormatStorageM.nc,v
retrieving revision 1.3
retrieving revision 1.4
diff -C2 -d -r1.3 -r1.4
*** FormatStorageM.nc 17 May 2005 20:44:49 -0000 1.3
--- FormatStorageM.nc 17 May 2005 21:14:25 -0000 1.4
***************
*** 40,44 ****
SectorTable sectorTable;
! uint8_t curSector;
uint8_t state;
--- 40,44 ----
SectorTable sectorTable;
! stm25p_addr_t curAddr;
uint8_t state;
***************
*** 153,161 ****
state = S_COMMIT;
- curSector = 0;
sectorTable.crc = computeSectorTableCrc();
! if (call HALSTM25P.sectorErase(STM25P_SECTOR_SIZE*curSector) == FAIL) {
state = S_INIT;
return FAIL;
--- 153,162 ----
state = S_COMMIT;
sectorTable.crc = computeSectorTableCrc();
! curAddr = STM25P_SECTOR_SIZE - sizeof(SectorTable);
!
! if (call HALSTM25P.sectorErase(curAddr) == FAIL) {
state = S_INIT;
return FAIL;
***************
*** 166,221 ****
}
! void writeVolumeMetadata() {
!
! stm25p_addr_t addr;
!
! for ( ; curSector < STM25P_NUM_SECTORS
! && sectorTable.sector[curSector].volumeId != sectorTable.sector[curSector+1].volumeId ;
! curSector++ );
!
! addr = STM25P_SECTOR_SIZE*(curSector+1) - sizeof(sectorTable);
!
! if (call HALSTM25P.pageProgram(addr, (uint8_t*)§orTable,
! sizeof(sectorTable)) == FAIL)
! signalDone(STORAGE_FAIL);
!
! }
!
! event void HALSTM25P.sectorEraseDone(result_t result) {
! if (result != STORAGE_OK) {
! signalDone(result);
! return;
! }
! curSector++;
! if ( curSector < STM25P_NUM_SECTORS ) {
! if (call HALSTM25P.sectorErase(STM25P_SECTOR_SIZE*curSector) == FAIL)
signalDone(STORAGE_FAIL);
return;
}
! curSector = 0;
! writeVolumeMetadata();
}
! event void HALSTM25P.pageProgramDone(result_t result) {
! if (result != STORAGE_OK) {
! signalDone(result);
! return;
}
-
- curSector++;
- if ( curSector < STM25P_NUM_SECTORS )
- writeVolumeMetadata();
- else
- signalDone(STORAGE_OK);
}
! event void HALSTM25P.bulkEraseDone(result_t result) {}
! event void HALSTM25P.writeSRDone(result_t result) {}
}
--- 167,208 ----
}
! void pageProgramDone() {
! curAddr += STM25P_SECTOR_SIZE;
! if ( curAddr < STM25P_SECTOR_SIZE * STM25P_NUM_SECTORS ) {
! if (call HALSTM25P.sectorErase(curAddr) == FAIL) {
! state = S_INIT;
signalDone(STORAGE_FAIL);
+ }
return;
}
! signalDone(STORAGE_OK);
}
! event void HALSTM25P.sectorEraseDone() {
! uint8_t sector = curAddr / STM25P_SECTOR_SIZE;
!
! if ( sector == STM25P_NUM_SECTORS - 1 ||
! sectorTable.sector[sector].volumeId != sectorTable.sector[sector+1].volumeId ) {
! stm25p_addr_t addr = STM25P_SECTOR_SIZE*(sector+1) - sizeof(SectorTable);
! if (call HALSTM25P.pageProgram(addr, §orTable, sizeof(SectorTable)) == FAIL)
! signalDone(STORAGE_FAIL);
! }
! else {
! pageProgramDone();
}
}
! event void HALSTM25P.pageProgramDone() {
! pageProgramDone();
! }
!
! event void HALSTM25P.bulkEraseDone() {}
! event void HALSTM25P.writeSRDone() {}
}
More information about the Tinyos-beta-commits
mailing list