plan 9 kernel history: overview | file list | diff list

1998/0306/ip/pktmedium.c (diff list | history)

1998/0306/sys/src/9/ip/pktmedium.c:32,371998/0307/sys/src/9/ip/pktmedium.c:32,38 (short | long)
1998/0306    
	nil,		/* flushroute */ 
	nil,		/* joinmulti */ 
	nil,		/* leave multi */ 
1998/0307    
	1,		/* unbind on last close */ 
1998/0306    
}; 
 
/* 
1998/0307/sys/src/9/ip/pktmedium.c:12,181998/0313/sys/src/9/ip/pktmedium.c:12,18 (short | long)
1998/0306    
static void	pktbind(Ipifc *ifc, int argc, char **argv); 
static void	pktunbind(Ipifc *ifc); 
static void	pktbwrite(Ipifc *ifc, Block *bp, int version, uchar *ip); 
static void	pktin(Ipifc *ifc, Block *bp); 
1998/0313    
static void	pktin(Fs*, Ipifc *ifc, Block *bp); 
1998/0306    
 
Medium pktmedium = 
{ 
1998/0307/sys/src/9/ip/pktmedium.c:64,761998/0313/sys/src/9/ip/pktmedium.c:64,76
1998/0306    
} 
 
/* 
 *  called when someone write's to 'data' with ifc rlocked 
1998/0313    
 *  called with ifc rlocked when someone write's to 'data' 
1998/0306    
 */ 
static void 
pktin(Ipifc *ifc, Block *bp) 
1998/0313    
pktin(Fs *f, Ipifc *ifc, Block *bp) 
1998/0306    
{ 
	if(ifc->lifc == nil) 
		freeb(bp); 
	else 
		ipiput(ifc->lifc->local, bp); 
1998/0313    
		ipiput(f, ifc->lifc->local, bp); 
1998/0306    
} 
1998/0313/sys/src/9/ip/pktmedium.c:18,251998/0330/sys/src/9/ip/pktmedium.c:18,25 (short | long)
Change sizes of packet medium.
rsc Fri Mar 4 12:44:25 2005
1998/0306    
{ 
	"pkt", 
	14, 
	60, 
	1514, 
1998/0330    
	40, 
	4*1024, 
1998/0306    
	6, 
	pktbind, 
	pktunbind, 
1998/0330/sys/src/9/ip/pktmedium.c:74,761998/0423/sys/src/9/ip/pktmedium.c:74,82 (short | long)
Register with addipmedium.
rsc Fri Mar 4 12:44:25 2005
1998/0306    
	else 
1998/0313    
		ipiput(f, ifc->lifc->local, bp); 
1998/0306    
} 
1998/0423    
 
void 
pktmediumlink(void) 
{ 
	addipmedium(&pktmedium); 
} 
1998/0423/sys/src/9/ip/pktmedium.c:32,371998/0714/sys/src/9/ip/pktmedium.c:32,38 (short | long)
Add ares ptr.
rsc Fri Mar 4 12:44:25 2005
1998/0306    
	nil,		/* flushroute */ 
	nil,		/* joinmulti */ 
	nil,		/* leave multi */ 
1998/0714    
	nil,		/* ares */ 
1998/0307    
	1,		/* unbind on last close */ 
1998/0306    
}; 
 
1998/0714/sys/src/9/ip/pktmedium.c:16,391999/0731/sys/src/9/ip/pktmedium.c:16,31 (short | long)
1998/0306    
 
Medium pktmedium = 
{ 
	"pkt", 
	14, 
1998/0330    
	40, 
	4*1024, 
1998/0306    
	6, 
	pktbind, 
	pktunbind, 
	pktbwrite, 
	nil,		/* addmulti */ 
	nil,		/* remmulti */ 
	pktin, 
	nil,		/* addroute */ 
	nil,		/* remroute */ 
	nil,		/* flushroute */ 
	nil,		/* joinmulti */ 
	nil,		/* leave multi */ 
1998/0714    
	nil,		/* ares */ 
1998/0307    
	1,		/* unbind on last close */ 
1999/0731    
.name=		"pkt", 
.hsize=		14, 
.minmtu=	40, 
.maxmtu=	4*1024, 
.maclen=	6, 
.bind=		pktbind, 
.unbind=	pktunbind, 
.bwrite=	pktbwrite, 
.pktin=		pktin, 
.unbindonclose=	1, 
1998/0306    
}; 
 
/* 
1999/0731/sys/src/9/ip/pktmedium.c:6,122000/1111/sys/src/9/ip/pktmedium.c:6,11 (short | long)
1998/0306    
#include "../port/error.h" 
 
#include "ip.h" 
#include "kernel.h" 
 
 
static void	pktbind(Ipifc *ifc, int argc, char **argv); 
2000/1111/sys/src/9/ip/pktmedium.c:64,702001/0623/sys/src/9/ip/pktmedium.c:64,70 (short | long)
1998/0306    
	if(ifc->lifc == nil) 
		freeb(bp); 
	else 
1998/0313    
		ipiput(f, ifc->lifc->local, bp); 
2001/0623    
		ipiput(f, ifc, bp); 
1998/0306    
} 
1998/0423    
 
void 
2001/0623/sys/src/9/ip/pktmedium.c:64,702002/0507/sys/src/9/ip/pktmedium.c:64,70 (short | long)
1998/0306    
	if(ifc->lifc == nil) 
		freeb(bp); 
	else 
2001/0623    
		ipiput(f, ifc, bp); 
2002/0507    
		ipiput4(f, ifc, bp); 
1998/0306    
} 
1998/0423    
 
void 
2002/0507/sys/src/9/ip/pktmedium.c:52,572002/1110/sys/src/9/ip/pktmedium.c:52,59 (short | long)
1998/0306    
{ 
	/* enqueue onto the conversation's rq */ 
	bp = concatblock(bp); 
2002/1110    
	if(ifc->conv->snoopers.ref > 0) 
		qpass(ifc->conv->sq, copyblock(bp, BLEN(bp))); 
1998/0306    
	qpass(ifc->conv->rq, bp); 
} 
 
2002/0507/sys/src/9/ip/pktmedium.c:63,702002/1110/sys/src/9/ip/pktmedium.c:65,75
1998/0306    
{ 
	if(ifc->lifc == nil) 
		freeb(bp); 
	else 
2002/1110    
	else { 
		if(ifc->conv->snoopers.ref > 0) 
			qpass(ifc->conv->sq, copyblock(bp, BLEN(bp))); 
2002/0507    
		ipiput4(f, ifc, bp); 
2002/1110    
	} 
1998/0306    
} 
1998/0423    
 
void 
2002/1110/sys/src/9/ip/pktmedium.c:17,242003/0209/sys/src/9/ip/pktmedium.c:17,24 (short | long)
1998/0306    
{ 
1999/0731    
.name=		"pkt", 
.hsize=		14, 
.minmtu=	40, 
.maxmtu=	4*1024, 
2003/0209    
.mintu=	40, 
.maxtu=	4*1024, 
1999/0731    
.maclen=	6, 
.bind=		pktbind, 
.unbind=	pktunbind, 


source code copyright © 1990-2005 Lucent Technologies; see license
Plan 9 distribution
comments to russ cox (rsc@swtch.com)