]> oss.titaniummirror.com Git - tinyos-2.x.git/blobdiff - tos/lib/net/Deluge/DelugeStorageC.nc
Add image verification at boot time. To make this possible I had to reintroduce the...
[tinyos-2.x.git] / tos / lib / net / Deluge / DelugeStorageC.nc
index 31f76351b26bb530c896b6375956d3bdf607c01b..214f4a8685620622e9a2c785a76dda6275c60f88 100644 (file)
@@ -31,35 +31,66 @@ configuration DelugeStorageC
   provides {
     interface BlockRead[uint8_t img_num];
     interface BlockWrite[uint8_t img_num];
-    interface StorageMap[uint8_t img_num];
+    interface DelugeStorage[uint8_t img_num];
     interface DelugeMetadata;
     
-    interface Notify<uint8_t>;
+    interface Notify<uint8_t> as ReadyNotify;
   }
 }
 
 implementation
 {
-  components new BlockStorageC(VOLUME_DELUGE0) as BlockStorageC_0;
-  components new BlockStorageC(VOLUME_DELUGE1) as BlockStorageC_1;
   components DelugeStorageP;
 
-  BlockRead[0] = DelugeStorageP.BlockRead[0];
-  BlockWrite[0] = DelugeStorageP.BlockWrite[0];
-  StorageMap[0] = BlockStorageC_0;
-  BlockRead[1] = DelugeStorageP.BlockRead[1];
-  BlockWrite[1] = DelugeStorageP.BlockWrite[1];
-  StorageMap[1] = BlockStorageC_1;
+  BlockRead[VOLUME_GOLDENIMAGE] = DelugeStorageP.BlockRead[VOLUME_GOLDENIMAGE];
+  BlockWrite[VOLUME_GOLDENIMAGE] = DelugeStorageP.BlockWrite[VOLUME_GOLDENIMAGE];
+  BlockRead[VOLUME_DELUGE1] = DelugeStorageP.BlockRead[VOLUME_DELUGE1];
+  BlockWrite[VOLUME_DELUGE1] = DelugeStorageP.BlockWrite[VOLUME_DELUGE1];
+  BlockRead[VOLUME_DELUGE2] = DelugeStorageP.BlockRead[VOLUME_DELUGE2];
+  BlockWrite[VOLUME_DELUGE2] = DelugeStorageP.BlockWrite[VOLUME_DELUGE2];
+  BlockRead[VOLUME_DELUGE3] = DelugeStorageP.BlockRead[VOLUME_DELUGE3];
+  BlockWrite[VOLUME_DELUGE3] = DelugeStorageP.BlockWrite[VOLUME_DELUGE3];
   DelugeMetadata = DelugeStorageP.DelugeMetadata;
 
-  DelugeStorageP.SubBlockRead[0] -> BlockStorageC_0;
-  DelugeStorageP.SubBlockWrite[0] -> BlockStorageC_0;
-  DelugeStorageP.SubBlockRead[1] -> BlockStorageC_1;
-  DelugeStorageP.SubBlockWrite[1] -> BlockStorageC_1;
+  components new BlockStorageC(VOLUME_GOLDENIMAGE) as BlockStorageC_Golden;
+  DelugeStorageP.SubBlockRead[VOLUME_GOLDENIMAGE] -> BlockStorageC_Golden;
+  DelugeStorageP.SubBlockWrite[VOLUME_GOLDENIMAGE] -> BlockStorageC_Golden;
+  components new BlockStorageC(VOLUME_DELUGE1) as BlockStorageC_1;
+  DelugeStorageP.SubBlockRead[VOLUME_DELUGE1] -> BlockStorageC_1;
+  DelugeStorageP.SubBlockWrite[VOLUME_DELUGE1] -> BlockStorageC_1;
+
+  components new BlockStorageC(VOLUME_DELUGE2) as BlockStorageC_2;
+  DelugeStorageP.SubBlockRead[VOLUME_DELUGE2] -> BlockStorageC_2;
+  DelugeStorageP.SubBlockWrite[VOLUME_DELUGE2] -> BlockStorageC_2;
+
+  components new BlockStorageC(VOLUME_DELUGE3) as BlockStorageC_3;
+  DelugeStorageP.SubBlockRead[VOLUME_DELUGE3] -> BlockStorageC_3;
+  DelugeStorageP.SubBlockWrite[VOLUME_DELUGE3] -> BlockStorageC_3;
+  
+#if defined(PLATFORM_TELOSB)
+  DelugeStorageP.StorageMap[VOLUME_GOLDENIMAGE] -> BlockStorageC_Golden;
+  DelugeStorageP.StorageMap[VOLUME_DELUGE1] -> BlockStorageC_1;
+  DelugeStorageP.StorageMap[VOLUME_DELUGE2] -> BlockStorageC_2;
+  DelugeStorageP.StorageMap[VOLUME_DELUGE3] -> BlockStorageC_3;
+#elif defined(PLATFORM_MICAZ)
+  components At45dbStorageManagerC;
+  DelugeStorageP.At45dbVolume[VOLUME_GOLDENIMAGE] -> At45dbStorageManagerC.At45dbVolume[VOLUME_GOLDENIMAGE];
+  DelugeStorageP.At45dbVolume[VOLUME_DELUGE1] -> At45dbStorageManagerC.At45dbVolume[VOLUME_DELUGE1];
+  DelugeStorageP.At45dbVolume[VOLUME_DELUGE2] -> At45dbStorageManagerC.At45dbVolume[VOLUME_DELUGE2];
+  DelugeStorageP.At45dbVolume[VOLUME_DELUGE3] -> At45dbStorageManagerC.At45dbVolume[VOLUME_DELUGE3];
+#else
+  #error "Target platform is not currently supported by Deluge T2"
+#endif
+
+  DelugeStorage[VOLUME_GOLDENIMAGE] = DelugeStorageP.DelugeStorage[VOLUME_GOLDENIMAGE];
+  DelugeStorage[VOLUME_DELUGE1] = DelugeStorageP.DelugeStorage[VOLUME_DELUGE1];
+  DelugeStorage[VOLUME_DELUGE2] = DelugeStorageP.DelugeStorage[VOLUME_DELUGE2];
+  DelugeStorage[VOLUME_DELUGE3] = DelugeStorageP.DelugeStorage[VOLUME_DELUGE3];
   
   components LedsC, MainC;
   DelugeStorageP.Leds -> LedsC;
   DelugeStorageP.Boot -> MainC;
   
-  Notify = DelugeStorageP.Notify;
+  ReadyNotify = DelugeStorageP.ReadyNotify;
 }