pcf.c 5.0 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257
  1. #include "u.h"
  2. #include "../port/lib.h"
  3. #include "mem.h"
  4. #include "dat.h"
  5. #include "fns.h"
  6. #include "io.h"
  7. #include "../port/error.h"
  8. extern Dev rootdevtab;
  9. extern Dev consdevtab;
  10. extern Dev archdevtab;
  11. extern Dev pnpdevtab;
  12. extern Dev envdevtab;
  13. extern Dev pipedevtab;
  14. extern Dev procdevtab;
  15. extern Dev mntdevtab;
  16. extern Dev srvdevtab;
  17. extern Dev dupdevtab;
  18. extern Dev rtcdevtab;
  19. extern Dev ssldevtab;
  20. extern Dev tlsdevtab;
  21. extern Dev capdevtab;
  22. extern Dev kprofdevtab;
  23. extern Dev realtimedevtab;
  24. extern Dev etherdevtab;
  25. extern Dev ipdevtab;
  26. extern Dev drawdevtab;
  27. extern Dev mousedevtab;
  28. extern Dev vgadevtab;
  29. extern Dev sddevtab;
  30. extern Dev floppydevtab;
  31. extern Dev lptdevtab;
  32. extern Dev audiodevtab;
  33. extern Dev pccarddevtab;
  34. extern Dev i82365devtab;
  35. extern Dev uartdevtab;
  36. extern Dev usbdevtab;
  37. Dev* devtab[]={
  38. &rootdevtab,
  39. &consdevtab,
  40. &archdevtab,
  41. &pnpdevtab,
  42. &envdevtab,
  43. &pipedevtab,
  44. &procdevtab,
  45. &mntdevtab,
  46. &srvdevtab,
  47. &dupdevtab,
  48. &rtcdevtab,
  49. &ssldevtab,
  50. &tlsdevtab,
  51. &capdevtab,
  52. &kprofdevtab,
  53. &realtimedevtab,
  54. &etherdevtab,
  55. &ipdevtab,
  56. &drawdevtab,
  57. &mousedevtab,
  58. &vgadevtab,
  59. &sddevtab,
  60. &floppydevtab,
  61. &lptdevtab,
  62. &audiodevtab,
  63. &pccarddevtab,
  64. &i82365devtab,
  65. &uartdevtab,
  66. &usbdevtab,
  67. nil,
  68. };
  69. extern void devpccardlink(void);
  70. extern void devi82365link(void);
  71. extern void apmlink(void);
  72. extern void ether2000link(void);
  73. extern void ether2114xlink(void);
  74. extern void ether589link(void);
  75. extern void ether79c970link(void);
  76. extern void ether8003link(void);
  77. extern void ether8139link(void);
  78. extern void ether82543gclink(void);
  79. extern void ether82557link(void);
  80. extern void ether83815link(void);
  81. extern void etherec2tlink(void);
  82. extern void etherelnk3link(void);
  83. extern void etherga620link(void);
  84. extern void etherigbelink(void);
  85. extern void ethersinklink(void);
  86. extern void ethersmclink(void);
  87. extern void etherwavelanlink(void);
  88. extern void ethermediumlink(void);
  89. extern void pcmciamodemlink(void);
  90. extern void netdevmediumlink(void);
  91. extern void loopbackmediumlink(void);
  92. extern void usbuhcilink(void);
  93. void links(void){
  94. bootlinks();
  95. devpccardlink();
  96. devi82365link();
  97. apmlink();
  98. ether2000link();
  99. ether2114xlink();
  100. ether589link();
  101. ether79c970link();
  102. ether8003link();
  103. ether8139link();
  104. ether82543gclink();
  105. ether82557link();
  106. ether83815link();
  107. etherec2tlink();
  108. etherelnk3link();
  109. etherga620link();
  110. etherigbelink();
  111. ethersinklink();
  112. ethersmclink();
  113. etherwavelanlink();
  114. ethermediumlink();
  115. pcmciamodemlink();
  116. netdevmediumlink();
  117. loopbackmediumlink();
  118. usbuhcilink();
  119. }
  120. extern PCArch archmp;
  121. PCArch* knownarch[] = {
  122. &archmp,
  123. nil,
  124. };
  125. #include "../port/sd.h"
  126. extern SDifc sdataifc;
  127. extern SDifc sd53c8xxifc;
  128. extern SDifc sdmylexifc;
  129. SDifc* sdifc[] = {
  130. &sdataifc,
  131. &sd53c8xxifc,
  132. &sdmylexifc,
  133. nil,
  134. };
  135. extern PhysUart i8250physuart;
  136. extern PhysUart pciphysuart;
  137. PhysUart* physuart[] = {
  138. &i8250physuart,
  139. &pciphysuart,
  140. nil,
  141. };
  142. #define Image IMAGE
  143. #include <draw.h>
  144. #include <memdraw.h>
  145. #include <cursor.h>
  146. #include "screen.h"
  147. extern VGAdev vga3dfxdev;
  148. extern VGAdev vgaark2000pvdev;
  149. extern VGAdev vgaclgd542xdev;
  150. extern VGAdev vgaclgd546xdev;
  151. extern VGAdev vgact65545dev;
  152. extern VGAdev vgacyber938xdev;
  153. extern VGAdev vgaet4000dev;
  154. extern VGAdev vgahiqvideodev;
  155. extern VGAdev vgai81xdev;
  156. extern VGAdev vgamach64xxdev;
  157. extern VGAdev vgamga2164wdev;
  158. extern VGAdev vgamga4xxdev;
  159. extern VGAdev vganeomagicdev;
  160. extern VGAdev vganvidiadev;
  161. extern VGAdev vgas3dev;
  162. extern VGAdev vgat2r4dev;
  163. extern VGAdev vgavmwaredev;
  164. VGAdev* vgadev[] = {
  165. &vga3dfxdev,
  166. &vgaark2000pvdev,
  167. &vgaclgd542xdev,
  168. &vgaclgd546xdev,
  169. &vgact65545dev,
  170. &vgacyber938xdev,
  171. &vgaet4000dev,
  172. &vgahiqvideodev,
  173. &vgai81xdev,
  174. &vgamach64xxdev,
  175. &vgamga2164wdev,
  176. &vgamga4xxdev,
  177. &vganeomagicdev,
  178. &vganvidiadev,
  179. &vgas3dev,
  180. &vgat2r4dev,
  181. &vgavmwaredev,
  182. nil,
  183. };
  184. extern VGAcur vga3dfxcur;
  185. extern VGAcur vgaark2000pvcur;
  186. extern VGAcur vgabt485cur;
  187. extern VGAcur vgaclgd542xcur;
  188. extern VGAcur vgaclgd546xcur;
  189. extern VGAcur vgact65545cur;
  190. extern VGAcur vgacyber938xcur;
  191. extern VGAcur vgaet4000cur;
  192. extern VGAcur vgahiqvideocur;
  193. extern VGAcur vgai81xcur;
  194. extern VGAcur vgamach64xxcur;
  195. extern VGAcur vgamga2164wcur;
  196. extern VGAcur vgamga4xxcur;
  197. extern VGAcur vganeomagiccur;
  198. extern VGAcur vganvidiacur;
  199. extern VGAcur vgargb524cur;
  200. extern VGAcur vgas3cur;
  201. extern VGAcur vgat2r4cur;
  202. extern VGAcur vgatvp3020cur;
  203. extern VGAcur vgatvp3026cur;
  204. extern VGAcur vgavmwarecur;
  205. VGAcur* vgacur[] = {
  206. &vga3dfxcur,
  207. &vgaark2000pvcur,
  208. &vgabt485cur,
  209. &vgaclgd542xcur,
  210. &vgaclgd546xcur,
  211. &vgact65545cur,
  212. &vgacyber938xcur,
  213. &vgaet4000cur,
  214. &vgahiqvideocur,
  215. &vgai81xcur,
  216. &vgamach64xxcur,
  217. &vgamga2164wcur,
  218. &vgamga4xxcur,
  219. &vganeomagiccur,
  220. &vganvidiacur,
  221. &vgargb524cur,
  222. &vgas3cur,
  223. &vgat2r4cur,
  224. &vgatvp3020cur,
  225. &vgatvp3026cur,
  226. &vgavmwarecur,
  227. nil,
  228. };
  229. #include "../ip/ip.h"
  230. extern void ilinit(Fs*);
  231. extern void tcpinit(Fs*);
  232. extern void udpinit(Fs*);
  233. extern void ipifcinit(Fs*);
  234. extern void icmpinit(Fs*);
  235. extern void icmp6init(Fs*);
  236. void (*ipprotoinit[])(Fs*) = {
  237. ilinit,
  238. tcpinit,
  239. udpinit,
  240. ipifcinit,
  241. icmpinit,
  242. icmp6init,
  243. nil,
  244. };
  245. int cpuserver = 0;
  246. char* conffile = "pcf";
  247. ulong kerndate = KERNDATE;