1*881f7e9bSDavid du Colombier #include "u.h"
2*881f7e9bSDavid du Colombier #include "../port/lib.h"
3*881f7e9bSDavid du Colombier #include "mem.h"
4*881f7e9bSDavid du Colombier #include "dat.h"
5*881f7e9bSDavid du Colombier #include "fns.h"
6*881f7e9bSDavid du Colombier #include "io.h"
7*881f7e9bSDavid du Colombier #include "../port/error.h"
8*881f7e9bSDavid du Colombier
9*881f7e9bSDavid du Colombier extern Dev rootdevtab;
10*881f7e9bSDavid du Colombier extern Dev consdevtab;
11*881f7e9bSDavid du Colombier extern Dev envdevtab;
12*881f7e9bSDavid du Colombier extern Dev pipedevtab;
13*881f7e9bSDavid du Colombier extern Dev procdevtab;
14*881f7e9bSDavid du Colombier extern Dev mntdevtab;
15*881f7e9bSDavid du Colombier extern Dev srvdevtab;
16*881f7e9bSDavid du Colombier extern Dev dupdevtab;
17*881f7e9bSDavid du Colombier extern Dev rtcdevtab;
18*881f7e9bSDavid du Colombier extern Dev archdevtab;
19*881f7e9bSDavid du Colombier extern Dev ssldevtab;
20*881f7e9bSDavid du Colombier extern Dev tlsdevtab;
21*881f7e9bSDavid du Colombier extern Dev capdevtab;
22*881f7e9bSDavid du Colombier extern Dev kprofdevtab;
23*881f7e9bSDavid du Colombier extern Dev aoedevtab;
24*881f7e9bSDavid du Colombier extern Dev sddevtab;
25*881f7e9bSDavid du Colombier extern Dev fsdevtab;
26*881f7e9bSDavid du Colombier extern Dev flashdevtab;
27*881f7e9bSDavid du Colombier extern Dev twsidevtab;
28*881f7e9bSDavid du Colombier extern Dev etherdevtab;
29*881f7e9bSDavid du Colombier extern Dev ipdevtab;
30*881f7e9bSDavid du Colombier extern Dev uartdevtab;
31*881f7e9bSDavid du Colombier extern Dev usbdevtab;
32*881f7e9bSDavid du Colombier Dev* devtab[]={
33*881f7e9bSDavid du Colombier &rootdevtab,
34*881f7e9bSDavid du Colombier &consdevtab,
35*881f7e9bSDavid du Colombier &envdevtab,
36*881f7e9bSDavid du Colombier &pipedevtab,
37*881f7e9bSDavid du Colombier &procdevtab,
38*881f7e9bSDavid du Colombier &mntdevtab,
39*881f7e9bSDavid du Colombier &srvdevtab,
40*881f7e9bSDavid du Colombier &dupdevtab,
41*881f7e9bSDavid du Colombier &rtcdevtab,
42*881f7e9bSDavid du Colombier &archdevtab,
43*881f7e9bSDavid du Colombier &ssldevtab,
44*881f7e9bSDavid du Colombier &tlsdevtab,
45*881f7e9bSDavid du Colombier &capdevtab,
46*881f7e9bSDavid du Colombier &kprofdevtab,
47*881f7e9bSDavid du Colombier &aoedevtab,
48*881f7e9bSDavid du Colombier &sddevtab,
49*881f7e9bSDavid du Colombier &fsdevtab,
50*881f7e9bSDavid du Colombier &flashdevtab,
51*881f7e9bSDavid du Colombier &twsidevtab,
52*881f7e9bSDavid du Colombier ðerdevtab,
53*881f7e9bSDavid du Colombier &ipdevtab,
54*881f7e9bSDavid du Colombier &uartdevtab,
55*881f7e9bSDavid du Colombier &usbdevtab,
56*881f7e9bSDavid du Colombier nil,
57*881f7e9bSDavid du Colombier };
58*881f7e9bSDavid du Colombier
59*881f7e9bSDavid du Colombier extern void ether1116link(void);
60*881f7e9bSDavid du Colombier extern void archkwlink(void);
61*881f7e9bSDavid du Colombier extern void ethermediumlink(void);
62*881f7e9bSDavid du Colombier extern void flashkwlink(void);
63*881f7e9bSDavid du Colombier extern void loopbackmediumlink(void);
64*881f7e9bSDavid du Colombier extern void netdevmediumlink(void);
65*881f7e9bSDavid du Colombier extern void usbehcilink(void);
links(void)66*881f7e9bSDavid du Colombier void links(void){
67*881f7e9bSDavid du Colombier bootlinks();
68*881f7e9bSDavid du Colombier
69*881f7e9bSDavid du Colombier ether1116link();
70*881f7e9bSDavid du Colombier archkwlink();
71*881f7e9bSDavid du Colombier ethermediumlink();
72*881f7e9bSDavid du Colombier flashkwlink();
73*881f7e9bSDavid du Colombier loopbackmediumlink();
74*881f7e9bSDavid du Colombier netdevmediumlink();
75*881f7e9bSDavid du Colombier usbehcilink();
76*881f7e9bSDavid du Colombier }
77*881f7e9bSDavid du Colombier
78*881f7e9bSDavid du Colombier #include "../port/sd.h"
79*881f7e9bSDavid du Colombier extern SDifc sdaoeifc;
80*881f7e9bSDavid du Colombier SDifc* sdifc[] = {
81*881f7e9bSDavid du Colombier &sdaoeifc,
82*881f7e9bSDavid du Colombier nil,
83*881f7e9bSDavid du Colombier };
84*881f7e9bSDavid du Colombier
85*881f7e9bSDavid du Colombier extern PhysUart kwphysuart;
86*881f7e9bSDavid du Colombier PhysUart* physuart[] = {
87*881f7e9bSDavid du Colombier &kwphysuart,
88*881f7e9bSDavid du Colombier nil,
89*881f7e9bSDavid du Colombier };
90*881f7e9bSDavid du Colombier
91*881f7e9bSDavid du Colombier #include "../ip/ip.h"
92*881f7e9bSDavid du Colombier extern void tcpinit(Fs*);
93*881f7e9bSDavid du Colombier extern void udpinit(Fs*);
94*881f7e9bSDavid du Colombier extern void ipifcinit(Fs*);
95*881f7e9bSDavid du Colombier extern void icmpinit(Fs*);
96*881f7e9bSDavid du Colombier extern void icmp6init(Fs*);
97*881f7e9bSDavid du Colombier extern void ipmuxinit(Fs*);
98*881f7e9bSDavid du Colombier void (*ipprotoinit[])(Fs*) = {
99*881f7e9bSDavid du Colombier tcpinit,
100*881f7e9bSDavid du Colombier udpinit,
101*881f7e9bSDavid du Colombier ipifcinit,
102*881f7e9bSDavid du Colombier icmpinit,
103*881f7e9bSDavid du Colombier icmp6init,
104*881f7e9bSDavid du Colombier ipmuxinit,
105*881f7e9bSDavid du Colombier nil,
106*881f7e9bSDavid du Colombier };
107*881f7e9bSDavid du Colombier
108*881f7e9bSDavid du Colombier int cpuserver = 1;
109*881f7e9bSDavid du Colombier int i8250freq = 3686000;
110*881f7e9bSDavid du Colombier
111*881f7e9bSDavid du Colombier char* conffile = "/sys/src/9/kw/plug";
112*881f7e9bSDavid du Colombier ulong kerndate = KERNDATE;
113*881f7e9bSDavid du Colombier uchar configfile[]={
114*881f7e9bSDavid du Colombier 0x23,0x20,0x70,0x6c,0x75,0x67,0x20,0x2d,0x20,0x73,0x68,0x65,0x65,0x76,0x61,0x20,
115*881f7e9bSDavid du Colombier 0x70,0x6c,0x75,0x67,0x2c,0x20,0x6f,0x70,0x65,0x6e,0x72,0x64,0x2d,0x63,0x6c,0x69,
116*881f7e9bSDavid du Colombier 0x65,0x6e,0x74,0x2c,0x20,0x67,0x75,0x72,0x75,0x70,0x6c,0x75,0x67,0x2c,0x20,0x64,
117*881f7e9bSDavid du Colombier 0x72,0x65,0x61,0x6d,0x70,0x6c,0x75,0x67,0x20,0x61,0x6e,0x64,0x20,0x6f,0x74,0x68,
118*881f7e9bSDavid du Colombier 0x65,0x72,0x73,0x20,0x62,0x61,0x73,0x65,0x64,0x20,0x6f,0x6e,0x0a,0x23,0x09,0x6d,
119*881f7e9bSDavid du Colombier 0x61,0x72,0x76,0x65,0x6c,0x6c,0x27,0x73,0x20,0x6b,0x69,0x72,0x6b,0x77,0x6f,0x6f,
120*881f7e9bSDavid du Colombier 0x64,0x20,0x73,0x6f,0x63,0x0a,0x64,0x65,0x76,0x0a,0x09,0x72,0x6f,0x6f,0x74,0x0a,
121*881f7e9bSDavid du Colombier 0x09,0x63,0x6f,0x6e,0x73,0x0a,0x09,0x65,0x6e,0x76,0x0a,0x09,0x70,0x69,0x70,0x65,
122*881f7e9bSDavid du Colombier 0x0a,0x09,0x70,0x72,0x6f,0x63,0x0a,0x09,0x6d,0x6e,0x74,0x0a,0x09,0x73,0x72,0x76,
123*881f7e9bSDavid du Colombier 0x0a,0x09,0x64,0x75,0x70,0x0a,0x09,0x72,0x74,0x63,0x0a,0x09,0x61,0x72,0x63,0x68,
124*881f7e9bSDavid du Colombier 0x0a,0x09,0x73,0x73,0x6c,0x0a,0x09,0x74,0x6c,0x73,0x0a,0x09,0x63,0x61,0x70,0x0a,
125*881f7e9bSDavid du Colombier 0x09,0x6b,0x70,0x72,0x6f,0x66,0x0a,0x09,0x61,0x6f,0x65,0x0a,0x09,0x73,0x64,0x0a,
126*881f7e9bSDavid du Colombier 0x09,0x66,0x73,0x0a,0x09,0x66,0x6c,0x61,0x73,0x68,0x0a,0x09,0x74,0x77,0x73,0x69,
127*881f7e9bSDavid du Colombier 0x0a,0x23,0x09,0x70,0x6e,0x70,0x09,0x09,0x70,0x63,0x69,0x0a,0x0a,0x09,0x65,0x74,
128*881f7e9bSDavid du Colombier 0x68,0x65,0x72,0x09,0x09,0x6e,0x65,0x74,0x69,0x66,0x0a,0x09,0x69,0x70,0x09,0x09,
129*881f7e9bSDavid du Colombier 0x61,0x72,0x70,0x20,0x63,0x68,0x61,0x6e,0x64,0x69,0x61,0x6c,0x20,0x69,0x70,0x20,
130*881f7e9bSDavid du Colombier 0x69,0x70,0x76,0x36,0x20,0x69,0x70,0x61,0x75,0x78,0x20,0x69,0x70,0x72,0x6f,0x75,
131*881f7e9bSDavid du Colombier 0x74,0x65,0x20,0x6e,0x65,0x74,0x6c,0x6f,0x67,0x20,0x6e,0x75,0x6c,0x6c,0x6d,0x65,
132*881f7e9bSDavid du Colombier 0x64,0x69,0x75,0x6d,0x20,0x70,0x6b,0x74,0x6d,0x65,0x64,0x69,0x75,0x6d,0x20,0x70,
133*881f7e9bSDavid du Colombier 0x74,0x63,0x6c,0x62,0x73,0x75,0x6d,0x20,0x69,0x6e,0x66,0x65,0x72,0x6e,0x6f,0x0a,
134*881f7e9bSDavid du Colombier 0x0a,0x23,0x23,0x09,0x64,0x72,0x61,0x77,0x09,0x09,0x73,0x63,0x72,0x65,0x65,0x6e,
135*881f7e9bSDavid du Colombier 0x20,0x76,0x67,0x61,0x20,0x76,0x67,0x61,0x78,0x0a,0x23,0x23,0x09,0x6d,0x6f,0x75,
136*881f7e9bSDavid du Colombier 0x73,0x65,0x09,0x09,0x6d,0x6f,0x75,0x73,0x65,0x0a,0x23,0x23,0x09,0x76,0x67,0x61,
137*881f7e9bSDavid du Colombier 0x0a,0x23,0x09,0x6b,0x62,0x6d,0x61,0x70,0x0a,0x23,0x23,0x09,0x6b,0x62,0x69,0x6e,
138*881f7e9bSDavid du Colombier 0x0a,0x0a,0x09,0x75,0x61,0x72,0x74,0x0a,0x09,0x75,0x73,0x62,0x0a,0x0a,0x6c,0x69,
139*881f7e9bSDavid du Colombier 0x6e,0x6b,0x0a,0x09,0x65,0x74,0x68,0x65,0x72,0x31,0x31,0x31,0x36,0x09,0x65,0x74,
140*881f7e9bSDavid du Colombier 0x68,0x65,0x72,0x6d,0x69,0x69,0x0a,0x09,0x61,0x72,0x63,0x68,0x6b,0x77,0x0a,0x09,
141*881f7e9bSDavid du Colombier 0x65,0x74,0x68,0x65,0x72,0x6d,0x65,0x64,0x69,0x75,0x6d,0x0a,0x23,0x20,0x6e,0x6f,
142*881f7e9bSDavid du Colombier 0x20,0x66,0x6c,0x61,0x73,0x68,0x20,0x79,0x65,0x74,0x20,0x66,0x6f,0x72,0x20,0x67,
143*881f7e9bSDavid du Colombier 0x75,0x72,0x75,0x70,0x6c,0x75,0x67,0x20,0x6e,0x6f,0x72,0x20,0x64,0x72,0x65,0x61,
144*881f7e9bSDavid du Colombier 0x6d,0x70,0x6c,0x75,0x67,0x3b,0x20,0x69,0x74,0x20,0x6b,0x65,0x65,0x70,0x73,0x20,
145*881f7e9bSDavid du Colombier 0x63,0x68,0x61,0x6e,0x67,0x69,0x6e,0x67,0x2c,0x20,0x61,0x6e,0x64,0x0a,0x23,0x20,
146*881f7e9bSDavid du Colombier 0x6f,0x6e,0x20,0x74,0x68,0x65,0x20,0x64,0x72,0x65,0x61,0x6d,0x70,0x6c,0x75,0x67,
147*881f7e9bSDavid du Colombier 0x2c,0x20,0x66,0x6c,0x61,0x73,0x68,0x20,0x69,0x73,0x20,0x73,0x70,0x69,0x20,0x69,
148*881f7e9bSDavid du Colombier 0x6e,0x73,0x74,0x65,0x61,0x64,0x20,0x6f,0x66,0x20,0x6e,0x61,0x6e,0x64,0x2e,0x0a,
149*881f7e9bSDavid du Colombier 0x09,0x66,0x6c,0x61,0x73,0x68,0x6b,0x77,0x09,0x09,0x65,0x63,0x63,0x0a,0x09,0x6c,
150*881f7e9bSDavid du Colombier 0x6f,0x6f,0x70,0x62,0x61,0x63,0x6b,0x6d,0x65,0x64,0x69,0x75,0x6d,0x0a,0x09,0x6e,
151*881f7e9bSDavid du Colombier 0x65,0x74,0x64,0x65,0x76,0x6d,0x65,0x64,0x69,0x75,0x6d,0x0a,0x09,0x75,0x73,0x62,
152*881f7e9bSDavid du Colombier 0x65,0x68,0x63,0x69,0x09,0x09,0x75,0x73,0x62,0x65,0x68,0x63,0x69,0x6b,0x77,0x0a,
153*881f7e9bSDavid du Colombier 0x0a,0x69,0x70,0x0a,0x09,0x74,0x63,0x70,0x0a,0x09,0x75,0x64,0x70,0x0a,0x09,0x69,
154*881f7e9bSDavid du Colombier 0x70,0x69,0x66,0x63,0x0a,0x09,0x69,0x63,0x6d,0x70,0x0a,0x09,0x69,0x63,0x6d,0x70,
155*881f7e9bSDavid du Colombier 0x36,0x0a,0x09,0x69,0x70,0x6d,0x75,0x78,0x0a,0x0a,0x6d,0x69,0x73,0x63,0x0a,0x09,
156*881f7e9bSDavid du Colombier 0x72,0x64,0x62,0x0a,0x09,0x63,0x6f,0x70,0x72,0x6f,0x63,0x0a,0x09,0x73,0x64,0x61,
157*881f7e9bSDavid du Colombier 0x6f,0x65,0x09,0x09,0x73,0x64,0x73,0x63,0x73,0x69,0x0a,0x09,0x73,0x6f,0x66,0x74,
158*881f7e9bSDavid du Colombier 0x66,0x70,0x75,0x0a,0x09,0x73,0x79,0x73,0x63,0x61,0x6c,0x6c,0x0a,0x09,0x75,0x61,
159*881f7e9bSDavid du Colombier 0x72,0x74,0x6b,0x77,0x0a,0x09,0x75,0x63,0x61,0x6c,0x6c,0x6f,0x63,0x0a,0x23,0x23,
160*881f7e9bSDavid du Colombier 0x09,0x76,0x67,0x61,0x76,0x65,0x73,0x61,0x0a,0x0a,0x70,0x6f,0x72,0x74,0x0a,0x09,
161*881f7e9bSDavid du Colombier 0x69,0x6e,0x74,0x20,0x63,0x70,0x75,0x73,0x65,0x72,0x76,0x65,0x72,0x20,0x3d,0x20,
162*881f7e9bSDavid du Colombier 0x31,0x3b,0x0a,0x09,0x69,0x6e,0x74,0x20,0x69,0x38,0x32,0x35,0x30,0x66,0x72,0x65,
163*881f7e9bSDavid du Colombier 0x71,0x20,0x3d,0x20,0x33,0x36,0x38,0x36,0x30,0x30,0x30,0x3b,0x0a,0x0a,0x62,0x6f,
164*881f7e9bSDavid du Colombier 0x6f,0x74,0x20,0x63,0x70,0x75,0x0a,0x09,0x74,0x63,0x70,0x0a,0x23,0x09,0x70,0x61,
165*881f7e9bSDavid du Colombier 0x71,0x0a,0x0a,0x62,0x6f,0x6f,0x74,0x64,0x69,0x72,0x0a,0x09,0x62,0x6f,0x6f,0x74,
166*881f7e9bSDavid du Colombier 0x24,0x43,0x4f,0x4e,0x46,0x2e,0x6f,0x75,0x74,0x20,0x62,0x6f,0x6f,0x74,0x0a,0x09,
167*881f7e9bSDavid du Colombier 0x2f,0x61,0x72,0x6d,0x2f,0x62,0x69,0x6e,0x2f,0x69,0x70,0x2f,0x69,0x70,0x63,0x6f,
168*881f7e9bSDavid du Colombier 0x6e,0x66,0x69,0x67,0x0a,0x09,0x2f,0x61,0x72,0x6d,0x2f,0x62,0x69,0x6e,0x2f,0x61,
169*881f7e9bSDavid du Colombier 0x75,0x74,0x68,0x2f,0x66,0x61,0x63,0x74,0x6f,0x74,0x75,0x6d,0x0a,0x09,0x2f,0x61,
170*881f7e9bSDavid du Colombier 0x72,0x6d,0x2f,0x62,0x69,0x6e,0x2f,0x75,0x73,0x62,0x2f,0x75,0x73,0x62,0x64,0x0a,
171*881f7e9bSDavid du Colombier 0x09,0x2f,0x61,0x72,0x6d,0x2f,0x62,0x69,0x6e,0x2f,0x64,0x69,0x73,0x6b,0x2f,0x70,
172*881f7e9bSDavid du Colombier 0x61,0x72,0x74,0x66,0x73,0x0a,0x23,0x09,0x2f,0x61,0x72,0x6d,0x2f,0x62,0x69,0x6e,
173*881f7e9bSDavid du Colombier 0x2f,0x70,0x61,0x71,0x66,0x73,0x0a,
174*881f7e9bSDavid du Colombier
175*881f7e9bSDavid du Colombier 0,
176*881f7e9bSDavid du Colombier };
177