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

1992/0205/port/sturp.c (diff list | history)

1992/0114/sys/src/9/port/sturp.c:169,1751992/0205/sys/src/9/port/sturp.c:169,178 (short | long | prev | next)
1990/0717    
		WR(q)->ptr = 0; 
1992/0114    
		exhausted("urp structures"); 
1990/0717    
	} 
1990/0227    
                 
1992/0205    
/* 
	q->flag |= QDEBUG; 
	q->other->flag |= QDEBUG; 
*/ 
1990/0312    
	q->ptr = q->other->ptr = up; 
1990/1212    
	q->rp = &urpkr; 
1990/0227    
	up->rq = q; 
1992/0114/sys/src/9/port/sturp.c:298,3031992/0205/sys/src/9/port/sturp.c:301,307
1990/0227    
	case 0: 
		break; 
	case ENQ: 
1992/0205    
		DPRINT("rENQ(c)\n"); 
1990/0227    
		urpstat.enqsr++; 
1990/0312    
		sendctl(up, up->lastecho); 
		sendctl(up, ACK+up->iseq); 
1992/0114/sys/src/9/port/sturp.c:304,3131992/0205/sys/src/9/port/sturp.c:308,319
1990/0227    
		break; 
 
	case CHECK: 
1992/0205    
		DPRINT("rCHECK(c)\n"); 
1990/0312    
		sendctl(up, ACK+up->iseq); 
1990/0227    
		break; 
 
	case AINIT: 
1992/0205    
		DPRINT("rAINIT(c)\n"); 
1990/0227    
		up->state &= ~INITING; 
		flushinput(up); 
1990/1206    
		wakeup(&urpkr); 
1992/0114/sys/src/9/port/sturp.c:315,3201992/0205/sys/src/9/port/sturp.c:321,327
1990/0227    
 
	case INIT0: 
	case INIT1: 
1992/0205    
		DPRINT("rINIT%d(c)\n", ctl-INIT0); 
1990/0312    
		sendctl(up, AINIT); 
		if(ctl == INIT1) 
			q->put = urpiput; 
1992/0114/sys/src/9/port/sturp.c:322,3271992/0205/sys/src/9/port/sturp.c:329,335
1990/0227    
		break; 
 
	case INITREQ: 
1992/0205    
		DPRINT("rINITREQ(c)\n"); 
1990/0227    
		initoutput(up, 0); 
		break; 
 
1992/0114/sys/src/9/port/sturp.c:330,3351992/0205/sys/src/9/port/sturp.c:338,344
1990/0227    
 
1990/0312    
	case REJ+0: case REJ+1: case REJ+2: case REJ+3: 
	case REJ+4: case REJ+5: case REJ+6: case REJ+7: 
1992/0205    
		DPRINT("rREJ%d(c)\n", ctl-REJ); 
1990/0312    
		rcvack(up, ctl); 
		break; 
	 
1992/0114/sys/src/9/port/sturp.c:337,3471992/0205/sys/src/9/port/sturp.c:346,358
1990/0227    
	case ACK+4: case ACK+5: case ACK+6: case ACK+7: 
	case ECHO+0: case ECHO+1: case ECHO+2: case ECHO+3: 
	case ECHO+4: case ECHO+5: case ECHO+6: case ECHO+7: 
1992/0205    
		DPRINT("%s%d(c)\n", (ctl&ECHO)?"rECHO":"rACK", ctl&7); 
1990/0227    
		rcvack(up, ctl); 
		break; 
 
	case SEQ+0: case SEQ+1: case SEQ+2: case SEQ+3: 
	case SEQ+4: case SEQ+5: case SEQ+6: case SEQ+7: 
1992/0205    
		DPRINT("rSEQ%d(c)\n", ctl-SEQ); 
1990/0321    
		qlock(&up->ack); 
1990/0312    
		i = ctl & Nmask; 
1990/0403    
		if(!QFULL(q->next)) 
1992/0114/sys/src/9/port/sturp.c:427,4361992/0205/sys/src/9/port/sturp.c:438,449
1990/0227    
		break; 
 
	case CHECK: 
1992/0205    
		DPRINT("rCHECK\n"); 
1990/0312    
		sendctl(up, ACK+up->iseq); 
1990/0227    
		break; 
 
	case AINIT: 
1992/0205    
		DPRINT("rAINIT\n"); 
1990/0227    
		up->state &= ~INITING; 
		flushinput(up); 
1990/1206    
		wakeup(&urpkr); 
1992/0114/sys/src/9/port/sturp.c:438,4431992/0205/sys/src/9/port/sturp.c:451,457
1990/0227    
 
	case INIT0: 
	case INIT1: 
1992/0205    
		DPRINT("rINIT%d\n", ctl-INIT0); 
1990/0312    
		sendctl(up, AINIT); 
		if(ctl == INIT0) 
1990/0227    
			q->put = urpciput; 
1992/0114/sys/src/9/port/sturp.c:445,4501992/0205/sys/src/9/port/sturp.c:459,465
1990/0227    
		break; 
 
	case INITREQ: 
1992/0205    
		DPRINT("rINITREQ\n"); 
1990/0227    
		initoutput(up, 0); 
		break; 
 
1992/0114/sys/src/9/port/sturp.c:454,4601992/0205/sys/src/9/port/sturp.c:469,475
1990/0227    
	case BOT: 
	case BOTM: 
1990/0721    
	case BOTS: 
		DPRINT("rBOT%d...", ctl-BOT); 
1992/0205    
		DPRINT("rBOT%c...", " MS"[ctl-BOT]); 
1990/0227    
		up->trx = 1; 
		up->trbuf[0] = ctl; 
		break; 
1992/0114/sys/src/9/port/sturp.c:461,4671992/0205/sys/src/9/port/sturp.c:476,482
1990/0227    
 
	case REJ+0: case REJ+1: case REJ+2: case REJ+3: 
	case REJ+4: case REJ+5: case REJ+6: case REJ+7: 
1990/0321    
		DPRINT("rREJ\n"); 
1992/0205    
		DPRINT("rREJ%d\n", ctl-REJ); 
1990/0227    
		rcvack(up, ctl); 
		break; 
	 
1992/0114/sys/src/9/port/sturp.c:469,4751992/0205/sys/src/9/port/sturp.c:484,490
1990/0227    
	case ACK+4: case ACK+5: case ACK+6: case ACK+7: 
	case ECHO+0: case ECHO+1: case ECHO+2: case ECHO+3: 
	case ECHO+4: case ECHO+5: case ECHO+6: case ECHO+7: 
1990/1004    
		DPRINT("rACK %ux\n", ctl); 
1992/0205    
		DPRINT("%s%d\n", (ctl&ECHO)?"rECHO":"rACK", ctl&7); 
1990/0227    
		rcvack(up, ctl); 
		break; 
 
1992/0114/sys/src/9/port/sturp.c:481,4861992/0205/sys/src/9/port/sturp.c:496,502
1990/0227    
	 */ 
	case SEQ+0: case SEQ+1: case SEQ+2: case SEQ+3: 
	case SEQ+4: case SEQ+5: case SEQ+6: case SEQ+7: 
1992/0205    
		DPRINT("rSEQ%d...", ctl-SEQ); 
1990/0312    
		i = ctl & Nmask; 
1990/0227    
		if(up->trx != 3){ 
			urpstat.rjtrs++; 
1992/0114/sys/src/9/port/sturp.c:499,5051992/0205/sys/src/9/port/sturp.c:515,521
1990/0511    
			flushinput(up); 
			break; 
1990/0227    
		} 
1990/0721    
		DPRINT("rSEQ%d accept %d\n", i, q->len); 
1992/0205    
		DPRINT("accept %d\n", q->len); 
1990/0227    
 
		/* 
		 *  send data upstream 
1992/0114/sys/src/9/port/sturp.c:622,6271992/0205/sys/src/9/port/sturp.c:638,645
1990/0312    
	now = NOW; 
	if(up->state & INITING){ 
		if(now > up->timer){ 
1992/0205    
			q = up->wq; 
			DPRINT("INITING timer (%d, %d): ", now, up->timer); 
1990/0312    
			sendctl(up, INIT1); 
			up->timer = now + MSrexmit; 
1990/0227    
		} 
1992/0114/sys/src/9/port/sturp.c:667,6721992/0205/sys/src/9/port/sturp.c:685,691
1990/0629    
		 *  if a retransmit time has elapsed since a transmit, 
		 *  send an ENQ 
		 */ 
1992/0205    
		DPRINT("OUTPUT timer (%d, %d): ", NOW, up->timer); 
1990/0312    
		up->timer = NOW + MSrexmit; 
		up->state &= ~REJECTING; 
1991/1122    
		urpstat.enqsx++; 
1992/0114/sys/src/9/port/sturp.c:715,7221992/0205/sys/src/9/port/sturp.c:734,741
1990/0312    
	bp->rptr = bp->lim-1; 
	*bp->rptr = ctl; 
	bp->flags |= S_DELIM; 
1990/1004    
	PUTNEXT(q, bp); 
	DPRINT("sCTL %ulx\n", ctl); 
1992/0205    
	PUTNEXT(q, bp); 
1990/0227    
} 
 
1990/0312    
/* 
1992/0114/sys/src/9/port/sturp.c:763,7681992/0205/sys/src/9/port/sturp.c:782,788
1990/0321    
	/* 
	 *  send the ack 
	 */ 
1992/0205    
	{ Queue *q = up->wq; DPRINT("sendack: "); } 
1990/0321    
	sendctl(up, up->lastecho = ECHO|up->iseq); 
	qunlock(&up->ack); 
} 
1992/0114/sys/src/9/port/sturp.c:810,8161992/0205/sys/src/9/port/sturp.c:830,836
1990/0312    
	m->rptr[2] = n<<8; 
	m->flags |= S_DELIM; 
1990/1004    
	PUTNEXT(q, m); 
	DPRINT("sb %d\n", bn); 
1992/0205    
	DPRINT("sb %d (%d)\n", bn, up->timer); 
1990/0227    
} 
 
/* 
1992/0114/sys/src/9/port/sturp.c:930,9351992/0205/sys/src/9/port/sturp.c:950,956
1990/0227    
	 */ 
1990/0312    
	up->state |= INITING; 
	up->timer = NOW + MSrexmit; 
1992/0205    
	{ Queue *q = up->wq; DPRINT("initoutput (%d): ", up->timer); } 
1990/0312    
	sendctl(up, INIT1); 
1990/0227    
} 
 
1992/0114/sys/src/9/port/sturp.c:1021,10261992/0205/sys/src/9/port/sturp.c:1042,1047
1991/1122    
	USED(c); 
	sprint(b, "in: %d\nout: %d\nrexmit: %d\nrjtrs: %d\nrjpks: %d\nrjseq: %d\nenqsx: %d\nenqsr: %d\n", 
		urpstat.input, urpstat.output, urpstat.rexmit, urpstat.rjtrs, 
		urpstat.rjpks, urpstat.rjseq, urpstat.enqsr, urpstat.enqsr); 
1992/0205    
		urpstat.rjpks, urpstat.rjseq, urpstat.enqsx, urpstat.enqsr); 
1991/1122    
	strncpy(buf, b, len); 
1990/0227    
} 


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