|
|
1.1 root 1: /* test.c - main */
2:
3: #include <conf.h>
4: #include <kernel.h>
5: #include <mark.h>
6: #include <ports.h>
7:
8: /*----------------------------------------------------------------------
9: * main -- simple ports test
10: *----------------------------------------------------------------------
11: */
12: main()
13: {
14: int port1, port2, p();
15:
16: kprintf("Testing ports\n");
17: kprintf("Pcreate(2) returns %d\n", port1=pcreate(2) );
18: kprintf("Pcreate(3) returns %d\n", port2=pcreate(3) );
19: kprintf("Psend(%d,100) = %d\n", port1, psend(port1,100) );
20: kprintf("Preceive(%d) = %d\n", port1, preceive(port1) );
21: kprintf("Psend(%d, 200) = %d\n", port1, psend(port1,200) );
22: kprintf("Psend(%d, 300) = %d\n", port1, psend(port1,300) );
23: kprintf("Psend(%d, 400) = %d\n", port2, psend(port2,400) );
24: kprintf("Preceive(%d) = %d\n", port2, preceive(port2) );
25: kprintf("Preceive(%d) = %d\n", port1, preceive(port1) );
26: kprintf("Preceive(%d) = %d\n", port1, preceive(port1) );
27: kprintf("Psend(%d, 500) = %d\n", port2, psend(port2,500) );
28: kprintf("Psend(%d, 600) = %d\n", port2, psend(port2,600) );
29: kprintf("Psend(%d, 700) = %d\n", port2, psend(port2,700) );
30: kprintf("Creating process to read port %d\n", port2);
31: resume(create(p,300,25,"ptest",1, port2));
32: kprintf("Attempt to overflow port and cause wait\n");
33: kprintf("Psend(%d, 800) = %d\n", port2, psend(port2,800) );
34: kprintf("Psend(%d, 810) = %d\n", port2, psend(port2,810) );
35: kprintf("Psend(%d, 820) = %d\n", port2, psend(port2,820) );
36: kprintf("Psend(%d, 830) = %d\n", port2, psend(port2,830) );
37:
38: }
39: p(port)
40: {
41: int msg;
42:
43: kprintf(" P:reading port %d every five seconds\n",port);
44: for (msg=0 ; msg != 830 ; sleep10(50) )
45: kprintf(" P: preceive(%d) = %d\n",port,msg=preceive(port));
46: kprintf("End of port test\n");
47: }
This archive runs on limited infrastructure. Preserving old code on modern bandwidth. Automated agents are requested to crawl responsibly.