v86 0.4.0 → 0.5.11

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (386) hide show
  1. package/Readme.md +56 -111
  2. package/build/libv86-debug.js +12680 -0
  3. package/build/libv86-debug.mjs +732 -0
  4. package/build/libv86.js +710 -0
  5. package/build/libv86.mjs +637 -0
  6. package/build/v86-debug.wasm +0 -0
  7. package/build/v86-fallback.wasm +0 -0
  8. package/build/v86.wasm +0 -0
  9. package/package.json +12 -35
  10. package/bios/.gitignore +0 -1
  11. package/bios/COPYING.LESSER +0 -165
  12. package/bios/bochs-bios.bin +0 -0
  13. package/bios/bochs-vgabios.bin +0 -0
  14. package/bios/fetch-and-build-seabios.sh +0 -13
  15. package/bios/seabios/.config +0 -113
  16. package/bios/seabios/.config.old +0 -114
  17. package/bios/seabios/.gitignore +0 -4
  18. package/bios/seabios/COPYING +0 -674
  19. package/bios/seabios/COPYING.LESSER +0 -165
  20. package/bios/seabios/Makefile +0 -286
  21. package/bios/seabios/README +0 -17
  22. package/bios/seabios/docs/Build_overview.md +0 -104
  23. package/bios/seabios/docs/Contributing.md +0 -20
  24. package/bios/seabios/docs/Debugging.md +0 -111
  25. package/bios/seabios/docs/Developer_Documentation.md +0 -25
  26. package/bios/seabios/docs/Developer_links.md +0 -86
  27. package/bios/seabios/docs/Download.md +0 -27
  28. package/bios/seabios/docs/Execution_and_code_flow.md +0 -178
  29. package/bios/seabios/docs/Linking_overview.md +0 -160
  30. package/bios/seabios/docs/Mailinglist.md +0 -8
  31. package/bios/seabios/docs/Memory_Model.md +0 -253
  32. package/bios/seabios/docs/README +0 -5
  33. package/bios/seabios/docs/Releases.md +0 -482
  34. package/bios/seabios/docs/Runtime_config.md +0 -193
  35. package/bios/seabios/docs/SeaBIOS.md +0 -17
  36. package/bios/seabios/docs/SeaVGABIOS.md +0 -39
  37. package/bios/seabios/out/autoconf.h +0 -117
  38. package/bios/seabios/out/include/config/acpi/dsdt.h +0 -0
  39. package/bios/seabios/out/include/config/acpi.h +0 -0
  40. package/bios/seabios/out/include/config/ahci.h +0 -0
  41. package/bios/seabios/out/include/config/apmbios.h +0 -0
  42. package/bios/seabios/out/include/config/ata/dma.h +0 -0
  43. package/bios/seabios/out/include/config/ata/pio32.h +0 -0
  44. package/bios/seabios/out/include/config/ata.h +0 -0
  45. package/bios/seabios/out/include/config/auto.conf +0 -69
  46. package/bios/seabios/out/include/config/auto.conf.cmd +0 -9
  47. package/bios/seabios/out/include/config/boot.h +0 -0
  48. package/bios/seabios/out/include/config/bootorder.h +0 -0
  49. package/bios/seabios/out/include/config/build/vgabios.h +0 -0
  50. package/bios/seabios/out/include/config/call32/smm.h +0 -0
  51. package/bios/seabios/out/include/config/cdrom/boot.h +0 -0
  52. package/bios/seabios/out/include/config/cdrom/emu.h +0 -0
  53. package/bios/seabios/out/include/config/debug/level.h +0 -0
  54. package/bios/seabios/out/include/config/drives.h +0 -0
  55. package/bios/seabios/out/include/config/entry/extrastack.h +0 -0
  56. package/bios/seabios/out/include/config/esp/scsi.h +0 -0
  57. package/bios/seabios/out/include/config/flash/floppy.h +0 -0
  58. package/bios/seabios/out/include/config/floppy.h +0 -0
  59. package/bios/seabios/out/include/config/fw/romfile/load.h +0 -0
  60. package/bios/seabios/out/include/config/hardware/irq.h +0 -0
  61. package/bios/seabios/out/include/config/kbd/call/int15/4f.h +0 -0
  62. package/bios/seabios/out/include/config/keyboard.h +0 -0
  63. package/bios/seabios/out/include/config/lpt.h +0 -0
  64. package/bios/seabios/out/include/config/lsi/scsi.h +0 -0
  65. package/bios/seabios/out/include/config/malloc/uppermemory.h +0 -0
  66. package/bios/seabios/out/include/config/megasas.h +0 -0
  67. package/bios/seabios/out/include/config/mouse.h +0 -0
  68. package/bios/seabios/out/include/config/mpt/scsi.h +0 -0
  69. package/bios/seabios/out/include/config/mptable.h +0 -0
  70. package/bios/seabios/out/include/config/mtrr/init.h +0 -0
  71. package/bios/seabios/out/include/config/optionroms.h +0 -0
  72. package/bios/seabios/out/include/config/override/pci/id.h +0 -0
  73. package/bios/seabios/out/include/config/pcibios.h +0 -0
  74. package/bios/seabios/out/include/config/pirtable.h +0 -0
  75. package/bios/seabios/out/include/config/pmm.h +0 -0
  76. package/bios/seabios/out/include/config/pmtimer.h +0 -0
  77. package/bios/seabios/out/include/config/pnpbios.h +0 -0
  78. package/bios/seabios/out/include/config/ps2port.h +0 -0
  79. package/bios/seabios/out/include/config/pvscsi.h +0 -0
  80. package/bios/seabios/out/include/config/qemu/hardware.h +0 -0
  81. package/bios/seabios/out/include/config/qemu.h +0 -0
  82. package/bios/seabios/out/include/config/rom/size.h +0 -0
  83. package/bios/seabios/out/include/config/rtc/timer.h +0 -0
  84. package/bios/seabios/out/include/config/s3/resume.h +0 -0
  85. package/bios/seabios/out/include/config/sdcard.h +0 -0
  86. package/bios/seabios/out/include/config/serial.h +0 -0
  87. package/bios/seabios/out/include/config/tcgbios.h +0 -0
  88. package/bios/seabios/out/include/config/threads.h +0 -0
  89. package/bios/seabios/out/include/config/tristate.conf +0 -4
  90. package/bios/seabios/out/include/config/tsc/timer.h +0 -0
  91. package/bios/seabios/out/include/config/use/smm.h +0 -0
  92. package/bios/seabios/out/include/config/vga/allocate/extra/stack.h +0 -0
  93. package/bios/seabios/out/include/config/vga/bochs/stdvga.h +0 -0
  94. package/bios/seabios/out/include/config/vga/bochs.h +0 -0
  95. package/bios/seabios/out/include/config/vga/did.h +0 -0
  96. package/bios/seabios/out/include/config/vga/extra/stack/size.h +0 -0
  97. package/bios/seabios/out/include/config/vga/fixup/asm.h +0 -0
  98. package/bios/seabios/out/include/config/vga/pci.h +0 -0
  99. package/bios/seabios/out/include/config/vga/stdvga/ports.h +0 -0
  100. package/bios/seabios/out/include/config/vga/vbe.h +0 -0
  101. package/bios/seabios/out/include/config/vga/vid.h +0 -0
  102. package/bios/seabios/out/include/config/vgahooks.h +0 -0
  103. package/bios/seabios/out/include/config/virtio/blk.h +0 -0
  104. package/bios/seabios/out/include/config/virtio/scsi.h +0 -0
  105. package/bios/seabios/out/include/config/xen.h +0 -0
  106. package/bios/seabios/out/scripts/kconfig/conf +0 -0
  107. package/bios/seabios/out/scripts/kconfig/conf.o +0 -0
  108. package/bios/seabios/out/scripts/kconfig/zconf.hash.c +0 -289
  109. package/bios/seabios/out/scripts/kconfig/zconf.lex.c +0 -2420
  110. package/bios/seabios/out/scripts/kconfig/zconf.tab.c +0 -2538
  111. package/bios/seabios/out/scripts/kconfig/zconf.tab.o +0 -0
  112. package/bios/seabios/scripts/acpi_extract.py +0 -366
  113. package/bios/seabios/scripts/acpi_extract_preprocess.py +0 -41
  114. package/bios/seabios/scripts/buildrom.py +0 -56
  115. package/bios/seabios/scripts/buildversion.py +0 -134
  116. package/bios/seabios/scripts/checkrom.py +0 -95
  117. package/bios/seabios/scripts/checkstack.py +0 -226
  118. package/bios/seabios/scripts/checksum.py +0 -16
  119. package/bios/seabios/scripts/encodeint.py +0 -21
  120. package/bios/seabios/scripts/gen-offsets.sh +0 -17
  121. package/bios/seabios/scripts/kconfig/.gitignore +0 -22
  122. package/bios/seabios/scripts/kconfig/Makefile +0 -331
  123. package/bios/seabios/scripts/kconfig/POTFILES.in +0 -12
  124. package/bios/seabios/scripts/kconfig/check.sh +0 -13
  125. package/bios/seabios/scripts/kconfig/conf.c +0 -718
  126. package/bios/seabios/scripts/kconfig/confdata.c +0 -1250
  127. package/bios/seabios/scripts/kconfig/expr.c +0 -1168
  128. package/bios/seabios/scripts/kconfig/expr.h +0 -241
  129. package/bios/seabios/scripts/kconfig/gconf.c +0 -1542
  130. package/bios/seabios/scripts/kconfig/gconf.glade +0 -661
  131. package/bios/seabios/scripts/kconfig/images.c +0 -326
  132. package/bios/seabios/scripts/kconfig/kxgettext.c +0 -235
  133. package/bios/seabios/scripts/kconfig/lex.zconf.c +0 -2430
  134. package/bios/seabios/scripts/kconfig/list.h +0 -131
  135. package/bios/seabios/scripts/kconfig/lkc.h +0 -200
  136. package/bios/seabios/scripts/kconfig/lkc_proto.h +0 -57
  137. package/bios/seabios/scripts/kconfig/lxdialog/.gitignore +0 -4
  138. package/bios/seabios/scripts/kconfig/lxdialog/BIG.FAT.WARNING +0 -4
  139. package/bios/seabios/scripts/kconfig/lxdialog/check-lxdialog.sh +0 -87
  140. package/bios/seabios/scripts/kconfig/lxdialog/checklist.c +0 -332
  141. package/bios/seabios/scripts/kconfig/lxdialog/dialog.h +0 -257
  142. package/bios/seabios/scripts/kconfig/lxdialog/inputbox.c +0 -301
  143. package/bios/seabios/scripts/kconfig/lxdialog/menubox.c +0 -437
  144. package/bios/seabios/scripts/kconfig/lxdialog/textbox.c +0 -408
  145. package/bios/seabios/scripts/kconfig/lxdialog/util.c +0 -713
  146. package/bios/seabios/scripts/kconfig/lxdialog/yesno.c +0 -114
  147. package/bios/seabios/scripts/kconfig/mconf.c +0 -1036
  148. package/bios/seabios/scripts/kconfig/menu.c +0 -697
  149. package/bios/seabios/scripts/kconfig/merge_config.sh +0 -150
  150. package/bios/seabios/scripts/kconfig/nconf.c +0 -1556
  151. package/bios/seabios/scripts/kconfig/nconf.gui.c +0 -656
  152. package/bios/seabios/scripts/kconfig/nconf.h +0 -96
  153. package/bios/seabios/scripts/kconfig/qconf.cc +0 -1795
  154. package/bios/seabios/scripts/kconfig/qconf.h +0 -338
  155. package/bios/seabios/scripts/kconfig/streamline_config.pl +0 -647
  156. package/bios/seabios/scripts/kconfig/symbol.c +0 -1373
  157. package/bios/seabios/scripts/kconfig/util.c +0 -157
  158. package/bios/seabios/scripts/kconfig/zconf.gperf +0 -48
  159. package/bios/seabios/scripts/kconfig/zconf.hash.c_shipped +0 -289
  160. package/bios/seabios/scripts/kconfig/zconf.l +0 -363
  161. package/bios/seabios/scripts/kconfig/zconf.lex.c_shipped +0 -2420
  162. package/bios/seabios/scripts/kconfig/zconf.tab.c_shipped +0 -2538
  163. package/bios/seabios/scripts/kconfig/zconf.y +0 -733
  164. package/bios/seabios/scripts/layoutrom.py +0 -705
  165. package/bios/seabios/scripts/python23compat.py +0 -14
  166. package/bios/seabios/scripts/readserial.py +0 -190
  167. package/bios/seabios/scripts/tarball.sh +0 -36
  168. package/bios/seabios/scripts/test-build.sh +0 -90
  169. package/bios/seabios/scripts/transdump.py +0 -53
  170. package/bios/seabios/scripts/vgafixup.py +0 -96
  171. package/bios/seabios/src/Kconfig +0 -579
  172. package/bios/seabios/src/apm.c +0 -215
  173. package/bios/seabios/src/asm-offsets.c +0 -23
  174. package/bios/seabios/src/biosvar.h +0 -130
  175. package/bios/seabios/src/block.c +0 -623
  176. package/bios/seabios/src/block.h +0 -121
  177. package/bios/seabios/src/bmp.c +0 -117
  178. package/bios/seabios/src/boot.c +0 -793
  179. package/bios/seabios/src/bootsplash.c +0 -255
  180. package/bios/seabios/src/bregs.h +0 -80
  181. package/bios/seabios/src/byteorder.h +0 -71
  182. package/bios/seabios/src/cdrom.c +0 -322
  183. package/bios/seabios/src/clock.c +0 -506
  184. package/bios/seabios/src/code16gcc.s +0 -1
  185. package/bios/seabios/src/config.h +0 -108
  186. package/bios/seabios/src/cp437.c +0 -275
  187. package/bios/seabios/src/cp437.h +0 -1
  188. package/bios/seabios/src/disk.c +0 -779
  189. package/bios/seabios/src/e820map.c +0 -152
  190. package/bios/seabios/src/e820map.h +0 -26
  191. package/bios/seabios/src/entryfuncs.S +0 -165
  192. package/bios/seabios/src/farptr.h +0 -208
  193. package/bios/seabios/src/font.c +0 -139
  194. package/bios/seabios/src/fw/acpi-dsdt-cpu-hotplug.dsl +0 -78
  195. package/bios/seabios/src/fw/acpi-dsdt-dbug.dsl +0 -26
  196. package/bios/seabios/src/fw/acpi-dsdt-hpet.dsl +0 -36
  197. package/bios/seabios/src/fw/acpi-dsdt-isa.dsl +0 -102
  198. package/bios/seabios/src/fw/acpi-dsdt-pci-crs.dsl +0 -90
  199. package/bios/seabios/src/fw/acpi-dsdt.dsl +0 -342
  200. package/bios/seabios/src/fw/acpi-dsdt.hex +0 -554
  201. package/bios/seabios/src/fw/acpi.c +0 -685
  202. package/bios/seabios/src/fw/biostables.c +0 -491
  203. package/bios/seabios/src/fw/coreboot.c +0 -569
  204. package/bios/seabios/src/fw/csm.c +0 -347
  205. package/bios/seabios/src/fw/dev-pci.h +0 -52
  206. package/bios/seabios/src/fw/dev-piix.h +0 -29
  207. package/bios/seabios/src/fw/dev-q35.h +0 -52
  208. package/bios/seabios/src/fw/lzmadecode.c +0 -398
  209. package/bios/seabios/src/fw/lzmadecode.h +0 -67
  210. package/bios/seabios/src/fw/mptable.c +0 -197
  211. package/bios/seabios/src/fw/mtrr.c +0 -105
  212. package/bios/seabios/src/fw/multiboot.c +0 -111
  213. package/bios/seabios/src/fw/paravirt.c +0 -624
  214. package/bios/seabios/src/fw/paravirt.h +0 -63
  215. package/bios/seabios/src/fw/pciinit.c +0 -1187
  216. package/bios/seabios/src/fw/pirtable.c +0 -103
  217. package/bios/seabios/src/fw/q35-acpi-dsdt.dsl +0 -450
  218. package/bios/seabios/src/fw/romfile_loader.c +0 -259
  219. package/bios/seabios/src/fw/romfile_loader.h +0 -91
  220. package/bios/seabios/src/fw/shadow.c +0 -208
  221. package/bios/seabios/src/fw/smbios.c +0 -585
  222. package/bios/seabios/src/fw/smm.c +0 -269
  223. package/bios/seabios/src/fw/smp.c +0 -194
  224. package/bios/seabios/src/fw/ssdt-misc.dsl +0 -104
  225. package/bios/seabios/src/fw/ssdt-misc.hex +0 -88
  226. package/bios/seabios/src/fw/ssdt-pcihp.dsl +0 -36
  227. package/bios/seabios/src/fw/ssdt-pcihp.hex +0 -38
  228. package/bios/seabios/src/fw/ssdt-proc.dsl +0 -48
  229. package/bios/seabios/src/fw/ssdt-proc.hex +0 -35
  230. package/bios/seabios/src/fw/xen.c +0 -149
  231. package/bios/seabios/src/fw/xen.h +0 -125
  232. package/bios/seabios/src/gen-defs.h +0 -19
  233. package/bios/seabios/src/hw/ahci.c +0 -697
  234. package/bios/seabios/src/hw/ahci.h +0 -201
  235. package/bios/seabios/src/hw/ata.c +0 -1046
  236. package/bios/seabios/src/hw/ata.h +0 -163
  237. package/bios/seabios/src/hw/blockcmd.c +0 -372
  238. package/bios/seabios/src/hw/blockcmd.h +0 -114
  239. package/bios/seabios/src/hw/dma.c +0 -67
  240. package/bios/seabios/src/hw/esp-scsi.c +0 -241
  241. package/bios/seabios/src/hw/esp-scsi.h +0 -8
  242. package/bios/seabios/src/hw/floppy.c +0 -741
  243. package/bios/seabios/src/hw/lsi-scsi.c +0 -221
  244. package/bios/seabios/src/hw/lsi-scsi.h +0 -8
  245. package/bios/seabios/src/hw/megasas.c +0 -405
  246. package/bios/seabios/src/hw/megasas.h +0 -8
  247. package/bios/seabios/src/hw/mpt-scsi.c +0 -319
  248. package/bios/seabios/src/hw/mpt-scsi.h +0 -8
  249. package/bios/seabios/src/hw/nvme-int.h +0 -199
  250. package/bios/seabios/src/hw/nvme.c +0 -708
  251. package/bios/seabios/src/hw/nvme.h +0 -17
  252. package/bios/seabios/src/hw/pci.c +0 -133
  253. package/bios/seabios/src/hw/pci.h +0 -47
  254. package/bios/seabios/src/hw/pci_ids.h +0 -2632
  255. package/bios/seabios/src/hw/pci_regs.h +0 -556
  256. package/bios/seabios/src/hw/pcidevice.c +0 -192
  257. package/bios/seabios/src/hw/pcidevice.h +0 -76
  258. package/bios/seabios/src/hw/pic.c +0 -115
  259. package/bios/seabios/src/hw/pic.h +0 -60
  260. package/bios/seabios/src/hw/ps2port.c +0 -543
  261. package/bios/seabios/src/hw/ps2port.h +0 -67
  262. package/bios/seabios/src/hw/pvscsi.c +0 -333
  263. package/bios/seabios/src/hw/pvscsi.h +0 -8
  264. package/bios/seabios/src/hw/ramdisk.c +0 -108
  265. package/bios/seabios/src/hw/rtc.c +0 -100
  266. package/bios/seabios/src/hw/rtc.h +0 -75
  267. package/bios/seabios/src/hw/sdcard.c +0 -572
  268. package/bios/seabios/src/hw/serialio.c +0 -113
  269. package/bios/seabios/src/hw/serialio.h +0 -29
  270. package/bios/seabios/src/hw/timer.c +0 -259
  271. package/bios/seabios/src/hw/tpm_drivers.c +0 -636
  272. package/bios/seabios/src/hw/tpm_drivers.h +0 -127
  273. package/bios/seabios/src/hw/usb-ehci.c +0 -650
  274. package/bios/seabios/src/hw/usb-ehci.h +0 -177
  275. package/bios/seabios/src/hw/usb-hid.c +0 -442
  276. package/bios/seabios/src/hw/usb-hid.h +0 -29
  277. package/bios/seabios/src/hw/usb-hub.c +0 -205
  278. package/bios/seabios/src/hw/usb-hub.h +0 -64
  279. package/bios/seabios/src/hw/usb-msc.c +0 -222
  280. package/bios/seabios/src/hw/usb-msc.h +0 -10
  281. package/bios/seabios/src/hw/usb-ohci.c +0 -568
  282. package/bios/seabios/src/hw/usb-ohci.h +0 -144
  283. package/bios/seabios/src/hw/usb-uas.c +0 -289
  284. package/bios/seabios/src/hw/usb-uas.h +0 -9
  285. package/bios/seabios/src/hw/usb-uhci.c +0 -571
  286. package/bios/seabios/src/hw/usb-uhci.h +0 -128
  287. package/bios/seabios/src/hw/usb-xhci.c +0 -1161
  288. package/bios/seabios/src/hw/usb-xhci.h +0 -133
  289. package/bios/seabios/src/hw/usb.c +0 -499
  290. package/bios/seabios/src/hw/usb.h +0 -254
  291. package/bios/seabios/src/hw/virtio-blk.c +0 -211
  292. package/bios/seabios/src/hw/virtio-blk.h +0 -43
  293. package/bios/seabios/src/hw/virtio-pci.c +0 -501
  294. package/bios/seabios/src/hw/virtio-pci.h +0 -151
  295. package/bios/seabios/src/hw/virtio-ring.c +0 -147
  296. package/bios/seabios/src/hw/virtio-ring.h +0 -121
  297. package/bios/seabios/src/hw/virtio-scsi.c +0 -220
  298. package/bios/seabios/src/hw/virtio-scsi.h +0 -47
  299. package/bios/seabios/src/jpeg.c +0 -1055
  300. package/bios/seabios/src/kbd.c +0 -599
  301. package/bios/seabios/src/list.h +0 -91
  302. package/bios/seabios/src/malloc.c +0 -561
  303. package/bios/seabios/src/malloc.h +0 -70
  304. package/bios/seabios/src/memmap.h +0 -21
  305. package/bios/seabios/src/misc.c +0 -195
  306. package/bios/seabios/src/mouse.c +0 -342
  307. package/bios/seabios/src/optionroms.c +0 -475
  308. package/bios/seabios/src/output.c +0 -584
  309. package/bios/seabios/src/output.h +0 -68
  310. package/bios/seabios/src/pcibios.c +0 -241
  311. package/bios/seabios/src/pmm.c +0 -176
  312. package/bios/seabios/src/pnpbios.c +0 -88
  313. package/bios/seabios/src/post.c +0 -337
  314. package/bios/seabios/src/resume.c +0 -157
  315. package/bios/seabios/src/romfile.c +0 -146
  316. package/bios/seabios/src/romfile.h +0 -21
  317. package/bios/seabios/src/romlayout.S +0 -698
  318. package/bios/seabios/src/sercon.c +0 -677
  319. package/bios/seabios/src/serial.c +0 -317
  320. package/bios/seabios/src/sha1.c +0 -147
  321. package/bios/seabios/src/sha1.h +0 -8
  322. package/bios/seabios/src/stacks.c +0 -771
  323. package/bios/seabios/src/stacks.h +0 -68
  324. package/bios/seabios/src/std/LegacyBios.h +0 -985
  325. package/bios/seabios/src/std/acpi.h +0 -323
  326. package/bios/seabios/src/std/bda.h +0 -174
  327. package/bios/seabios/src/std/disk.h +0 -175
  328. package/bios/seabios/src/std/mptable.h +0 -77
  329. package/bios/seabios/src/std/multiboot.h +0 -260
  330. package/bios/seabios/src/std/optionrom.h +0 -59
  331. package/bios/seabios/src/std/pirtable.h +0 -35
  332. package/bios/seabios/src/std/pmm.h +0 -19
  333. package/bios/seabios/src/std/pnpbios.h +0 -24
  334. package/bios/seabios/src/std/smbios.h +0 -167
  335. package/bios/seabios/src/std/tcg.h +0 -554
  336. package/bios/seabios/src/std/vbe.h +0 -156
  337. package/bios/seabios/src/std/vga.h +0 -63
  338. package/bios/seabios/src/string.c +0 -251
  339. package/bios/seabios/src/string.h +0 -31
  340. package/bios/seabios/src/system.c +0 -357
  341. package/bios/seabios/src/tcgbios.c +0 -2014
  342. package/bios/seabios/src/tcgbios.h +0 -19
  343. package/bios/seabios/src/types.h +0 -156
  344. package/bios/seabios/src/util.h +0 -251
  345. package/bios/seabios/src/version.c +0 -5
  346. package/bios/seabios/src/vgahooks.c +0 -355
  347. package/bios/seabios/src/x86.c +0 -23
  348. package/bios/seabios/src/x86.h +0 -277
  349. package/bios/seabios/vgasrc/Kconfig +0 -211
  350. package/bios/seabios/vgasrc/bochsdisplay.c +0 -59
  351. package/bios/seabios/vgasrc/bochsvga.c +0 -447
  352. package/bios/seabios/vgasrc/bochsvga.h +0 -57
  353. package/bios/seabios/vgasrc/cbvga.c +0 -337
  354. package/bios/seabios/vgasrc/clext.c +0 -627
  355. package/bios/seabios/vgasrc/geodevga.c +0 -434
  356. package/bios/seabios/vgasrc/geodevga.h +0 -89
  357. package/bios/seabios/vgasrc/ramfb.c +0 -163
  358. package/bios/seabios/vgasrc/stdvga.c +0 -485
  359. package/bios/seabios/vgasrc/stdvga.h +0 -81
  360. package/bios/seabios/vgasrc/stdvgaio.c +0 -186
  361. package/bios/seabios/vgasrc/stdvgamodes.c +0 -534
  362. package/bios/seabios/vgasrc/swcursor.c +0 -96
  363. package/bios/seabios/vgasrc/vbe.c +0 -432
  364. package/bios/seabios/vgasrc/vgabios.c +0 -1131
  365. package/bios/seabios/vgasrc/vgabios.h +0 -88
  366. package/bios/seabios/vgasrc/vgaentry.S +0 -161
  367. package/bios/seabios/vgasrc/vgafb.c +0 -661
  368. package/bios/seabios/vgasrc/vgafb.h +0 -42
  369. package/bios/seabios/vgasrc/vgafonts.c +0 -785
  370. package/bios/seabios/vgasrc/vgahw.h +0 -152
  371. package/bios/seabios/vgasrc/vgainit.c +0 -202
  372. package/bios/seabios/vgasrc/vgalayout.lds.S +0 -23
  373. package/bios/seabios/vgasrc/vgautil.h +0 -103
  374. package/bios/seabios/vgasrc/vgaversion.c +0 -6
  375. package/bios/seabios-debug.bin +0 -0
  376. package/bios/seabios-debug.config +0 -117
  377. package/bios/seabios.bin +0 -0
  378. package/bios/seabios.config +0 -114
  379. package/bios/vgabios-debug.bin +0 -0
  380. package/bios/vgabios.bin +0 -0
  381. package/build/binaries.js +0 -1
  382. package/build/index-debug.cjs +0 -1
  383. package/build/index-debug.js +0 -1
  384. package/build/index.cjs +0 -1
  385. package/build/index.js +0 -1
  386. package/v86.css +0 -259
@@ -1,177 +0,0 @@
1
- #ifndef __USB_EHCI_H
2
- #define __USB_EHCI_H
3
-
4
- // usb-ehci.c
5
- void ehci_setup(void);
6
- void ehci_wait_controllers(void);
7
- struct usbdevice_s;
8
- struct usb_endpoint_descriptor;
9
- struct usb_pipe;
10
- struct usb_pipe *ehci_realloc_pipe(struct usbdevice_s *usbdev
11
- , struct usb_pipe *upipe
12
- , struct usb_endpoint_descriptor *epdesc);
13
- int ehci_send_pipe(struct usb_pipe *p, int dir, const void *cmd
14
- , void *data, int datasize);
15
- int ehci_poll_intr(struct usb_pipe *p, void *data);
16
-
17
-
18
- /****************************************************************
19
- * ehci structs and flags
20
- ****************************************************************/
21
-
22
- struct ehci_caps {
23
- u8 caplength;
24
- u8 reserved_01;
25
- u16 hciversion;
26
- u32 hcsparams;
27
- u32 hccparams;
28
- u64 portroute;
29
- } PACKED;
30
-
31
- #define HCC_64BIT_ADDR 1
32
-
33
- #define HCS_N_PORTS_MASK 0xf
34
-
35
- struct ehci_regs {
36
- u32 usbcmd;
37
- u32 usbsts;
38
- u32 usbintr;
39
- u32 frindex;
40
- u32 ctrldssegment;
41
- u32 periodiclistbase;
42
- u32 asynclistbase;
43
- u32 reserved[9];
44
- u32 configflag;
45
- u32 portsc[0];
46
- } PACKED;
47
-
48
- #define CMD_PARK (1<<11)
49
- #define CMD_PARK_CNT(c) (((c)>>8)&3)
50
- #define CMD_LRESET (1<<7)
51
- #define CMD_IAAD (1<<6)
52
- #define CMD_ASE (1<<5)
53
- #define CMD_PSE (1<<4)
54
- #define CMD_HCRESET (1<<1)
55
- #define CMD_RUN (1<<0)
56
-
57
- #define STS_ASS (1<<15)
58
- #define STS_PSS (1<<14)
59
- #define STS_RECL (1<<13)
60
- #define STS_HALT (1<<12)
61
- #define STS_IAA (1<<5)
62
- #define STS_FATAL (1<<4)
63
- #define STS_FLR (1<<3)
64
- #define STS_PCD (1<<2)
65
- #define STS_ERR (1<<1)
66
- #define STS_INT (1<<0)
67
-
68
- #define FLAG_CF (1<<0)
69
-
70
- #define PORT_WKOC_E (1<<22)
71
- #define PORT_WKDISC_E (1<<21)
72
- #define PORT_WKCONN_E (1<<20)
73
- #define PORT_TEST_PKT (0x4<<16)
74
- #define PORT_LED_OFF (0<<14)
75
- #define PORT_LED_AMBER (1<<14)
76
- #define PORT_LED_GREEN (2<<14)
77
- #define PORT_LED_MASK (3<<14)
78
- #define PORT_OWNER (1<<13)
79
- #define PORT_POWER (1<<12)
80
- #define PORT_LINESTATUS_MASK (3<<10)
81
- #define PORT_LINESTATUS_KSTATE (1<<10)
82
- #define PORT_RESET (1<<8)
83
- #define PORT_SUSPEND (1<<7)
84
- #define PORT_RESUME (1<<6)
85
- #define PORT_OCC (1<<5)
86
- #define PORT_OC (1<<4)
87
- #define PORT_PEC (1<<3)
88
- #define PORT_PE (1<<2)
89
- #define PORT_CSC (1<<1)
90
- #define PORT_CONNECT (1<<0)
91
- #define PORT_RWC_BITS (PORT_CSC | PORT_PEC | PORT_OCC)
92
-
93
-
94
- #define EHCI_QH_ALIGN 128 // Can't span a 4K boundary, so increase from 32
95
-
96
- struct ehci_qh {
97
- u32 next;
98
- u32 info1;
99
- u32 info2;
100
- u32 current;
101
-
102
- u32 qtd_next;
103
- u32 alt_next;
104
- u32 token;
105
- u32 buf[5];
106
- u32 buf_hi[5];
107
- } PACKED;
108
-
109
- #define QH_CONTROL (1 << 27)
110
- #define QH_MAXPACKET_SHIFT 16
111
- #define QH_MAXPACKET_MASK (0x7ff << QH_MAXPACKET_SHIFT)
112
- #define QH_HEAD (1 << 15)
113
- #define QH_TOGGLECONTROL (1 << 14)
114
- #define QH_SPEED_SHIFT 12
115
- #define QH_SPEED_MASK (0x3 << QH_SPEED_SHIFT)
116
- #define QH_EP_SHIFT 8
117
- #define QH_EP_MASK (0xf << QH_EP_SHIFT)
118
- #define QH_DEVADDR_SHIFT 0
119
- #define QH_DEVADDR_MASK (0x7f << QH_DEVADDR_SHIFT)
120
-
121
- #define QH_SMASK_SHIFT 0
122
- #define QH_SMASK_MASK (0xff << QH_SMASK_SHIFT)
123
- #define QH_CMASK_SHIFT 8
124
- #define QH_CMASK_MASK (0xff << QH_CMASK_SHIFT)
125
- #define QH_HUBADDR_SHIFT 16
126
- #define QH_HUBADDR_MASK (0x7f << QH_HUBADDR_SHIFT)
127
- #define QH_HUBPORT_SHIFT 23
128
- #define QH_HUBPORT_MASK (0x7f << QH_HUBPORT_SHIFT)
129
- #define QH_MULT_SHIFT 30
130
- #define QH_MULT_MASK (0x3 << QH_MULT_SHIFT)
131
-
132
- #define EHCI_PTR_BITS 0x001F
133
- #define EHCI_PTR_TERM 0x0001
134
- #define EHCI_PTR_QH 0x0002
135
-
136
-
137
- #define EHCI_QTD_ALIGN 64 // Can't span a 4K boundary, so increase from 32
138
-
139
- struct ehci_qtd {
140
- u32 qtd_next;
141
- u32 alt_next;
142
- u32 token;
143
- u32 buf[5];
144
- u32 buf_hi[5];
145
- /* keep struct size a multiple of 64 bytes, as we're allocating
146
- arrays. Without this padding, the second qtd could have the
147
- wrong alignment. */
148
- } PACKED __aligned(EHCI_QTD_ALIGN);
149
-
150
- #define QTD_TOGGLE (1 << 31)
151
- #define QTD_LENGTH_SHIFT 16
152
- #define QTD_LENGTH_MASK (0x7fff << QTD_LENGTH_SHIFT)
153
- #define QTD_CERR_SHIFT 10
154
- #define QTD_CERR_MASK (0x3 << QTD_CERR_SHIFT)
155
- #define QTD_IOC (1 << 15)
156
- #define QTD_PID_OUT (0x0 << 8)
157
- #define QTD_PID_IN (0x1 << 8)
158
- #define QTD_PID_SETUP (0x2 << 8)
159
- #define QTD_STS_ACTIVE (1 << 7)
160
- #define QTD_STS_HALT (1 << 6)
161
- #define QTD_STS_DBE (1 << 5)
162
- #define QTD_STS_BABBLE (1 << 4)
163
- #define QTD_STS_XACT (1 << 3)
164
- #define QTD_STS_MMF (1 << 2)
165
- #define QTD_STS_STS (1 << 1)
166
- #define QTD_STS_PING (1 << 0)
167
-
168
- #define ehci_explen(len) (((len) << QTD_LENGTH_SHIFT) & QTD_LENGTH_MASK)
169
-
170
- #define ehci_maxerr(err) (((err) << QTD_CERR_SHIFT) & QTD_CERR_MASK)
171
-
172
-
173
- struct ehci_framelist {
174
- u32 links[1024];
175
- } PACKED;
176
-
177
- #endif // usb-ehci.h
@@ -1,442 +0,0 @@
1
- // Code for handling USB Human Interface Devices (HID).
2
- //
3
- // Copyright (C) 2009 Kevin O'Connor <kevin@koconnor.net>
4
- //
5
- // This file may be distributed under the terms of the GNU LGPLv3 license.
6
-
7
- #include "biosvar.h" // GET_GLOBAL
8
- #include "config.h" // CONFIG_*
9
- #include "output.h" // dprintf
10
- #include "ps2port.h" // ATKBD_CMD_GETID
11
- #include "usb.h" // usb_ctrlrequest
12
- #include "usb-hid.h" // usb_keyboard_setup
13
- #include "util.h" // process_key
14
-
15
- struct usb_pipe *keyboard_pipe VARFSEG;
16
- struct usb_pipe *mouse_pipe VARFSEG;
17
-
18
-
19
- /****************************************************************
20
- * Setup
21
- ****************************************************************/
22
-
23
- // Send USB HID protocol message.
24
- static int
25
- set_protocol(struct usb_pipe *pipe, u16 val)
26
- {
27
- struct usb_ctrlrequest req;
28
- req.bRequestType = USB_DIR_OUT | USB_TYPE_CLASS | USB_RECIP_INTERFACE;
29
- req.bRequest = HID_REQ_SET_PROTOCOL;
30
- req.wValue = val;
31
- req.wIndex = 0;
32
- req.wLength = 0;
33
- return usb_send_default_control(pipe, &req, NULL);
34
- }
35
-
36
- // Send USB HID SetIdle request.
37
- static int
38
- set_idle(struct usb_pipe *pipe, int ms)
39
- {
40
- struct usb_ctrlrequest req;
41
- req.bRequestType = USB_DIR_OUT | USB_TYPE_CLASS | USB_RECIP_INTERFACE;
42
- req.bRequest = HID_REQ_SET_IDLE;
43
- req.wValue = (ms/4)<<8;
44
- req.wIndex = 0;
45
- req.wLength = 0;
46
- return usb_send_default_control(pipe, &req, NULL);
47
- }
48
-
49
- #define KEYREPEATWAITMS 500
50
- #define KEYREPEATMS 33
51
-
52
- static int
53
- usb_kbd_setup(struct usbdevice_s *usbdev
54
- , struct usb_endpoint_descriptor *epdesc)
55
- {
56
- if (! CONFIG_USB_KEYBOARD)
57
- return -1;
58
- if (keyboard_pipe)
59
- // XXX - this enables the first found keyboard (could be random)
60
- return -1;
61
-
62
- if (epdesc->wMaxPacketSize != 8)
63
- return -1;
64
-
65
- // Enable "boot" protocol.
66
- int ret = set_protocol(usbdev->defpipe, 0);
67
- if (ret)
68
- return -1;
69
- // Periodically send reports to enable key repeat.
70
- ret = set_idle(usbdev->defpipe, KEYREPEATMS);
71
- if (ret)
72
- return -1;
73
-
74
- keyboard_pipe = usb_alloc_pipe(usbdev, epdesc);
75
- if (!keyboard_pipe)
76
- return -1;
77
-
78
- dprintf(1, "USB keyboard initialized\n");
79
- return 0;
80
- }
81
-
82
- static int
83
- usb_mouse_setup(struct usbdevice_s *usbdev
84
- , struct usb_endpoint_descriptor *epdesc)
85
- {
86
- if (! CONFIG_USB_MOUSE)
87
- return -1;
88
- if (mouse_pipe)
89
- // XXX - this enables the first found mouse (could be random)
90
- return -1;
91
-
92
- if (epdesc->wMaxPacketSize < 3 || epdesc->wMaxPacketSize > 8)
93
- return -1;
94
-
95
- // Enable "boot" protocol.
96
- int ret = set_protocol(usbdev->defpipe, 0);
97
- if (ret)
98
- return -1;
99
-
100
- mouse_pipe = usb_alloc_pipe(usbdev, epdesc);
101
- if (!mouse_pipe)
102
- return -1;
103
-
104
- dprintf(1, "USB mouse initialized\n");
105
- return 0;
106
- }
107
-
108
- // Initialize a found USB HID device (if applicable).
109
- int
110
- usb_hid_setup(struct usbdevice_s *usbdev)
111
- {
112
- if (! CONFIG_USB_KEYBOARD && ! CONFIG_USB_MOUSE)
113
- return -1;
114
- dprintf(2, "usb_hid_setup %p\n", usbdev->defpipe);
115
-
116
- struct usb_interface_descriptor *iface = usbdev->iface;
117
- if (iface->bInterfaceSubClass != USB_INTERFACE_SUBCLASS_BOOT)
118
- // Doesn't support boot protocol.
119
- return -1;
120
-
121
- // Find intr in endpoint.
122
- struct usb_endpoint_descriptor *epdesc = usb_find_desc(
123
- usbdev, USB_ENDPOINT_XFER_INT, USB_DIR_IN);
124
- if (!epdesc) {
125
- dprintf(1, "No usb hid intr in?\n");
126
- return -1;
127
- }
128
-
129
- if (iface->bInterfaceProtocol == USB_INTERFACE_PROTOCOL_KEYBOARD)
130
- return usb_kbd_setup(usbdev, epdesc);
131
- if (iface->bInterfaceProtocol == USB_INTERFACE_PROTOCOL_MOUSE)
132
- return usb_mouse_setup(usbdev, epdesc);
133
- return -1;
134
- }
135
-
136
-
137
- /****************************************************************
138
- * Keyboard events
139
- ****************************************************************/
140
-
141
- // Mapping from USB key id to ps2 key sequence.
142
- static u16 KeyToScanCode[] VAR16 = {
143
- 0x0000, 0x0000, 0x0000, 0x0000, 0x001e, 0x0030, 0x002e, 0x0020,
144
- 0x0012, 0x0021, 0x0022, 0x0023, 0x0017, 0x0024, 0x0025, 0x0026,
145
- 0x0032, 0x0031, 0x0018, 0x0019, 0x0010, 0x0013, 0x001f, 0x0014,
146
- 0x0016, 0x002f, 0x0011, 0x002d, 0x0015, 0x002c, 0x0002, 0x0003,
147
- 0x0004, 0x0005, 0x0006, 0x0007, 0x0008, 0x0009, 0x000a, 0x000b,
148
- 0x001c, 0x0001, 0x000e, 0x000f, 0x0039, 0x000c, 0x000d, 0x001a,
149
- 0x001b, 0x002b, 0x0000, 0x0027, 0x0028, 0x0029, 0x0033, 0x0034,
150
- 0x0035, 0x003a, 0x003b, 0x003c, 0x003d, 0x003e, 0x003f, 0x0040,
151
- 0x0041, 0x0042, 0x0043, 0x0044, 0x0057, 0x0058, 0xe037, 0x0046,
152
- 0xe145, 0xe052, 0xe047, 0xe049, 0xe053, 0xe04f, 0xe051, 0xe04d,
153
- 0xe04b, 0xe050, 0xe048, 0x0045, 0xe035, 0x0037, 0x004a, 0x004e,
154
- 0xe01c, 0x004f, 0x0050, 0x0051, 0x004b, 0x004c, 0x004d, 0x0047,
155
- 0x0048, 0x0049, 0x0052, 0x0053
156
- };
157
-
158
- // Mapping from USB modifier id to ps2 key sequence.
159
- static u16 ModifierToScanCode[] VAR16 = {
160
- //lcntl, lshift, lalt, lgui, rcntl, rshift, ralt, rgui
161
- 0x001d, 0x002a, 0x0038, 0xe05b, 0xe01d, 0x0036, 0xe038, 0xe05c
162
- };
163
-
164
- #define RELEASEBIT 0x80
165
-
166
- // Format of USB keyboard event data
167
- struct keyevent {
168
- u8 modifiers;
169
- u8 reserved;
170
- u8 keys[6];
171
- };
172
-
173
- // Translate data from KeyToScanCode[] to calls to process_key().
174
- static void
175
- prockeys(u16 scancode, u8 key_release, u8 mods)
176
- {
177
- if (scancode > 0xff) {
178
- if (scancode == 0xe145) {
179
- // XXX - a real AT keyboard would immediately send the key release
180
- if (mods & ((1<<0) | (1<<4))) {
181
- // Cntr+Break key
182
- process_key(0xe0);
183
- process_key(0x46 | key_release);
184
- } else {
185
- // Pause key
186
- process_key(0xe1);
187
- process_key(0x1d | key_release);
188
- process_key(0x45 | key_release);
189
- }
190
- return;
191
- } else if (scancode == 0xe037 && mods & ((1<<2) | (1<<6))) {
192
- // Alt+SysReq key
193
- process_key(0x54 | key_release);
194
- return;
195
- }
196
- process_key(0xe0);
197
- }
198
- process_key(scancode | key_release);
199
- }
200
-
201
- // Handle a USB key press/release event.
202
- static void
203
- procscankey(u8 key, u8 key_release, u8 mods)
204
- {
205
- if (key >= ARRAY_SIZE(KeyToScanCode))
206
- return;
207
- u16 scancode = GET_GLOBAL(KeyToScanCode[key]);
208
- if (scancode)
209
- prockeys(scancode, key_release, mods);
210
- }
211
-
212
- // Handle a USB modifier press/release event.
213
- static void
214
- procmodkey(u8 mods, u8 key_release)
215
- {
216
- int i;
217
- for (i=0; mods; i++)
218
- if (mods & (1<<i)) {
219
- // Modifier key change.
220
- prockeys(GET_GLOBAL(ModifierToScanCode[i]), key_release, 0);
221
- mods &= ~(1<<i);
222
- }
223
- }
224
-
225
- struct usbkeyinfo {
226
- union {
227
- struct {
228
- u8 modifiers;
229
- u8 repeatcount;
230
- u8 keys[6];
231
- };
232
- u64 data;
233
- };
234
- };
235
- struct usbkeyinfo LastUSBkey VARLOW;
236
-
237
- // Process USB keyboard data.
238
- static void
239
- handle_key(struct keyevent *data)
240
- {
241
- dprintf(9, "Got key %x %x\n", data->modifiers, data->keys[0]);
242
-
243
- // Load old keys.
244
- struct usbkeyinfo old;
245
- old.data = GET_LOW(LastUSBkey.data);
246
-
247
- // Check for keys no longer pressed.
248
- int addpos = 0;
249
- int i;
250
- for (i=0; i<ARRAY_SIZE(old.keys); i++) {
251
- u8 key = old.keys[i];
252
- if (!key)
253
- break;
254
- int j;
255
- for (j=0;; j++) {
256
- if (j>=ARRAY_SIZE(data->keys)) {
257
- // Key released.
258
- procscankey(key, RELEASEBIT, data->modifiers);
259
- if (i+1 >= ARRAY_SIZE(old.keys) || !old.keys[i+1])
260
- // Last pressed key released - disable repeat.
261
- old.repeatcount = 0xff;
262
- break;
263
- }
264
- if (data->keys[j] == key) {
265
- // Key still pressed.
266
- data->keys[j] = 0;
267
- old.keys[addpos++] = key;
268
- break;
269
- }
270
- }
271
- }
272
- procmodkey(old.modifiers & ~data->modifiers, RELEASEBIT);
273
-
274
- // Process new keys
275
- procmodkey(data->modifiers & ~old.modifiers, 0);
276
- old.modifiers = data->modifiers;
277
- for (i=0; i<ARRAY_SIZE(data->keys); i++) {
278
- u8 key = data->keys[i];
279
- if (!key)
280
- continue;
281
- // New key pressed.
282
- procscankey(key, 0, data->modifiers);
283
- old.keys[addpos++] = key;
284
- old.repeatcount = KEYREPEATWAITMS / KEYREPEATMS + 1;
285
- }
286
- if (addpos < ARRAY_SIZE(old.keys))
287
- old.keys[addpos] = 0;
288
-
289
- // Check for key repeat event.
290
- if (addpos) {
291
- if (!old.repeatcount)
292
- procscankey(old.keys[addpos-1], 0, data->modifiers);
293
- else if (old.repeatcount != 0xff)
294
- old.repeatcount--;
295
- }
296
-
297
- // Update old keys
298
- SET_LOW(LastUSBkey.data, old.data);
299
- }
300
-
301
- // Check if a USB keyboard event is pending and process it if so.
302
- static void
303
- usb_check_key(void)
304
- {
305
- if (! CONFIG_USB_KEYBOARD)
306
- return;
307
- struct usb_pipe *pipe = GET_GLOBAL(keyboard_pipe);
308
- if (!pipe)
309
- return;
310
-
311
- for (;;) {
312
- struct keyevent data;
313
- int ret = usb_poll_intr(pipe, &data);
314
- if (ret)
315
- break;
316
- handle_key(&data);
317
- }
318
- }
319
-
320
- // Test if USB keyboard is active.
321
- inline int
322
- usb_kbd_active(void)
323
- {
324
- if (! CONFIG_USB_KEYBOARD)
325
- return 0;
326
- return GET_GLOBAL(keyboard_pipe) != NULL;
327
- }
328
-
329
- // Handle a ps2 style keyboard command.
330
- inline int
331
- usb_kbd_command(int command, u8 *param)
332
- {
333
- if (! CONFIG_USB_KEYBOARD)
334
- return -1;
335
- dprintf(9, "usb keyboard cmd=%x\n", command);
336
- switch (command) {
337
- case ATKBD_CMD_GETID:
338
- // Return the id of a standard AT keyboard.
339
- param[0] = 0xab;
340
- param[1] = 0x83;
341
- return 0;
342
- default:
343
- return -1;
344
- }
345
- }
346
-
347
-
348
- /****************************************************************
349
- * Mouse events
350
- ****************************************************************/
351
-
352
- // Format of USB mouse event data
353
- struct mouseevent {
354
- u8 buttons;
355
- u8 x, y;
356
- u8 reserved[5];
357
- };
358
-
359
- // Process USB mouse data.
360
- static void
361
- handle_mouse(struct mouseevent *data)
362
- {
363
- dprintf(9, "Got mouse b=%x x=%x y=%x\n", data->buttons, data->x, data->y);
364
-
365
- s8 x = data->x, y = -data->y;
366
- u8 flag = ((data->buttons & 0x7) | (1<<3)
367
- | (x & 0x80 ? (1<<4) : 0) | (y & 0x80 ? (1<<5) : 0));
368
- process_mouse(flag);
369
- process_mouse(x);
370
- process_mouse(y);
371
- }
372
-
373
- // Check if a USB mouse event is pending and process it if so.
374
- static void
375
- usb_check_mouse(void)
376
- {
377
- if (! CONFIG_USB_MOUSE)
378
- return;
379
- struct usb_pipe *pipe = GET_GLOBAL(mouse_pipe);
380
- if (!pipe)
381
- return;
382
-
383
- for (;;) {
384
- struct mouseevent data;
385
- int ret = usb_poll_intr(pipe, &data);
386
- if (ret)
387
- break;
388
- handle_mouse(&data);
389
- }
390
- }
391
-
392
- // Test if USB mouse is active.
393
- inline int
394
- usb_mouse_active(void)
395
- {
396
- if (! CONFIG_USB_MOUSE)
397
- return 0;
398
- return GET_GLOBAL(mouse_pipe) != NULL;
399
- }
400
-
401
- // Handle a ps2 style mouse command.
402
- inline int
403
- usb_mouse_command(int command, u8 *param)
404
- {
405
- if (! CONFIG_USB_MOUSE)
406
- return -1;
407
- dprintf(9, "usb mouse cmd=%x\n", command);
408
- switch (command) {
409
- case PSMOUSE_CMD_ENABLE:
410
- case PSMOUSE_CMD_DISABLE:
411
- case PSMOUSE_CMD_SETSCALE11:
412
- return 0;
413
- case PSMOUSE_CMD_SETSCALE21:
414
- case PSMOUSE_CMD_SETRATE:
415
- case PSMOUSE_CMD_SETRES:
416
- // XXX
417
- return 0;
418
- case PSMOUSE_CMD_RESET_BAT:
419
- case PSMOUSE_CMD_GETID:
420
- // Return the id of a standard AT mouse.
421
- param[0] = 0xaa;
422
- param[1] = 0x00;
423
- return 0;
424
-
425
- case PSMOUSE_CMD_GETINFO:
426
- param[0] = 0x00;
427
- param[1] = 4;
428
- param[2] = 100;
429
- return 0;
430
-
431
- default:
432
- return -1;
433
- }
434
- }
435
-
436
- // Check for USB events pending - called periodically from timer interrupt.
437
- void
438
- usb_check_event(void)
439
- {
440
- usb_check_key();
441
- usb_check_mouse();
442
- }
@@ -1,29 +0,0 @@
1
- #ifndef __USB_HID_H
2
- #define __USB_HID_H
3
-
4
- // usb-hid.c
5
- struct usbdevice_s;
6
- int usb_hid_setup(struct usbdevice_s *usbdev);
7
- int usb_kbd_active(void);
8
- int usb_kbd_command(int command, u8 *param);
9
- int usb_mouse_active(void);
10
- int usb_mouse_command(int command, u8 *param);
11
- void usb_check_event(void);
12
-
13
-
14
- /****************************************************************
15
- * hid flags
16
- ****************************************************************/
17
-
18
- #define USB_INTERFACE_SUBCLASS_BOOT 1
19
- #define USB_INTERFACE_PROTOCOL_KEYBOARD 1
20
- #define USB_INTERFACE_PROTOCOL_MOUSE 2
21
-
22
- #define HID_REQ_GET_REPORT 0x01
23
- #define HID_REQ_GET_IDLE 0x02
24
- #define HID_REQ_GET_PROTOCOL 0x03
25
- #define HID_REQ_SET_REPORT 0x09
26
- #define HID_REQ_SET_IDLE 0x0A
27
- #define HID_REQ_SET_PROTOCOL 0x0B
28
-
29
- #endif // ush-hid.h