-#include "u.h"
-#include "../port/lib.h"
-#include "mem.h"
-#include "dat.h"
-#include "fns.h"
-#include "../port/error.h"
+// INFERNO
+#include <vfs.h>
+#include <kfs.h>
+#include <slab.h>
+#include <kmalloc.h>
+#include <kref.h>
+#include <string.h>
+#include <stdio.h>
+#include <assert.h>
+#include <error.h>
+#include <cpio.h>
+#include <pmap.h>
+#include <smp.h>
+#include <ip.h>
-#include "ip.h"
+static void pktbind(struct Ipifc*i, int unused_int, char **unused_char_pp_t);
+static void pktunbind(struct Ipifc* i);
+static void pktbwrite(struct Ipifc*i, struct block*, int unused_int, uint8_t *unused_uint8_p_t);
+static void pktin(struct Fs*f, struct Ipifc*i, struct block*b);
-
-static void pktbind(Ipifc*, int, char**);
-static void pktunbind(Ipifc*);
-static void pktbwrite(Ipifc*, Block*, int, uchar*);
-static void pktin(Fs*, Ipifc*, Block*);
-
-Medium pktmedium =
+struct medium pktmedium =
{
.name= "pkt",
.hsize= 14,
* called with ifc wlock'd
*/
static void
-pktbind(Ipifc*, int, char**)
+pktbind(struct Ipifc*i, int unused_int, char **unused_char_pp_t)
{
}
* called with ifc wlock'd
*/
static void
-pktunbind(Ipifc*)
+pktunbind(struct Ipifc*i)
{
}
* called by ipoput with a single packet to write
*/
static void
-pktbwrite(Ipifc *ifc, Block *bp, int, uchar*)
+pktbwrite(struct Ipifc *ifc, struct block *bp, int unused_int, uint8_t *unused_uint8_p_t)
{
/* enqueue onto the conversation's rq */
bp = concatblock(bp);
- if(ifc->conv->snoopers.ref > 0)
+ if (atomic_read(&ifc->conv->snoopers) > 0)
qpass(ifc->conv->sq, copyblock(bp, BLEN(bp)));
qpass(ifc->conv->rq, bp);
}
* called with ifc rlocked when someone write's to 'data'
*/
static void
-pktin(Fs *f, Ipifc *ifc, Block *bp)
+pktin(struct Fs *f, struct Ipifc *ifc, struct block *bp)
{
- if(ifc->lifc == nil)
+ if(ifc->lifc == NULL)
freeb(bp);
else {
- if(ifc->conv->snoopers.ref > 0)
+ if (atomic_read(&ifc->conv->snoopers) > 0)
qpass(ifc->conv->sq, copyblock(bp, BLEN(bp)));
ipiput4(f, ifc, bp);
}