|
|
1.1 ! root 1: /* test.c - main */ ! 2: ! 3: #include <conf.h> ! 4: #include <kernel.h> ! 5: #include <frame.h> ! 6: ! 7: /*---------------------------------------------------------------------- ! 8: * main -- test network initialization ! 9: *---------------------------------------------------------------------- ! 10: */ ! 11: main() ! 12: { ! 13: struct frame *fptr; ! 14: int i, len, pr(); ! 15: char ch; ! 16: ! 17: kprintf("Testing frame I/O - PLEASE USE 1 FOR MACHINE ID\n"); ! 18: kprintf("Net 0: frbpool=%d, machid=%d\n", ! 19: frbpool, fdata[0].fmachid); ! 20: fptr = getbuf(frbpool); ! 21: kprintf("Type a message and I'll send it around the net: "); ! 22: gets(fptr->frdata); ! 23: fptr->frlen = strlen(fptr->frdata)+3; ! 24: kprintf("Sending message of %d bytes: %s\n", ! 25: getflen(fptr), fptr->frdata); ! 26: kprintf("Fsend returns %d\n", fsend(0, 1, fptr) ); ! 27: kprintf("Buffer obtained at %o\n", fptr=getbuf(frbpool) ); ! 28: kprintf("Attempting to read message...\n"); ! 29: fptr = freceive(0); ! 30: len = getflen(fptr); ! 31: kprintf("Got %d bytes: ", len); ! 32: for (i=0 ; i < len-3 ; i++) ! 33: if ((ch=fptr->frdata[i]) < ' ') ! 34: kprintf("^%c", ch|0100); ! 35: else if (ch > 0177) ! 36: kprintf("#%c", ch&0177 ); ! 37: else ! 38: kprintf("%c",ch); ! 39: kprintf("\n"); ! 40: kprintf("creating process to print incoming messages\n"); ! 41: resume( create(pr,200,19,"print",1,0) ); ! 42: kprintf("\nType a message at each prompt.\n"); ! 43: while(TRUE) { ! 44: kprintf("Message to send: "); ! 45: gets(fptr->frdata); ! 46: if ( (i = strlen(fptr->frdata)+3) > 120 ) ! 47: i = 120; ! 48: fptr->frlen = i; ! 49: fsend(0,1,fptr); ! 50: fptr = getbuf(frbpool); ! 51: } ! 52: } ! 53: pr(netid) ! 54: int netid; ! 55: { ! 56: struct frame *fptr; ! 57: int i; ! 58: ! 59: kprintf(" P: Starting with netid=%d\n",netid); ! 60: while (TRUE) { ! 61: fptr = freceive(netid); ! 62: i = getflen(fptr); ! 63: fptr->frdata[i-3] = '\0'; ! 64: kprintf(" P: received %s\n", fptr->frdata); ! 65: freebuf(fptr); ! 66: } ! 67: } ! 68: ! 69: P() ! 70: { ! 71: prdumph(); ! 72: qdumph(); ! 73: }
This archive runs on limited infrastructure. Preserving old code on modern bandwidth. Automated agents are requested to crawl responsibly.