9front - general discussion about 9front
 help / color / mirror / Atom feed
* [9front] [patch] fix port/devloopback.c so #λ can be built
@ 2021-04-21  7:10 unobe
  0 siblings, 0 replies; only message in thread
From: unobe @ 2021-04-21  7:10 UTC (permalink / raw)
  To: 9front

loopback(3) describes #λ, but AFAICT it hasn't been built in the
9front kernels.  Granted, this is all new to me, so I could very well
be misunderstanding something critical.  I didn't add the device to
pc/pc and pc64/pc64 because I wasn't sure if the driver should be
added back, or if it's only selected for inclusion in the kernel for
testing.  Clearly, it hadn't been tested in awhile, if ever.  I
reviewed the logs for devloopback.c and pc/pc and pc/pc64 all the way
back to the initial import of the Plan 9 code: it never was included
in the initial import of pc/pccpuf, pc/pc64, etc.

I did add it to my mbp branch's pc64/pc64mb after ip and tested it by
building the kernel and booting; I can now use/see #λ:

@@ -22,6 +22,7 @@
 	ether		netif
 	bridge		netif log
 	ip		arp chandial ip ipv6 ipaux iproute netlog ethermedium nullmedium pktmedium inferno
+	loopback
 
 	draw		screen vga vgax vgasoft
 	mouse		mouse

This patch below apply cleanly to the default branch.

changeset:   8444:a321ba95666e
branch:      mbp-2011
user:        Romano <unobe@cpan.org>
date:        Tue Apr 20 23:55:06 2021 -0700
files:       sys/src/9/port/devloopback.c
description:
devloopback.c didn't compile due to changes in the Timer struct, the
Link struct, and referencing devloopbacktab before it was declared.


diff -r 2bc7dceab4ef -r a321ba95666e sys/src/9/port/devloopback.c
--- a/sys/src/9/port/devloopback.c	Tue Apr 20 22:41:52 2021 -0700
+++ b/sys/src/9/port/devloopback.c	Tue Apr 20 23:55:06 2021 -0700
@@ -127,7 +127,7 @@
 	if(dev >= Nloopbacks)
 		error(Enodev);
 
-	c = devattach(loopbackdevtab.dc, spec);
+	c = devattach(L'λ', spec);
 	if(waserror()){
 		chanfree(c);
 		nexterror();
@@ -144,9 +144,9 @@
 	lb->ref++;
 	if(lb->ref == 1){
 		for(chan = 0; chan < 2; chan++){
-			lb->link[chan].ci.mode = Trelative;
-			lb->link[chan].ci.a = &lb->link[chan];
-			lb->link[chan].ci.f = linkintr;
+			lb->link[chan].ci.tmode = Trelative;
+			lb->link[chan].ci.ta = &lb->link[chan];
+			lb->link[chan].ci.tf = linkintr;
 			lb->link[chan].limit = Loopqlim;
 			q = qopen(lb->link[chan].limit, 0, 0, 0);
 			lb->link[chan].iq = q;
@@ -464,8 +464,8 @@
 	Link *link;
 	Cmdbuf *volatile cb;
 	Block *volatile bp;
-	vlong d0, d0ns;
-	long dn, dnns;
+	vlong d0ns;
+	long dnns;
 
 	switch(TYPE(c->qid.path)){
 	case Qdata:
@@ -580,8 +580,8 @@
 {
 	Link *link;
 
-	link = ci->a;
-	pushlink(link, ci->ns);
+	link = ci->ta;
+	pushlink(link, ci->tns);
 }
 
 /*
@@ -630,7 +630,7 @@
 		tin = gtime(bp->rp);
 		if(tin > tout)
 			tout = tin;
-		tout = tout + (BLEN(bp) - Tmsize) * link->delayn;
+		tout = tout + (BLEN(bp) - Tmsize) * link->delaynns;
 
 		/*
 		 * drop packets
@@ -678,7 +678,7 @@
 	if(!tin || tin > tout && tout)
 		tin = tout;
 
-	link->ci.ns = tin - now;
+	link->ci.tns = tin - now;
 	if(tin){
 		if(tin < now)
 			panic("loopback unfinished business");



^ permalink raw reply	[flat|nested] only message in thread

only message in thread, other threads:[~2021-04-21  7:18 UTC | newest]

Thread overview: (only message) (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2021-04-21  7:10 [9front] [patch] fix port/devloopback.c so #λ can be built unobe

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).