]> git.ipfire.org Git - thirdparty/bird.git/commitdiff
Lib: Add and use ev_new_init()
authorOndrej Zajicek (work) <santiago@crfreenet.org>
Mon, 1 Oct 2018 13:55:23 +0000 (15:55 +0200)
committerOndrej Zajicek (work) <santiago@crfreenet.org>
Mon, 1 Oct 2018 13:55:23 +0000 (15:55 +0200)
lib/event.h
nest/locks.c
nest/proto.c
nest/rt-table.c
proto/babel/babel.c
proto/bgp/bgp.c
proto/ospf/ospf.c
proto/static/static.c

index d59752220d00241296e5916157d5a548fc3c0e98..03735c3fcc2166046dc1c3bdb3deb5ec470cb574 100644 (file)
@@ -36,5 +36,14 @@ ev_active(event *e)
   return e->n.next != NULL;
 }
 
+static inline event*
+ev_new_init(pool *p, void (*hook)(void *), void *data)
+{
+  event *e = ev_new(p);
+  e->hook = hook;
+  e->data = data;
+  return e;
+}
+
 
 #endif
index 86c9ff1469747e1752f299bb18fa515922087a63..812a65342268b9b97b3f19f1960c8e8b5e07377c 100644 (file)
@@ -191,6 +191,5 @@ olock_init(void)
 {
   DBG("olock: init\n");
   init_list(&olock_list);
-  olock_event = ev_new(&root_pool);
-  olock_event->hook = olock_run_event;
+  olock_event = ev_new_init(&root_pool, olock_run_event, NULL);
 }
index 8a8221a807388c267b4da57371bebb62b352fcbd..7905c9f2fe47b8b98f93655467b468d19df6c559 100644 (file)
@@ -291,9 +291,7 @@ channel_do_start(struct channel *c)
   add_tail(&c->table->channels, &c->table_node);
   c->proto->active_channels++;
 
-  c->feed_event = ev_new(c->proto->pool);
-  c->feed_event->data = c;
-  c->feed_event->hook = channel_feed_loop;
+  c->feed_event = ev_new_init(c->proto->pool, channel_feed_loop, c);
 
   channel_reset_limit(&c->rx_limit);
   channel_reset_limit(&c->in_limit);
@@ -702,9 +700,7 @@ proto_init(struct proto_config *c, node *n)
   p->vrf = c->vrf;
   insert_node(&p->n, n);
 
-  p->event = ev_new(proto_pool);
-  p->event->hook = proto_event;
-  p->event->data = p;
+  p->event = ev_new_init(proto_pool, proto_event, p);
 
   PD(p, "Initializing%s", p->disabled ? " [disabled]" : "");
 
index 036b34c4794765126708e20d3948003106d49b11..4998e2920c4fd88342217dca5a8aa14661cd6581 100644 (file)
@@ -1682,9 +1682,7 @@ rt_setup(pool *p, rtable *t, struct rtable_config *cf)
   fib_init(&t->fib, p, t->addr_type, sizeof(net), OFFSETOF(net, n), 0, NULL);
   init_list(&t->channels);
 
-  t->rt_event = ev_new(p);
-  t->rt_event->hook = rt_event;
-  t->rt_event->data = t;
+  t->rt_event = ev_new_init(p, rt_event, t);
   t->gc_time = current_time();
 }
 
index afa482bb9254d48e1a1bd549999bd1893bb32576..12c9a4749d953e6c109eff25ecd5cb78b34cff90 100644 (file)
@@ -1592,9 +1592,7 @@ babel_add_iface(struct babel_proto *p, struct iface *new, struct babel_iface_con
   ifa->timer = tm_new_init(ifa->pool, babel_iface_timer, ifa, 0, 0);
 
   init_list(&ifa->msg_queue);
-  ifa->send_event = ev_new(ifa->pool);
-  ifa->send_event->hook = babel_send_queue;
-  ifa->send_event->data = ifa;
+  ifa->send_event = ev_new_init(ifa->pool, babel_send_queue, ifa);
 
   struct object_lock *lock = olock_new(ifa->pool);
   lock->type = OBJLOCK_UDP;
index d2abcc5b2ae1e7c9a8c1b7d9224684f1cf5f2c9f..e7479df7875d14ae27707962ac768ce83a9ceb03 100644 (file)
@@ -977,9 +977,7 @@ bgp_setup_conn(struct bgp_proto *p, struct bgp_conn *conn)
   conn->hold_timer     = tm_new_init(p->p.pool, bgp_hold_timeout,       conn, 0, 0);
   conn->keepalive_timer        = tm_new_init(p->p.pool, bgp_keepalive_timeout, conn, 0, 0);
 
-  conn->tx_ev = ev_new(p->p.pool);
-  conn->tx_ev->hook = bgp_kick_tx;
-  conn->tx_ev->data = conn;
+  conn->tx_ev = ev_new_init(p->p.pool, bgp_kick_tx, conn);
 }
 
 static void
@@ -1402,10 +1400,7 @@ bgp_start(struct proto *P)
   p->gr_ready = 0;
   p->gr_active_num = 0;
 
-  p->event = ev_new(p->p.pool);
-  p->event->hook = bgp_decision;
-  p->event->data = p;
-
+  p->event = ev_new_init(p->p.pool, bgp_decision, p);
   p->startup_timer = tm_new_init(p->p.pool, bgp_startup_timeout, p, 0, 0);
   p->gr_timer = tm_new_init(p->p.pool, bgp_graceful_restart_timeout, p, 0, 0);
 
index 327ad0a4f946e577895f8ddf43f45840d1226a4f..4faad3609d71d139dc9f86132732fee7dc54049e 100644 (file)
@@ -256,9 +256,7 @@ ospf_start(struct proto *P)
   p->gr = ospf_top_new(p, P->pool);
   s_init_list(&(p->lsal));
 
-  p->flood_event = ev_new(P->pool);
-  p->flood_event->hook = ospf_flood_event;
-  p->flood_event->data = p;
+  p->flood_event = ev_new_init(P->pool, ospf_flood_event, p);
 
   p->log_pkt_tbf = (struct tbf){ .rate = 1, .burst = 5 };
   p->log_lsa_tbf = (struct tbf){ .rate = 4, .burst = 20 };
index 40096c16227645ae5efea98fa6275be7644a9438..75a74ad0e33ef1bb1c84b639fab7c21d0bf7647f 100644 (file)
@@ -420,9 +420,7 @@ static_start(struct proto *P)
   if (p->igp_table_ip6)
     rt_lock_table(p->igp_table_ip6);
 
-  p->event = ev_new(p->p.pool);
-  p->event->hook = static_announce_marked;
-  p->event->data = p;
+  p->event = ev_new_init(p->p.pool, static_announce_marked, p);
 
   BUFFER_INIT(p->marked, p->p.pool, 4);