[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*)&sectorTable, 
! 				   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, &sectorTable, 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