+/* TODO: Please rename all the functions jhc*/
+static inline
+void bin_number_pixel_list
+( struct bin_pixel_node_t* pixel_list )
+{ int num = 0;
+ struct bin_pixel_node_t* iter;
+ while (iter)
+ { iter.data.attach_idx = num++;
+ iter = iter->next;
+ }
+}
+
+/* Assuming at this point that map_pixel_list is valid */
+static inline
+int bin_set_map_pixel_list_attach_idxs
+( struct bin_pixel_node_t* default_pixel_list,
+ struct bin_pixel_node_t* map_pixel_list
+)
+{ struct bin_pixel_node_t* mapiter, defaultiter;
+ mapiter = map_pixel_list;
+ defaultiter = default_pixel_list;
+ while (mapiter && defaultiter)
+ { /* if mapiter.data.ref == defaultiter.data.ref, assign mapiter index_idx to defaultiter */
+ if (mapiter.data.ref == defauliter.data.ref)
+ { defaultiter.data.attach_idx = mapiter.data.attach_idx;
+ mapiter = mapiter->next;
+ defaultiter = defaultiter->next;
+ }
+ else
+ defaultiter = defaultiter->next;
+ }
+}
+
+/* map_pixel_list cannot have more pixels. for all of its pixels,
+ the refs must be represented in default pixel list. 0 if invalid, 1 if valid */
+static inline
+int bin_valid_map_pixel_list
+( struct bin_pixel_node_t* default_pixel_list,
+ struct bin_pixel_node_t* map_pixel_list
+)
+{ struct bin_pixel_node_t* mapiter, defaultiter;
+ defaultiter = default_pixel_list;
+ /* check length of each to make sure default < max */
+ /* for each pixel node in default and map */
+ while(defaultiter)
+ { for( mapiter = map_pixel_list; mapiter != NULL; mapiter = mapiter->next)
+ {
+ }
+ }
+