]> oss.titaniummirror.com Git - tinyos-2.x.git/commitdiff
Change to get rid of statically allocating space in collection queue
authorklueska <klueska>
Thu, 21 Aug 2008 04:22:07 +0000 (04:22 +0000)
committerklueska <klueska>
Thu, 21 Aug 2008 04:22:07 +0000 (04:22 +0000)
apps/tosthreads/capps/TestCollection/MultihopOscilloscope.h
tos/lib/tosthreads/lib/net/ctp/CCollectionC.nc
tos/lib/tosthreads/lib/net/ctp/ccollection.h [new file with mode: 0644]
tos/lib/tosthreads/lib/net/lqi/CCollectionC.nc
tos/lib/tosthreads/lib/net/lqi/ccollection.h [new file with mode: 0644]
tos/lib/tosthreads/lib/net/tosthread_collection.h

index 5f04053921da7d7eb56ffca1fc5ad93f6029e8e6..437bd510e7ca4edaf1b79e51e042dab8c6ee60aa 100644 (file)
 #ifndef MULTIHOP_OSCILLOSCOPE_H
 #define MULTIHOP_OSCILLOSCOPE_H
 
+#include "Collection.h"
+
 enum {
   /* Number of readings per message. If you increase this, you may have to
      increase the message_t size. */
   NREADINGS = 5,
   /* Default sampling period. */
   DEFAULT_INTERVAL = 1024,
-  AM_OSCILLOSCOPE = 0x93
+  AM_OSCILLOSCOPE = NEW_COLLECTION_ID(),
 };
 
 typedef nx_struct oscilloscope {
index 7508b706aa88e0deae73ce1443a59ccf64a58b65..6e17b7a0d2334e80c9b12c1492f061d869c733f0 100644 (file)
@@ -45,16 +45,6 @@ implementation {
   components BlockingCollectionSenderP;
   components BlockingCollectionControlC;
   
-  //Allocate enough room in the message queue for all message types.
-  //This number needs to be 255-1-12 because 
-  //(1) The max number that can be provided to the Queue underneath for its size is 255
-  //(2) uniqueN() will give you values from 0..N constituting N+1 unique numbers
-  //(3) there are 12 spaces reserved in the send queue in CtpP for forwarding messages.
-  //I don't like this implementation, but it will do for now....
-  enum {
-   FIRST_CLIENT = uniqueN(UQ_CTP_CLIENT, 255-1-12),
-  };
-  
   CCP.BlockingReceive -> BlockingCollectionReceiverP;
   CCP.BlockingSnoop -> BlockingCollectionSnooperP;
   CCP.BlockingSend -> BlockingCollectionSenderP;
diff --git a/tos/lib/tosthreads/lib/net/ctp/ccollection.h b/tos/lib/tosthreads/lib/net/ctp/ccollection.h
new file mode 100644 (file)
index 0000000..4c8f9d2
--- /dev/null
@@ -0,0 +1,46 @@
+/*
+ * Copyright (c) 2008 Stanford University.
+ * All rights reserved.
+ *
+ * Redistribution and use in source and binary forms, with or without
+ * modification, are permitted provided that the following conditions
+ * are met:
+ * - Redistributions of source code must retain the above copyright
+ *   notice, this list of conditions and the following disclaimer.
+ * - Redistributions in binary form must reproduce the above copyright
+ *   notice, this list of conditions and the following disclaimer in the
+ *   documentation and/or other materials provided with the
+ *   distribution.
+ * - Neither the name of the Stanford University nor the names of
+ *   its contributors may be used to endorse or promote products derived
+ *   from this software without specific prior written permission.
+ *
+ * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
+ * ``AS IS'' AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
+ * LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS
+ * FOR A PARTICULAR PURPOSE ARE DISCLAIMED.  IN NO EVENT SHALL STANFORD
+ * UNIVERSITY OR ITS CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT,
+ * INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES
+ * (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR
+ * SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
+ * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT,
+ * STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
+ * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED
+ * OF THE POSSIBILITY OF SUCH DAMAGE.
+ */
+
+/**
+ * @author Kevin Klues <klueska@cs.stanford.edu>
+ */
+#ifndef CCOLLECTION_H
+#define CCOLLECTION_H
+
+#include "message.h"
+#include "TinyError.h"
+#include "Collection.h"
+#include "Ctp.h"
+
+#define  NEW_COLLECTION_ID() ((collection_id_t)unique(UQ_CTP_CLIENT))
+
+#endif //CCOLLECTION_H
index ecbb4a65449caa2bbdc485e5908531b36ebf53d4..1b1dca26430270aaf4672c22c49ea79f993b5e32 100644 (file)
@@ -45,16 +45,6 @@ implementation {
   components BlockingCollectionSenderP;
   components BlockingCollectionControlC;
   
-  //Allocate enough room in the message queue for all message types.
-  //This number needs to be 255-1-12 because 
-  //(1) The max number that can be provided to the Queue underneath for its size is 255
-  //(2) uniqueN() will give you values from 0..N constituting N+1 unique numbers
-  //(3) there are 12 spaces reserved in the send queue in CtpP for forwarding messages.
-  //I don't like this implementation, but it will do for now....
-  enum {
-   FIRST_CLIENT = uniqueN(UQ_LQI_CLIENT, 255-1-12),
-  };
-  
   CCP.BlockingReceive -> BlockingCollectionReceiverP;
   CCP.BlockingSnoop -> BlockingCollectionSnooperP;
   CCP.BlockingSend -> BlockingCollectionSenderP;
@@ -64,5 +54,4 @@ implementation {
   CCP.Packet -> CollectionC;
   CCP.CollectionPacket -> CollectionC;
   CCP.RootControl -> CollectionC;
-  CollectionC.CollectionId -> CCP;
 }
diff --git a/tos/lib/tosthreads/lib/net/lqi/ccollection.h b/tos/lib/tosthreads/lib/net/lqi/ccollection.h
new file mode 100644 (file)
index 0000000..c18e263
--- /dev/null
@@ -0,0 +1,46 @@
+/*
+ * Copyright (c) 2008 Stanford University.
+ * All rights reserved.
+ *
+ * Redistribution and use in source and binary forms, with or without
+ * modification, are permitted provided that the following conditions
+ * are met:
+ * - Redistributions of source code must retain the above copyright
+ *   notice, this list of conditions and the following disclaimer.
+ * - Redistributions in binary form must reproduce the above copyright
+ *   notice, this list of conditions and the following disclaimer in the
+ *   documentation and/or other materials provided with the
+ *   distribution.
+ * - Neither the name of the Stanford University nor the names of
+ *   its contributors may be used to endorse or promote products derived
+ *   from this software without specific prior written permission.
+ *
+ * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
+ * ``AS IS'' AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
+ * LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS
+ * FOR A PARTICULAR PURPOSE ARE DISCLAIMED.  IN NO EVENT SHALL STANFORD
+ * UNIVERSITY OR ITS CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT,
+ * INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES
+ * (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR
+ * SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
+ * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT,
+ * STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
+ * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED
+ * OF THE POSSIBILITY OF SUCH DAMAGE.
+ */
+
+/**
+ * @author Kevin Klues <klueska@cs.stanford.edu>
+ */
+#ifndef CCOLLECTION_H
+#define CCOLLECTION_H
+
+#include "message.h"
+#include "TinyError.h"
+#include "Collection.h"
+#include "MultiHopLqi.h"
+
+#define  NEW_COLLECTION_ID() ((collection_id_t)unique(UQ_LQI_CLIENT))
+
+#endif //CCOLLECTION_H
index 4bdfb30e5f1aee5102c5232e6194baa99b193c5d..9941ac078e1ec8253aaeebb44f76c48f77918124 100644 (file)
@@ -36,9 +36,7 @@
 #ifndef TOSTHREAD_COLLECTION_H
 #define TOSTHREAD_COLLECTION_H
 
-#include "message.h"
-#include "TinyError.h"
-#include "Collection.h"
+#include "ccollection.h"
 
 extern error_t collectionRoutingStart();
 extern error_t collectionRoutingStop();