~kris/9p

9hist

245f8c72842d9a8bb39a389d2d68c5f7090d4e70 — David du Colombier 35 years ago 005c7a3
Plan 9 from Bell Labs 1991-01-02
2 files changed, 13 insertions(+), 25 deletions(-)

M port/devnonet.c
M power/dat.h
M port/devnonet.c => port/devnonet.c +13 -23
@@ 37,7 37,6 @@ static void	sendctlmsg(Noconv*, int, int);
static void	sendmsg(Noconv*, Nomsg*);
static void	startconv(Noconv*, int, char*, int);
static void	queueack(Noconv*, int);
static void	sendack(Noconv*, int);

static void	nonetiput(Queue*, Block*);
static void	nonetoput(Queue*, Block*);


@@ 921,7 920,7 @@ sendmsg(Noconv *cp, Nomsg *mp)
	wq = ifc->wq->next;

	/*
	 *  one transmitter at a time
	 *  one transmitter at a time for this connection
	 */
	qlock(&cp->xlock);



@@ 1005,28 1004,17 @@ sendmsg(Noconv *cp, Nomsg *mp)
static void
sendctlmsg(Noconv *cp, int flag, int new)
{
	cp->ctl.len = 0;
	cp->ctl.first = 0;
	cp->ctl.acked = 0;
	Nomsg ctl;

	ctl.len = 0;
	ctl.first = 0;
	ctl.acked = 0;
	if(new)
		cp->ctl.mid = Nnomsg^cp->out[cp->next].mid;
		ctl.mid = Nnomsg^cp->out[cp->next].mid;
	else
		cp->ctl.mid = cp->lastacked;
		ctl.mid = cp->lastacked;
	cp->hdr->flag |= flag;
	sendmsg(cp, &cp->ctl);
}

/*
 *  send an acknowledgement
 */
static void
sendack(Noconv *cp, int ack)
{
	cp->ackmsg.len = 0;
	cp->ackmsg.first = 0;
	cp->ackmsg.acked = ack;
	cp->ackmsg.mid = cp->lastacked;
	sendmsg(cp, &cp->ctl);
	sendmsg(cp, &ctl);
}

/*


@@ 1074,8 1062,10 @@ nonetrcvmsg(Noconv *cp, Block *bp)
			if(f & NO_HANGUP)
				hangup(cp);
		} else {
			if(r>0)
				sendack(cp, h->mid);
			if(r>0){
				queueack(cp, h->mid);
				sendctlmsg(cp, 0, 0);
			}
			cp->bad++;
		}
		freeb(bp);

M power/dat.h => power/dat.h +0 -2
@@ 561,8 561,6 @@ struct Noconv {

	QLock	xlock;		/* one trasmitter at a time */
	Rendez	r;		/* process waiting for an output mid */
	Nomsg	ctl;		/* for control messages */
	Nomsg	ackmsg;		/* for acknowledge messages */
	QLock	mlock;		/* lock for out */
	Nomsg	out[Nnomsg];	/* messages being sent */
	int	first;		/* first unacknowledged message */