2005-11-14 Paul Jakma <paul.jakma@sun.com>

	* zebra_rib.c: (rib_process) convert to new workqueue specs and
	  shut up gcc, which complains about cast from void via
	  function parameters, for some dumb reason. Do the cast
	  inside the function instead.
	  (rib_queue_qnode_del) ditto.
	  (rib_queue_init) no need for the casts anymore.
diff --git a/bgpd/bgp_route.c b/bgpd/bgp_route.c
index 0658cab..f2621c1 100644
--- a/bgpd/bgp_route.c
+++ b/bgpd/bgp_route.c
@@ -1242,8 +1242,9 @@
 };
 
 static wq_item_status
-bgp_process_rsclient (struct bgp_process_queue *pq)
+bgp_process_rsclient (struct work_queue *wq, void *data)
 {
+  struct bgp_process_queue *pq = data;
   struct bgp *bgp = pq->bgp;
   struct bgp_node *rn = pq->rn;
   afi_t afi = pq->afi;
@@ -1309,8 +1310,9 @@
 }
 
 static wq_item_status
-bgp_process_main (struct bgp_process_queue *pq)
+bgp_process_main (struct work_queue *wq, void *data)
 {
+  struct bgp_process_queue *pq = data;
   struct bgp *bgp = pq->bgp;
   struct bgp_node *rn = pq->rn;
   afi_t afi = pq->afi;
@@ -1390,8 +1392,10 @@
 }
 
 static void
-bgp_processq_del (struct bgp_process_queue *pq)
+bgp_processq_del (struct work_queue *wq, void *data)
 {
+  struct bgp_process_queue *pq = data;
+  
   bgp_unlock_node (pq->rn);
   XFREE (MTYPE_BGP_PROCESS_QUEUE, pq);
 }
@@ -2450,8 +2454,9 @@
 };
 
 static wq_item_status
-bgp_clear_route_node (struct bgp_clear_node_queue *cq)
+bgp_clear_route_node (struct work_queue *wq, void *data)
 {
+  struct bgp_clear_node_queue *cq = data;
   struct bgp_adj_in *ain;
   struct bgp_adj_out *aout;
   struct bgp_info *ri;
@@ -2493,8 +2498,9 @@
 }
 
 static void
-bgp_clear_node_queue_del (struct bgp_clear_node_queue *cq)
+bgp_clear_node_queue_del (struct work_queue *wq, void *data)
 {
+  struct bgp_clear_node_queue *cq = data;
   bgp_unlock_node (cq->rn); 
   peer_unlock (cq->peer); /* bgp_clear_node_queue_del */
   XFREE (MTYPE_BGP_CLEAR_NODE_QUEUE, cq);