Use linker functions for NIC and medium pre-init
[akaros.git] / kern / src / net / udp.c
index fa266e0..fcb0b42 100644 (file)
@@ -637,13 +637,21 @@ udpstats(struct Proto *udp, char *buf, int len)
        Udppriv *upriv;
 
        upriv = udp->priv;
-       return snprintf(buf, len, "InDatagrams: %lud\nNoPorts: %lud\nInErrors: %lud\nOutDatagrams: %lud\n",
+       return snprintf(buf, len, "InDatagrams: %lu\nNoPorts: %lu\nInErrors: %lu\nOutDatagrams: %lu\n",
                upriv->ustats.udpInDatagrams,
                upriv->ustats.udpNoPorts,
                upriv->ustats.udpInErrors,
                upriv->ustats.udpOutDatagrams);
 }
 
+void udpnewconv(struct Proto *udp, struct conv *conv)
+{
+       /* Fsprotoclone alloc'd our priv struct and attached it to conv already.
+        * Now we need to init it */
+       struct Udpcb *ucb = (struct Udpcb*)conv->ptcl;
+       qlock_init(&ucb->qlock);
+}
+
 void
 udpinit(struct Fs *fs)
 {
@@ -663,6 +671,7 @@ udpinit(struct Fs *fs)
        udp->stats = udpstats;
        udp->ipproto = IP_UDPPROTO;
        udp->nc = Nchans;
+       udp->newconv = udpnewconv;
        udp->ptclsize = sizeof(Udpcb);
 
        Fsproto(fs, udp);