v86 0.3.7 → 0.5.10

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 +64 -108
  2. package/build/libv86-debug.js +12677 -0
  3. package/build/libv86-debug.mjs +732 -0
  4. package/build/libv86.js +710 -0
  5. package/build/libv86.mjs +636 -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,323 +0,0 @@
1
- #ifndef __ACPI_H
2
- #define __ACPI_H
3
-
4
- #include "types.h" // u32
5
-
6
- /*
7
- * ACPI 2.0 Generic Address Space definition.
8
- */
9
- struct acpi_20_generic_address {
10
- u8 address_space_id;
11
- u8 register_bit_width;
12
- u8 register_bit_offset;
13
- u8 reserved;
14
- u64 address;
15
- } PACKED;
16
-
17
- #define RSDP_SIGNATURE 0x2052545020445352LL // "RSD PTR "
18
-
19
- struct rsdp_descriptor { /* Root System Descriptor Pointer */
20
- u64 signature; /* ACPI signature, contains "RSD PTR " */
21
- u8 checksum; /* To make sum of struct == 0 */
22
- u8 oem_id [6]; /* OEM identification */
23
- u8 revision; /* Must be 0 for 1.0, 2 for 2.0 */
24
- u32 rsdt_physical_address; /* 32-bit physical address of RSDT */
25
- u32 length; /* XSDT Length in bytes including hdr */
26
- u64 xsdt_physical_address; /* 64-bit physical address of XSDT */
27
- u8 extended_checksum; /* Checksum of entire table */
28
- u8 reserved [3]; /* Reserved field must be 0 */
29
- };
30
-
31
- /* Table structure from Linux kernel (the ACPI tables are under the
32
- BSD license) */
33
-
34
- #define ACPI_TABLE_HEADER_DEF /* ACPI common table header */ \
35
- u32 signature; /* ACPI signature (4 ASCII characters) */ \
36
- u32 length; /* Length of table, in bytes, including header */ \
37
- u8 revision; /* ACPI Specification minor version # */ \
38
- u8 checksum; /* To make sum of entire table == 0 */ \
39
- u8 oem_id [6]; /* OEM identification */ \
40
- u8 oem_table_id [8]; /* OEM table identification */ \
41
- u32 oem_revision; /* OEM revision number */ \
42
- u8 asl_compiler_id [4]; /* ASL compiler vendor ID */ \
43
- u32 asl_compiler_revision; /* ASL compiler revision number */
44
-
45
- /*
46
- * Fixed ACPI Description Table Fixed Feature Flags
47
- */
48
- #define ACPI_FADT_F_WBINVD (1 << 0)
49
- #define ACPI_FADT_F_WBINVD_FLUSH (1 << 1)
50
- #define ACPI_FADT_F_PROC_C1 (1 << 2)
51
- #define ACPI_FADT_F_P_LVL2_UP (1 << 3)
52
- #define ACPI_FADT_F_PWR_BUTTON (1 << 4)
53
- #define ACPI_FADT_F_SLP_BUTTON (1 << 5)
54
- #define ACPI_FADT_F_FIX_RTC (1 << 6)
55
- #define ACPI_FADT_F_RTC_S4 (1 << 7)
56
- #define ACPI_FADT_F_TMR_VAL_EXT (1 << 8)
57
- #define ACPI_FADT_F_DCK_CAP (1 << 9)
58
- #define ACPI_FADT_F_RESET_REG_SUP (1 << 10)
59
- #define ACPI_FADT_F_SEALED_CASE (1 << 11)
60
- #define ACPI_FADT_F_HEADLESS (1 << 12)
61
- #define ACPI_FADT_F_CPU_SW_SLP (1 << 13)
62
- #define ACPI_FADT_F_PCI_EXP_WAK (1 << 14)
63
- #define ACPI_FADT_F_USE_PLATFORM_CLOCK (1 << 15)
64
- #define ACPI_FADT_F_S4_RTC_STS_VALID (1 << 16)
65
- #define ACPI_FADT_F_REMOTE_POWER_ON_CAPABLE (1 << 17)
66
- #define ACPI_FADT_F_FORCE_APIC_CLUSTER_MODEL (1 << 18)
67
- #define ACPI_FADT_F_FORCE_APIC_PHYSICAL_DESTINATION_MODE (1 << 19)
68
- #define ACPI_FADT_F_HW_REDUCED_ACPI (1 << 20)
69
- #define ACPI_FADT_F_LOW_POWER_S0_IDLE_CAPABLE (1 << 21)
70
-
71
- /*
72
- * ACPI 1.0 Fixed ACPI Description Table (FADT)
73
- */
74
- #define FACP_SIGNATURE 0x50434146 // FACP
75
- struct fadt_descriptor_rev1
76
- {
77
- ACPI_TABLE_HEADER_DEF /* ACPI common table header */
78
- u32 firmware_ctrl; /* Physical address of FACS */
79
- u32 dsdt; /* Physical address of DSDT */
80
- u8 model; /* System Interrupt Model */
81
- u8 reserved1; /* Reserved */
82
- u16 sci_int; /* System vector of SCI interrupt */
83
- u32 smi_cmd; /* Port address of SMI command port */
84
- u8 acpi_enable; /* Value to write to smi_cmd to enable ACPI */
85
- u8 acpi_disable; /* Value to write to smi_cmd to disable ACPI */
86
- u8 S4bios_req; /* Value to write to SMI CMD to enter S4BIOS state */
87
- u8 reserved2; /* Reserved - must be zero */
88
- u32 pm1a_evt_blk; /* Port address of Power Mgt 1a acpi_event Reg Blk */
89
- u32 pm1b_evt_blk; /* Port address of Power Mgt 1b acpi_event Reg Blk */
90
- u32 pm1a_cnt_blk; /* Port address of Power Mgt 1a Control Reg Blk */
91
- u32 pm1b_cnt_blk; /* Port address of Power Mgt 1b Control Reg Blk */
92
- u32 pm2_cnt_blk; /* Port address of Power Mgt 2 Control Reg Blk */
93
- u32 pm_tmr_blk; /* Port address of Power Mgt Timer Ctrl Reg Blk */
94
- u32 gpe0_blk; /* Port addr of General Purpose acpi_event 0 Reg Blk */
95
- u32 gpe1_blk; /* Port addr of General Purpose acpi_event 1 Reg Blk */
96
- u8 pm1_evt_len; /* Byte length of ports at pm1_x_evt_blk */
97
- u8 pm1_cnt_len; /* Byte length of ports at pm1_x_cnt_blk */
98
- u8 pm2_cnt_len; /* Byte Length of ports at pm2_cnt_blk */
99
- u8 pm_tmr_len; /* Byte Length of ports at pm_tm_blk */
100
- u8 gpe0_blk_len; /* Byte Length of ports at gpe0_blk */
101
- u8 gpe1_blk_len; /* Byte Length of ports at gpe1_blk */
102
- u8 gpe1_base; /* Offset in gpe model where gpe1 events start */
103
- u8 reserved3; /* Reserved */
104
- u16 plvl2_lat; /* Worst case HW latency to enter/exit C2 state */
105
- u16 plvl3_lat; /* Worst case HW latency to enter/exit C3 state */
106
- u16 flush_size; /* Size of area read to flush caches */
107
- u16 flush_stride; /* Stride used in flushing caches */
108
- u8 duty_offset; /* Bit location of duty cycle field in p_cnt reg */
109
- u8 duty_width; /* Bit width of duty cycle field in p_cnt reg */
110
- u8 day_alrm; /* Index to day-of-month alarm in RTC CMOS RAM */
111
- u8 mon_alrm; /* Index to month-of-year alarm in RTC CMOS RAM */
112
- u8 century; /* Index to century in RTC CMOS RAM */
113
- u8 reserved4; /* Reserved */
114
- u8 reserved4a; /* Reserved */
115
- u8 reserved4b; /* Reserved */
116
- u32 flags;
117
- } PACKED;
118
-
119
- struct acpi_table_header /* ACPI common table header */
120
- {
121
- ACPI_TABLE_HEADER_DEF
122
- } PACKED;
123
-
124
- /*
125
- * ACPI 1.0 Root System Description Table (RSDT)
126
- */
127
- #define RSDT_SIGNATURE 0x54445352 // RSDT
128
- struct rsdt_descriptor_rev1
129
- {
130
- ACPI_TABLE_HEADER_DEF /* ACPI common table header */
131
- u32 table_offset_entry[0]; /* Array of pointers to other */
132
- /* ACPI tables */
133
- } PACKED;
134
-
135
- /*
136
- * ACPI 1.0 Firmware ACPI Control Structure (FACS)
137
- */
138
- #define FACS_SIGNATURE 0x53434146 // FACS
139
- struct facs_descriptor_rev1
140
- {
141
- u32 signature; /* ACPI Signature */
142
- u32 length; /* Length of structure, in bytes */
143
- u32 hardware_signature; /* Hardware configuration signature */
144
- u32 firmware_waking_vector; /* ACPI OS waking vector */
145
- u32 global_lock; /* Global Lock */
146
- u32 flags;
147
- u8 resverved3 [40]; /* Reserved - must be zero */
148
- } PACKED;
149
-
150
- /*
151
- * Differentiated System Description Table (DSDT)
152
- */
153
- #define DSDT_SIGNATURE 0x54445344 // DSDT
154
-
155
- /*
156
- * MADT values and structures
157
- */
158
-
159
- /* Values for MADT PCATCompat */
160
-
161
- #define DUAL_PIC 0
162
- #define MULTIPLE_APIC 1
163
-
164
- /* Master MADT */
165
-
166
- #define APIC_SIGNATURE 0x43495041 // APIC
167
- struct multiple_apic_table
168
- {
169
- ACPI_TABLE_HEADER_DEF /* ACPI common table header */
170
- u32 local_apic_address; /* Physical address of local APIC */
171
- u32 flags;
172
- } PACKED;
173
-
174
- /* Values for Type in APIC sub-headers */
175
-
176
- #define APIC_PROCESSOR 0
177
- #define APIC_IO 1
178
- #define APIC_XRUPT_OVERRIDE 2
179
- #define APIC_NMI 3
180
- #define APIC_LOCAL_NMI 4
181
- #define APIC_ADDRESS_OVERRIDE 5
182
- #define APIC_IO_SAPIC 6
183
- #define APIC_LOCAL_SAPIC 7
184
- #define APIC_XRUPT_SOURCE 8
185
- #define APIC_RESERVED 9 /* 9 and greater are reserved */
186
-
187
- /*
188
- * MADT sub-structures (Follow MULTIPLE_APIC_DESCRIPTION_TABLE)
189
- */
190
- #define ACPI_SUB_HEADER_DEF /* Common ACPI sub-structure header */\
191
- u8 type; \
192
- u8 length;
193
-
194
- /* Sub-structures for MADT */
195
-
196
- struct madt_processor_apic
197
- {
198
- ACPI_SUB_HEADER_DEF
199
- u8 processor_id; /* ACPI processor id */
200
- u8 local_apic_id; /* Processor's local APIC id */
201
- u32 flags;
202
- } PACKED;
203
-
204
- struct madt_io_apic
205
- {
206
- ACPI_SUB_HEADER_DEF
207
- u8 io_apic_id; /* I/O APIC ID */
208
- u8 reserved; /* Reserved - must be zero */
209
- u32 address; /* APIC physical address */
210
- u32 interrupt; /* Global system interrupt where INTI
211
- * lines start */
212
- } PACKED;
213
-
214
- struct madt_intsrcovr {
215
- ACPI_SUB_HEADER_DEF
216
- u8 bus;
217
- u8 source;
218
- u32 gsi;
219
- u16 flags;
220
- } PACKED;
221
-
222
- struct madt_local_nmi {
223
- ACPI_SUB_HEADER_DEF
224
- u8 processor_id; /* ACPI processor id */
225
- u16 flags; /* MPS INTI flags */
226
- u8 lint; /* Local APIC LINT# */
227
- } PACKED;
228
-
229
- /*
230
- * HPET Description Table
231
- */
232
- #define HPET_SIGNATURE 0x54455048 // HPET
233
- struct acpi_20_hpet {
234
- ACPI_TABLE_HEADER_DEF /* ACPI common table header */
235
- u32 timer_block_id;
236
- struct acpi_20_generic_address addr;
237
- u8 hpet_number;
238
- u16 min_tick;
239
- u8 page_protect;
240
- } PACKED;
241
-
242
- /*
243
- * SRAT (NUMA topology description) table
244
- */
245
-
246
- #define SRAT_SIGNATURE 0x54415253 // SRAT
247
- struct system_resource_affinity_table
248
- {
249
- ACPI_TABLE_HEADER_DEF
250
- u32 reserved1;
251
- u32 reserved2[2];
252
- } PACKED;
253
-
254
- #define SRAT_PROCESSOR 0
255
- #define SRAT_MEMORY 1
256
-
257
- struct srat_processor_affinity
258
- {
259
- ACPI_SUB_HEADER_DEF
260
- u8 proximity_lo;
261
- u8 local_apic_id;
262
- u32 flags;
263
- u8 local_sapic_eid;
264
- u8 proximity_hi[3];
265
- u32 reserved;
266
- } PACKED;
267
-
268
- struct srat_memory_affinity
269
- {
270
- ACPI_SUB_HEADER_DEF
271
- u8 proximity[4];
272
- u16 reserved1;
273
- u64 base_addr;
274
- u64 range_length;
275
- u32 reserved2;
276
- u32 flags;
277
- u32 reserved3[2];
278
- } PACKED;
279
-
280
- /* PCI fw r3.0 MCFG table. */
281
- /* Subtable */
282
- struct acpi_mcfg_allocation {
283
- u64 address; /* Base address, processor-relative */
284
- u16 pci_segment; /* PCI segment group number */
285
- u8 start_bus_number; /* Starting PCI Bus number */
286
- u8 end_bus_number; /* Final PCI Bus number */
287
- u32 reserved;
288
- } PACKED;
289
-
290
- #define MCFG_SIGNATURE 0x4746434d // MCFG
291
- struct acpi_table_mcfg {
292
- ACPI_TABLE_HEADER_DEF;
293
- u8 reserved[8];
294
- struct acpi_mcfg_allocation allocation[0];
295
- } PACKED;
296
-
297
- #define TCPA_SIGNATURE 0x41504354
298
- struct tcpa_descriptor_rev2
299
- {
300
- ACPI_TABLE_HEADER_DEF
301
- u16 platform_class;
302
- u32 log_area_minimum_length;
303
- u64 log_area_start_address;
304
- } PACKED;
305
-
306
- /* TCPA ACPI definitions */
307
- #define TCPA_ACPI_CLASS_CLIENT 0
308
- #define TCPA_ACPI_CLASS_SERVER 1
309
-
310
- #define TPM2_SIGNATURE 0x324D5054
311
- struct tpm2_descriptor_rev2
312
- {
313
- ACPI_TABLE_HEADER_DEF
314
- u16 platform_class;
315
- u16 reserved;
316
- u64 address_of_control_area;
317
- u32 start_method;
318
- u8 start_method_params[12];
319
- u32 log_area_minimum_length;
320
- u64 log_area_start_address;
321
- } PACKED;
322
-
323
- #endif // acpi.h
@@ -1,174 +0,0 @@
1
- // BIOS Data Area (and similar) definitions
2
- #ifndef __BDA_H
3
- #define __BDA_H
4
-
5
- #include "disk.h" // struct fdpt_s
6
- #include "types.h" // u8
7
-
8
-
9
- /****************************************************************
10
- * Interrupt vector table
11
- ****************************************************************/
12
-
13
- struct rmode_IVT {
14
- struct segoff_s ivec[256];
15
- };
16
-
17
-
18
- /****************************************************************
19
- * Bios Data Area (BDA)
20
- ****************************************************************/
21
-
22
- struct bios_data_area_s {
23
- // 40:00
24
- u16 port_com[4];
25
- u16 port_lpt[3];
26
- u16 ebda_seg;
27
- // 40:10
28
- u16 equipment_list_flags;
29
- u8 pad1;
30
- u16 mem_size_kb;
31
- u8 pad2;
32
- u8 ps2_ctrl_flag;
33
- u16 kbd_flag0;
34
- u8 alt_keypad;
35
- u16 kbd_buf_head;
36
- u16 kbd_buf_tail;
37
- // 40:1e
38
- u8 kbd_buf[32];
39
- u8 floppy_recalibration_status;
40
- u8 floppy_motor_status;
41
- // 40:40
42
- u8 floppy_motor_counter;
43
- u8 floppy_last_status;
44
- u8 floppy_return_status[7];
45
- u8 video_mode;
46
- u16 video_cols;
47
- u16 video_pagesize;
48
- u16 video_pagestart;
49
- // 40:50
50
- u16 cursor_pos[8];
51
- // 40:60
52
- u16 cursor_type;
53
- u8 video_page;
54
- u16 crtc_address;
55
- u8 video_msr;
56
- u8 video_pal;
57
- struct segoff_s jump;
58
- u8 other_6b;
59
- u32 timer_counter;
60
- // 40:70
61
- u8 timer_rollover;
62
- u8 break_flag;
63
- u16 soft_reset_flag;
64
- u8 disk_last_status;
65
- u8 hdcount;
66
- u8 disk_control_byte;
67
- u8 port_disk;
68
- u8 lpt_timeout[4];
69
- u8 com_timeout[4];
70
- // 40:80
71
- u16 kbd_buf_start_offset;
72
- u16 kbd_buf_end_offset;
73
- u8 video_rows;
74
- u16 char_height;
75
- u8 video_ctl;
76
- u8 video_switches;
77
- u8 modeset_ctl;
78
- u8 dcc_index;
79
- u8 floppy_last_data_rate;
80
- u8 disk_status_controller;
81
- u8 disk_error_controller;
82
- u8 disk_interrupt_flag;
83
- u8 floppy_harddisk_info;
84
- // 40:90
85
- u8 floppy_media_state[4];
86
- u8 floppy_track[2];
87
- u8 kbd_flag1;
88
- u8 kbd_led;
89
- struct segoff_s user_wait_complete_flag;
90
- u32 user_wait_timeout;
91
- // 40:A0
92
- u8 rtc_wait_flag;
93
- u8 other_a1[7];
94
- struct segoff_s video_savetable;
95
- u8 other_ac[4];
96
- // 40:B0
97
- u8 other_b0[5*16];
98
- } PACKED;
99
-
100
- // BDA floppy_recalibration_status bitdefs
101
- #define FRS_IRQ (1<<7)
102
-
103
- // BDA rtc_wait_flag bitdefs
104
- #define RWS_WAIT_PENDING (1<<0)
105
- #define RWS_WAIT_ELAPSED (1<<7)
106
-
107
- // BDA floppy_media_state bitdefs
108
- #define FMS_DRIVE_STATE_MASK (0x07)
109
- #define FMS_MEDIA_DRIVE_ESTABLISHED (1<<4)
110
- #define FMS_DOUBLE_STEPPING (1<<5)
111
- #define FMS_DATA_RATE_MASK (0xc0)
112
-
113
- // BDA kbd_flag[01] bitdefs
114
- #define KF0_RSHIFT (1<<0)
115
- #define KF0_LSHIFT (1<<1)
116
- #define KF0_CTRLACTIVE (1<<2)
117
- #define KF0_ALTACTIVE (1<<3)
118
- #define KF0_SCROLLACTIVE (1<<4)
119
- #define KF0_NUMACTIVE (1<<5)
120
- #define KF0_CAPSACTIVE (1<<6)
121
- #define KF0_LCTRL (1<<8)
122
- #define KF0_LALT (1<<9)
123
- #define KF0_PAUSEACTIVE (1<<11)
124
- #define KF0_SCROLL (1<<12)
125
- #define KF0_NUM (1<<13)
126
- #define KF0_CAPS (1<<14)
127
-
128
- #define KF1_LAST_E1 (1<<0)
129
- #define KF1_LAST_E0 (1<<1)
130
- #define KF1_RCTRL (1<<2)
131
- #define KF1_RALT (1<<3)
132
- #define KF1_101KBD (1<<4)
133
-
134
- // Limit of BDA timer_counter field
135
- #define TICKS_PER_DAY 1573040
136
-
137
-
138
- /****************************************************************
139
- * Extended Bios Data Area (EBDA)
140
- ****************************************************************/
141
-
142
- struct extended_bios_data_area_s {
143
- u8 size;
144
- u8 reserved1[0x21];
145
- struct segoff_s far_call_pointer;
146
- u8 mouse_flag1;
147
- u8 mouse_flag2;
148
- u8 mouse_data[0x08];
149
- // 0x30
150
- u8 other1[0x0d];
151
-
152
- // 0x3d
153
- struct fdpt_s fdpt[2];
154
-
155
- // 0x5d
156
- u8 other2[0xC4];
157
-
158
- // 0x121 - Begin custom storage.
159
- } PACKED;
160
-
161
-
162
- /****************************************************************
163
- * Bios Config Table
164
- ****************************************************************/
165
-
166
- struct bios_config_table_s {
167
- u16 size;
168
- u8 model;
169
- u8 submodel;
170
- u8 biosrev;
171
- u8 feature1, feature2, feature3, feature4, feature5;
172
- } PACKED;
173
-
174
- #endif // bda.h
@@ -1,175 +0,0 @@
1
- // Standard disk BIOS definitions.
2
- #ifndef __DISK_H
3
- #define __DISK_H
4
-
5
- #include "types.h" // u8
6
-
7
- #define DISK_RET_SUCCESS 0x00
8
- #define DISK_RET_EPARAM 0x01
9
- #define DISK_RET_EADDRNOTFOUND 0x02
10
- #define DISK_RET_EWRITEPROTECT 0x03
11
- #define DISK_RET_ECHANGED 0x06
12
- #define DISK_RET_EBOUNDARY 0x09
13
- #define DISK_RET_EBADTRACK 0x0c
14
- #define DISK_RET_ECONTROLLER 0x20
15
- #define DISK_RET_ETIMEOUT 0x80
16
- #define DISK_RET_ENOTLOCKED 0xb0
17
- #define DISK_RET_ELOCKED 0xb1
18
- #define DISK_RET_ENOTREMOVABLE 0xb2
19
- #define DISK_RET_ETOOMANYLOCKS 0xb4
20
- #define DISK_RET_EMEDIA 0xC0
21
- #define DISK_RET_ENOTREADY 0xAA
22
-
23
-
24
- /****************************************************************
25
- * Interface structs
26
- ****************************************************************/
27
-
28
- // Bios disk structures.
29
- struct int13ext_s {
30
- u8 size;
31
- u8 reserved;
32
- u16 count;
33
- struct segoff_s data;
34
- u64 lba;
35
- } PACKED;
36
-
37
- // DPTE definition
38
- struct dpte_s {
39
- u16 iobase1;
40
- u16 iobase2;
41
- u8 prefix;
42
- u8 unused;
43
- u8 irq;
44
- u8 blkcount;
45
- u8 dma;
46
- u8 pio;
47
- u16 options;
48
- u16 reserved;
49
- u8 revision;
50
- u8 checksum;
51
- };
52
-
53
- // Disk Physical Table definition
54
- struct int13dpt_s {
55
- u16 size;
56
- u16 infos;
57
- u32 cylinders;
58
- u32 heads;
59
- u32 spt;
60
- u64 sector_count;
61
- u16 blksize;
62
- struct segoff_s dpte;
63
- u16 key;
64
- u8 dpi_length;
65
- u8 reserved1;
66
- u16 reserved2;
67
- u8 host_bus[4];
68
- u8 iface_type[8];
69
- u64 iface_path;
70
- union {
71
- struct {
72
- u64 device_path;
73
- u8 reserved3;
74
- u8 checksum;
75
- } phoenix;
76
- struct {
77
- u64 device_path[2];
78
- u8 reserved3;
79
- u8 checksum;
80
- } t13;
81
- };
82
- } PACKED;
83
-
84
- // Floppy info
85
- struct fdpt_s {
86
- u16 cylinders;
87
- u8 heads;
88
- u8 a0h_signature;
89
- u8 phys_sectors;
90
- u16 precompensation;
91
- u8 reserved;
92
- u8 drive_control_byte;
93
- u16 phys_cylinders;
94
- u8 phys_heads;
95
- u16 landing_zone;
96
- u8 sectors;
97
- u8 checksum;
98
- } PACKED;
99
-
100
- // Floppy "Disk Base Table"
101
- struct floppy_dbt_s {
102
- u8 specify1;
103
- u8 specify2;
104
- u8 shutoff_ticks;
105
- u8 bps_code;
106
- u8 sectors;
107
- u8 interblock_len;
108
- u8 data_len;
109
- u8 gap_len;
110
- u8 fill_byte;
111
- u8 settle_time;
112
- u8 startup_time;
113
- } PACKED;
114
-
115
- struct floppy_ext_dbt_s {
116
- struct floppy_dbt_s dbt;
117
- // Extra fields
118
- u8 max_track;
119
- u8 data_rate;
120
- u8 drive_type;
121
- } PACKED;
122
-
123
-
124
- /****************************************************************
125
- * Master boot record
126
- ****************************************************************/
127
-
128
- struct packed_chs_s {
129
- u8 heads;
130
- u8 sptcyl;
131
- u8 cyllow;
132
- } PACKED;
133
-
134
- struct partition_s {
135
- u8 status;
136
- struct packed_chs_s first;
137
- u8 type;
138
- struct packed_chs_s last;
139
- u32 lba;
140
- u32 count;
141
- } PACKED;
142
-
143
- struct mbr_s {
144
- u8 code[440];
145
- // 0x01b8
146
- u32 diskseg;
147
- // 0x01bc
148
- u16 null;
149
- // 0x01be
150
- struct partition_s partitions[4];
151
- // 0x01fe
152
- u16 signature;
153
- } PACKED;
154
-
155
- #define MBR_SIGNATURE 0xaa55
156
-
157
-
158
- /****************************************************************
159
- * ElTorito CDROM interface
160
- ****************************************************************/
161
-
162
- struct eltorito_s {
163
- u8 size;
164
- u8 media;
165
- u8 emulated_drive;
166
- u8 controller_index;
167
- u32 ilba;
168
- u16 device_spec;
169
- u16 buffer_segment;
170
- u16 load_segment;
171
- u16 sector_count;
172
- struct packed_chs_s chs;
173
- } PACKED;
174
-
175
- #endif // disk.h