v86 0.3.6 → 0.4.0
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.
- package/Readme.md +17 -6
- package/bios/seabios/.config +113 -0
- package/bios/seabios/.config.old +114 -0
- package/bios/seabios/.gitignore +4 -0
- package/bios/seabios/COPYING +674 -0
- package/bios/seabios/COPYING.LESSER +165 -0
- package/bios/seabios/Makefile +286 -0
- package/bios/seabios/README +17 -0
- package/bios/seabios/docs/Build_overview.md +104 -0
- package/bios/seabios/docs/Contributing.md +20 -0
- package/bios/seabios/docs/Debugging.md +111 -0
- package/bios/seabios/docs/Developer_Documentation.md +25 -0
- package/bios/seabios/docs/Developer_links.md +86 -0
- package/bios/seabios/docs/Download.md +27 -0
- package/bios/seabios/docs/Execution_and_code_flow.md +178 -0
- package/bios/seabios/docs/Linking_overview.md +160 -0
- package/bios/seabios/docs/Mailinglist.md +8 -0
- package/bios/seabios/docs/Memory_Model.md +253 -0
- package/bios/seabios/docs/README +5 -0
- package/bios/seabios/docs/Releases.md +482 -0
- package/bios/seabios/docs/Runtime_config.md +193 -0
- package/bios/seabios/docs/SeaBIOS.md +17 -0
- package/bios/seabios/docs/SeaVGABIOS.md +39 -0
- package/bios/seabios/out/autoconf.h +117 -0
- package/bios/seabios/out/include/config/acpi/dsdt.h +0 -0
- package/bios/seabios/out/include/config/acpi.h +0 -0
- package/bios/seabios/out/include/config/ahci.h +0 -0
- package/bios/seabios/out/include/config/apmbios.h +0 -0
- package/bios/seabios/out/include/config/ata/dma.h +0 -0
- package/bios/seabios/out/include/config/ata/pio32.h +0 -0
- package/bios/seabios/out/include/config/ata.h +0 -0
- package/bios/seabios/out/include/config/auto.conf +69 -0
- package/bios/seabios/out/include/config/auto.conf.cmd +9 -0
- package/bios/seabios/out/include/config/boot.h +0 -0
- package/bios/seabios/out/include/config/bootorder.h +0 -0
- package/bios/seabios/out/include/config/build/vgabios.h +0 -0
- package/bios/seabios/out/include/config/call32/smm.h +0 -0
- package/bios/seabios/out/include/config/cdrom/boot.h +0 -0
- package/bios/seabios/out/include/config/cdrom/emu.h +0 -0
- package/bios/seabios/out/include/config/debug/level.h +0 -0
- package/bios/seabios/out/include/config/drives.h +0 -0
- package/bios/seabios/out/include/config/entry/extrastack.h +0 -0
- package/bios/seabios/out/include/config/esp/scsi.h +0 -0
- package/bios/seabios/out/include/config/flash/floppy.h +0 -0
- package/bios/seabios/out/include/config/floppy.h +0 -0
- package/bios/seabios/out/include/config/fw/romfile/load.h +0 -0
- package/bios/seabios/out/include/config/hardware/irq.h +0 -0
- package/bios/seabios/out/include/config/kbd/call/int15/4f.h +0 -0
- package/bios/seabios/out/include/config/keyboard.h +0 -0
- package/bios/seabios/out/include/config/lpt.h +0 -0
- package/bios/seabios/out/include/config/lsi/scsi.h +0 -0
- package/bios/seabios/out/include/config/malloc/uppermemory.h +0 -0
- package/bios/seabios/out/include/config/megasas.h +0 -0
- package/bios/seabios/out/include/config/mouse.h +0 -0
- package/bios/seabios/out/include/config/mpt/scsi.h +0 -0
- package/bios/seabios/out/include/config/mptable.h +0 -0
- package/bios/seabios/out/include/config/mtrr/init.h +0 -0
- package/bios/seabios/out/include/config/optionroms.h +0 -0
- package/bios/seabios/out/include/config/override/pci/id.h +0 -0
- package/bios/seabios/out/include/config/pcibios.h +0 -0
- package/bios/seabios/out/include/config/pirtable.h +0 -0
- package/bios/seabios/out/include/config/pmm.h +0 -0
- package/bios/seabios/out/include/config/pmtimer.h +0 -0
- package/bios/seabios/out/include/config/pnpbios.h +0 -0
- package/bios/seabios/out/include/config/ps2port.h +0 -0
- package/bios/seabios/out/include/config/pvscsi.h +0 -0
- package/bios/seabios/out/include/config/qemu/hardware.h +0 -0
- package/bios/seabios/out/include/config/qemu.h +0 -0
- package/bios/seabios/out/include/config/rom/size.h +0 -0
- package/bios/seabios/out/include/config/rtc/timer.h +0 -0
- package/bios/seabios/out/include/config/s3/resume.h +0 -0
- package/bios/seabios/out/include/config/sdcard.h +0 -0
- package/bios/seabios/out/include/config/serial.h +0 -0
- package/bios/seabios/out/include/config/tcgbios.h +0 -0
- package/bios/seabios/out/include/config/threads.h +0 -0
- package/bios/seabios/out/include/config/tristate.conf +4 -0
- package/bios/seabios/out/include/config/tsc/timer.h +0 -0
- package/bios/seabios/out/include/config/use/smm.h +0 -0
- package/bios/seabios/out/include/config/vga/allocate/extra/stack.h +0 -0
- package/bios/seabios/out/include/config/vga/bochs/stdvga.h +0 -0
- package/bios/seabios/out/include/config/vga/bochs.h +0 -0
- package/bios/seabios/out/include/config/vga/did.h +0 -0
- package/bios/seabios/out/include/config/vga/extra/stack/size.h +0 -0
- package/bios/seabios/out/include/config/vga/fixup/asm.h +0 -0
- package/bios/seabios/out/include/config/vga/pci.h +0 -0
- package/bios/seabios/out/include/config/vga/stdvga/ports.h +0 -0
- package/bios/seabios/out/include/config/vga/vbe.h +0 -0
- package/bios/seabios/out/include/config/vga/vid.h +0 -0
- package/bios/seabios/out/include/config/vgahooks.h +0 -0
- package/bios/seabios/out/include/config/virtio/blk.h +0 -0
- package/bios/seabios/out/include/config/virtio/scsi.h +0 -0
- package/bios/seabios/out/include/config/xen.h +0 -0
- package/bios/seabios/out/scripts/kconfig/conf +0 -0
- package/bios/seabios/out/scripts/kconfig/conf.o +0 -0
- package/bios/seabios/out/scripts/kconfig/zconf.hash.c +289 -0
- package/bios/seabios/out/scripts/kconfig/zconf.lex.c +2420 -0
- package/bios/seabios/out/scripts/kconfig/zconf.tab.c +2538 -0
- package/bios/seabios/out/scripts/kconfig/zconf.tab.o +0 -0
- package/bios/seabios/scripts/acpi_extract.py +366 -0
- package/bios/seabios/scripts/acpi_extract_preprocess.py +41 -0
- package/bios/seabios/scripts/buildrom.py +56 -0
- package/bios/seabios/scripts/buildversion.py +134 -0
- package/bios/seabios/scripts/checkrom.py +95 -0
- package/bios/seabios/scripts/checkstack.py +226 -0
- package/bios/seabios/scripts/checksum.py +16 -0
- package/bios/seabios/scripts/encodeint.py +21 -0
- package/bios/seabios/scripts/gen-offsets.sh +17 -0
- package/bios/seabios/scripts/kconfig/.gitignore +22 -0
- package/bios/seabios/scripts/kconfig/Makefile +331 -0
- package/bios/seabios/scripts/kconfig/POTFILES.in +12 -0
- package/bios/seabios/scripts/kconfig/check.sh +13 -0
- package/bios/seabios/scripts/kconfig/conf.c +718 -0
- package/bios/seabios/scripts/kconfig/confdata.c +1250 -0
- package/bios/seabios/scripts/kconfig/expr.c +1168 -0
- package/bios/seabios/scripts/kconfig/expr.h +241 -0
- package/bios/seabios/scripts/kconfig/gconf.c +1542 -0
- package/bios/seabios/scripts/kconfig/gconf.glade +661 -0
- package/bios/seabios/scripts/kconfig/images.c +326 -0
- package/bios/seabios/scripts/kconfig/kxgettext.c +235 -0
- package/bios/seabios/scripts/kconfig/lex.zconf.c +2430 -0
- package/bios/seabios/scripts/kconfig/list.h +131 -0
- package/bios/seabios/scripts/kconfig/lkc.h +200 -0
- package/bios/seabios/scripts/kconfig/lkc_proto.h +57 -0
- package/bios/seabios/scripts/kconfig/lxdialog/.gitignore +4 -0
- package/bios/seabios/scripts/kconfig/lxdialog/BIG.FAT.WARNING +4 -0
- package/bios/seabios/scripts/kconfig/lxdialog/check-lxdialog.sh +87 -0
- package/bios/seabios/scripts/kconfig/lxdialog/checklist.c +332 -0
- package/bios/seabios/scripts/kconfig/lxdialog/dialog.h +257 -0
- package/bios/seabios/scripts/kconfig/lxdialog/inputbox.c +301 -0
- package/bios/seabios/scripts/kconfig/lxdialog/menubox.c +437 -0
- package/bios/seabios/scripts/kconfig/lxdialog/textbox.c +408 -0
- package/bios/seabios/scripts/kconfig/lxdialog/util.c +713 -0
- package/bios/seabios/scripts/kconfig/lxdialog/yesno.c +114 -0
- package/bios/seabios/scripts/kconfig/mconf.c +1036 -0
- package/bios/seabios/scripts/kconfig/menu.c +697 -0
- package/bios/seabios/scripts/kconfig/merge_config.sh +150 -0
- package/bios/seabios/scripts/kconfig/nconf.c +1556 -0
- package/bios/seabios/scripts/kconfig/nconf.gui.c +656 -0
- package/bios/seabios/scripts/kconfig/nconf.h +96 -0
- package/bios/seabios/scripts/kconfig/qconf.cc +1795 -0
- package/bios/seabios/scripts/kconfig/qconf.h +338 -0
- package/bios/seabios/scripts/kconfig/streamline_config.pl +647 -0
- package/bios/seabios/scripts/kconfig/symbol.c +1373 -0
- package/bios/seabios/scripts/kconfig/util.c +157 -0
- package/bios/seabios/scripts/kconfig/zconf.gperf +48 -0
- package/bios/seabios/scripts/kconfig/zconf.hash.c_shipped +289 -0
- package/bios/seabios/scripts/kconfig/zconf.l +363 -0
- package/bios/seabios/scripts/kconfig/zconf.lex.c_shipped +2420 -0
- package/bios/seabios/scripts/kconfig/zconf.tab.c_shipped +2538 -0
- package/bios/seabios/scripts/kconfig/zconf.y +733 -0
- package/bios/seabios/scripts/layoutrom.py +705 -0
- package/bios/seabios/scripts/python23compat.py +14 -0
- package/bios/seabios/scripts/readserial.py +190 -0
- package/bios/seabios/scripts/tarball.sh +36 -0
- package/bios/seabios/scripts/test-build.sh +90 -0
- package/bios/seabios/scripts/transdump.py +53 -0
- package/bios/seabios/scripts/vgafixup.py +96 -0
- package/bios/seabios/src/Kconfig +579 -0
- package/bios/seabios/src/apm.c +215 -0
- package/bios/seabios/src/asm-offsets.c +23 -0
- package/bios/seabios/src/biosvar.h +130 -0
- package/bios/seabios/src/block.c +623 -0
- package/bios/seabios/src/block.h +121 -0
- package/bios/seabios/src/bmp.c +117 -0
- package/bios/seabios/src/boot.c +793 -0
- package/bios/seabios/src/bootsplash.c +255 -0
- package/bios/seabios/src/bregs.h +80 -0
- package/bios/seabios/src/byteorder.h +71 -0
- package/bios/seabios/src/cdrom.c +322 -0
- package/bios/seabios/src/clock.c +506 -0
- package/bios/seabios/src/code16gcc.s +1 -0
- package/bios/seabios/src/config.h +108 -0
- package/bios/seabios/src/cp437.c +275 -0
- package/bios/seabios/src/cp437.h +1 -0
- package/bios/seabios/src/disk.c +779 -0
- package/bios/seabios/src/e820map.c +152 -0
- package/bios/seabios/src/e820map.h +26 -0
- package/bios/seabios/src/entryfuncs.S +165 -0
- package/bios/seabios/src/farptr.h +208 -0
- package/bios/seabios/src/font.c +139 -0
- package/bios/seabios/src/fw/acpi-dsdt-cpu-hotplug.dsl +78 -0
- package/bios/seabios/src/fw/acpi-dsdt-dbug.dsl +26 -0
- package/bios/seabios/src/fw/acpi-dsdt-hpet.dsl +36 -0
- package/bios/seabios/src/fw/acpi-dsdt-isa.dsl +102 -0
- package/bios/seabios/src/fw/acpi-dsdt-pci-crs.dsl +90 -0
- package/bios/seabios/src/fw/acpi-dsdt.dsl +342 -0
- package/bios/seabios/src/fw/acpi-dsdt.hex +554 -0
- package/bios/seabios/src/fw/acpi.c +685 -0
- package/bios/seabios/src/fw/biostables.c +491 -0
- package/bios/seabios/src/fw/coreboot.c +569 -0
- package/bios/seabios/src/fw/csm.c +347 -0
- package/bios/seabios/src/fw/dev-pci.h +52 -0
- package/bios/seabios/src/fw/dev-piix.h +29 -0
- package/bios/seabios/src/fw/dev-q35.h +52 -0
- package/bios/seabios/src/fw/lzmadecode.c +398 -0
- package/bios/seabios/src/fw/lzmadecode.h +67 -0
- package/bios/seabios/src/fw/mptable.c +197 -0
- package/bios/seabios/src/fw/mtrr.c +105 -0
- package/bios/seabios/src/fw/multiboot.c +111 -0
- package/bios/seabios/src/fw/paravirt.c +624 -0
- package/bios/seabios/src/fw/paravirt.h +63 -0
- package/bios/seabios/src/fw/pciinit.c +1187 -0
- package/bios/seabios/src/fw/pirtable.c +103 -0
- package/bios/seabios/src/fw/q35-acpi-dsdt.dsl +450 -0
- package/bios/seabios/src/fw/romfile_loader.c +259 -0
- package/bios/seabios/src/fw/romfile_loader.h +91 -0
- package/bios/seabios/src/fw/shadow.c +208 -0
- package/bios/seabios/src/fw/smbios.c +585 -0
- package/bios/seabios/src/fw/smm.c +269 -0
- package/bios/seabios/src/fw/smp.c +194 -0
- package/bios/seabios/src/fw/ssdt-misc.dsl +104 -0
- package/bios/seabios/src/fw/ssdt-misc.hex +88 -0
- package/bios/seabios/src/fw/ssdt-pcihp.dsl +36 -0
- package/bios/seabios/src/fw/ssdt-pcihp.hex +38 -0
- package/bios/seabios/src/fw/ssdt-proc.dsl +48 -0
- package/bios/seabios/src/fw/ssdt-proc.hex +35 -0
- package/bios/seabios/src/fw/xen.c +149 -0
- package/bios/seabios/src/fw/xen.h +125 -0
- package/bios/seabios/src/gen-defs.h +19 -0
- package/bios/seabios/src/hw/ahci.c +697 -0
- package/bios/seabios/src/hw/ahci.h +201 -0
- package/bios/seabios/src/hw/ata.c +1046 -0
- package/bios/seabios/src/hw/ata.h +163 -0
- package/bios/seabios/src/hw/blockcmd.c +372 -0
- package/bios/seabios/src/hw/blockcmd.h +114 -0
- package/bios/seabios/src/hw/dma.c +67 -0
- package/bios/seabios/src/hw/esp-scsi.c +241 -0
- package/bios/seabios/src/hw/esp-scsi.h +8 -0
- package/bios/seabios/src/hw/floppy.c +741 -0
- package/bios/seabios/src/hw/lsi-scsi.c +221 -0
- package/bios/seabios/src/hw/lsi-scsi.h +8 -0
- package/bios/seabios/src/hw/megasas.c +405 -0
- package/bios/seabios/src/hw/megasas.h +8 -0
- package/bios/seabios/src/hw/mpt-scsi.c +319 -0
- package/bios/seabios/src/hw/mpt-scsi.h +8 -0
- package/bios/seabios/src/hw/nvme-int.h +199 -0
- package/bios/seabios/src/hw/nvme.c +708 -0
- package/bios/seabios/src/hw/nvme.h +17 -0
- package/bios/seabios/src/hw/pci.c +133 -0
- package/bios/seabios/src/hw/pci.h +47 -0
- package/bios/seabios/src/hw/pci_ids.h +2632 -0
- package/bios/seabios/src/hw/pci_regs.h +556 -0
- package/bios/seabios/src/hw/pcidevice.c +192 -0
- package/bios/seabios/src/hw/pcidevice.h +76 -0
- package/bios/seabios/src/hw/pic.c +115 -0
- package/bios/seabios/src/hw/pic.h +60 -0
- package/bios/seabios/src/hw/ps2port.c +543 -0
- package/bios/seabios/src/hw/ps2port.h +67 -0
- package/bios/seabios/src/hw/pvscsi.c +333 -0
- package/bios/seabios/src/hw/pvscsi.h +8 -0
- package/bios/seabios/src/hw/ramdisk.c +108 -0
- package/bios/seabios/src/hw/rtc.c +100 -0
- package/bios/seabios/src/hw/rtc.h +75 -0
- package/bios/seabios/src/hw/sdcard.c +572 -0
- package/bios/seabios/src/hw/serialio.c +113 -0
- package/bios/seabios/src/hw/serialio.h +29 -0
- package/bios/seabios/src/hw/timer.c +259 -0
- package/bios/seabios/src/hw/tpm_drivers.c +636 -0
- package/bios/seabios/src/hw/tpm_drivers.h +127 -0
- package/bios/seabios/src/hw/usb-ehci.c +650 -0
- package/bios/seabios/src/hw/usb-ehci.h +177 -0
- package/bios/seabios/src/hw/usb-hid.c +442 -0
- package/bios/seabios/src/hw/usb-hid.h +29 -0
- package/bios/seabios/src/hw/usb-hub.c +205 -0
- package/bios/seabios/src/hw/usb-hub.h +64 -0
- package/bios/seabios/src/hw/usb-msc.c +222 -0
- package/bios/seabios/src/hw/usb-msc.h +10 -0
- package/bios/seabios/src/hw/usb-ohci.c +568 -0
- package/bios/seabios/src/hw/usb-ohci.h +144 -0
- package/bios/seabios/src/hw/usb-uas.c +289 -0
- package/bios/seabios/src/hw/usb-uas.h +9 -0
- package/bios/seabios/src/hw/usb-uhci.c +571 -0
- package/bios/seabios/src/hw/usb-uhci.h +128 -0
- package/bios/seabios/src/hw/usb-xhci.c +1161 -0
- package/bios/seabios/src/hw/usb-xhci.h +133 -0
- package/bios/seabios/src/hw/usb.c +499 -0
- package/bios/seabios/src/hw/usb.h +254 -0
- package/bios/seabios/src/hw/virtio-blk.c +211 -0
- package/bios/seabios/src/hw/virtio-blk.h +43 -0
- package/bios/seabios/src/hw/virtio-pci.c +501 -0
- package/bios/seabios/src/hw/virtio-pci.h +151 -0
- package/bios/seabios/src/hw/virtio-ring.c +147 -0
- package/bios/seabios/src/hw/virtio-ring.h +121 -0
- package/bios/seabios/src/hw/virtio-scsi.c +220 -0
- package/bios/seabios/src/hw/virtio-scsi.h +47 -0
- package/bios/seabios/src/jpeg.c +1055 -0
- package/bios/seabios/src/kbd.c +599 -0
- package/bios/seabios/src/list.h +91 -0
- package/bios/seabios/src/malloc.c +561 -0
- package/bios/seabios/src/malloc.h +70 -0
- package/bios/seabios/src/memmap.h +21 -0
- package/bios/seabios/src/misc.c +195 -0
- package/bios/seabios/src/mouse.c +342 -0
- package/bios/seabios/src/optionroms.c +475 -0
- package/bios/seabios/src/output.c +584 -0
- package/bios/seabios/src/output.h +68 -0
- package/bios/seabios/src/pcibios.c +241 -0
- package/bios/seabios/src/pmm.c +176 -0
- package/bios/seabios/src/pnpbios.c +88 -0
- package/bios/seabios/src/post.c +337 -0
- package/bios/seabios/src/resume.c +157 -0
- package/bios/seabios/src/romfile.c +146 -0
- package/bios/seabios/src/romfile.h +21 -0
- package/bios/seabios/src/romlayout.S +698 -0
- package/bios/seabios/src/sercon.c +677 -0
- package/bios/seabios/src/serial.c +317 -0
- package/bios/seabios/src/sha1.c +147 -0
- package/bios/seabios/src/sha1.h +8 -0
- package/bios/seabios/src/stacks.c +771 -0
- package/bios/seabios/src/stacks.h +68 -0
- package/bios/seabios/src/std/LegacyBios.h +985 -0
- package/bios/seabios/src/std/acpi.h +323 -0
- package/bios/seabios/src/std/bda.h +174 -0
- package/bios/seabios/src/std/disk.h +175 -0
- package/bios/seabios/src/std/mptable.h +77 -0
- package/bios/seabios/src/std/multiboot.h +260 -0
- package/bios/seabios/src/std/optionrom.h +59 -0
- package/bios/seabios/src/std/pirtable.h +35 -0
- package/bios/seabios/src/std/pmm.h +19 -0
- package/bios/seabios/src/std/pnpbios.h +24 -0
- package/bios/seabios/src/std/smbios.h +167 -0
- package/bios/seabios/src/std/tcg.h +554 -0
- package/bios/seabios/src/std/vbe.h +156 -0
- package/bios/seabios/src/std/vga.h +63 -0
- package/bios/seabios/src/string.c +251 -0
- package/bios/seabios/src/string.h +31 -0
- package/bios/seabios/src/system.c +357 -0
- package/bios/seabios/src/tcgbios.c +2014 -0
- package/bios/seabios/src/tcgbios.h +19 -0
- package/bios/seabios/src/types.h +156 -0
- package/bios/seabios/src/util.h +251 -0
- package/bios/seabios/src/version.c +5 -0
- package/bios/seabios/src/vgahooks.c +355 -0
- package/bios/seabios/src/x86.c +23 -0
- package/bios/seabios/src/x86.h +277 -0
- package/bios/seabios/vgasrc/Kconfig +211 -0
- package/bios/seabios/vgasrc/bochsdisplay.c +59 -0
- package/bios/seabios/vgasrc/bochsvga.c +447 -0
- package/bios/seabios/vgasrc/bochsvga.h +57 -0
- package/bios/seabios/vgasrc/cbvga.c +337 -0
- package/bios/seabios/vgasrc/clext.c +627 -0
- package/bios/seabios/vgasrc/geodevga.c +434 -0
- package/bios/seabios/vgasrc/geodevga.h +89 -0
- package/bios/seabios/vgasrc/ramfb.c +163 -0
- package/bios/seabios/vgasrc/stdvga.c +485 -0
- package/bios/seabios/vgasrc/stdvga.h +81 -0
- package/bios/seabios/vgasrc/stdvgaio.c +186 -0
- package/bios/seabios/vgasrc/stdvgamodes.c +534 -0
- package/bios/seabios/vgasrc/swcursor.c +96 -0
- package/bios/seabios/vgasrc/vbe.c +432 -0
- package/bios/seabios/vgasrc/vgabios.c +1131 -0
- package/bios/seabios/vgasrc/vgabios.h +88 -0
- package/bios/seabios/vgasrc/vgaentry.S +161 -0
- package/bios/seabios/vgasrc/vgafb.c +661 -0
- package/bios/seabios/vgasrc/vgafb.h +42 -0
- package/bios/seabios/vgasrc/vgafonts.c +785 -0
- package/bios/seabios/vgasrc/vgahw.h +152 -0
- package/bios/seabios/vgasrc/vgainit.c +202 -0
- package/bios/seabios/vgasrc/vgalayout.lds.S +23 -0
- package/bios/seabios/vgasrc/vgautil.h +103 -0
- package/bios/seabios/vgasrc/vgaversion.c +6 -0
- package/build/binaries.js +1 -1
- package/build/index-debug.cjs +1 -1
- package/build/index-debug.js +1 -1
- package/build/index.cjs +1 -1
- package/build/index.js +1 -1
- package/build/v86-debug.wasm +0 -0
- package/build/v86.wasm +0 -0
- package/package.json +1 -1
|
@@ -0,0 +1,121 @@
|
|
|
1
|
+
#ifndef __BLOCK_H
|
|
2
|
+
#define __BLOCK_H
|
|
3
|
+
|
|
4
|
+
#include "types.h" // u32
|
|
5
|
+
|
|
6
|
+
|
|
7
|
+
/****************************************************************
|
|
8
|
+
* Disk command request
|
|
9
|
+
****************************************************************/
|
|
10
|
+
|
|
11
|
+
struct disk_op_s {
|
|
12
|
+
void *buf_fl;
|
|
13
|
+
struct drive_s *drive_fl;
|
|
14
|
+
u8 command;
|
|
15
|
+
u16 count;
|
|
16
|
+
union {
|
|
17
|
+
// Commands: READ, WRITE, VERIFY, SEEK, FORMAT
|
|
18
|
+
u64 lba;
|
|
19
|
+
// Commands: SCSI
|
|
20
|
+
struct {
|
|
21
|
+
u16 blocksize;
|
|
22
|
+
void *cdbcmd;
|
|
23
|
+
};
|
|
24
|
+
};
|
|
25
|
+
};
|
|
26
|
+
|
|
27
|
+
#define CMD_RESET 0x00
|
|
28
|
+
#define CMD_READ 0x02
|
|
29
|
+
#define CMD_WRITE 0x03
|
|
30
|
+
#define CMD_VERIFY 0x04
|
|
31
|
+
#define CMD_FORMAT 0x05
|
|
32
|
+
#define CMD_SEEK 0x07
|
|
33
|
+
#define CMD_ISREADY 0x10
|
|
34
|
+
#define CMD_SCSI 0x20
|
|
35
|
+
|
|
36
|
+
|
|
37
|
+
/****************************************************************
|
|
38
|
+
* Global storage
|
|
39
|
+
****************************************************************/
|
|
40
|
+
|
|
41
|
+
struct chs_s {
|
|
42
|
+
u16 head;
|
|
43
|
+
u16 cylinder;
|
|
44
|
+
u16 sector;
|
|
45
|
+
u16 pad;
|
|
46
|
+
};
|
|
47
|
+
|
|
48
|
+
struct drive_s {
|
|
49
|
+
u8 type; // Driver type (DTYPE_*)
|
|
50
|
+
u8 floppy_type; // Type of floppy (only for floppy drives).
|
|
51
|
+
struct chs_s lchs; // Logical CHS
|
|
52
|
+
u64 sectors; // Total sectors count
|
|
53
|
+
u32 cntl_id; // Unique id for a given driver type.
|
|
54
|
+
u8 removable; // Is media removable (currently unused)
|
|
55
|
+
|
|
56
|
+
// Info for EDD calls
|
|
57
|
+
u8 translation; // type of translation
|
|
58
|
+
u16 blksize; // block size
|
|
59
|
+
struct chs_s pchs; // Physical CHS
|
|
60
|
+
};
|
|
61
|
+
|
|
62
|
+
#define DISK_SECTOR_SIZE 512
|
|
63
|
+
#define CDROM_SECTOR_SIZE 2048
|
|
64
|
+
|
|
65
|
+
#define DTYPE_NONE 0x00
|
|
66
|
+
#define DTYPE_FLOPPY 0x10
|
|
67
|
+
#define DTYPE_ATA 0x20
|
|
68
|
+
#define DTYPE_ATA_ATAPI 0x21
|
|
69
|
+
#define DTYPE_RAMDISK 0x30
|
|
70
|
+
#define DTYPE_CDEMU 0x40
|
|
71
|
+
#define DTYPE_AHCI 0x50
|
|
72
|
+
#define DTYPE_AHCI_ATAPI 0x51
|
|
73
|
+
#define DTYPE_VIRTIO_SCSI 0x60
|
|
74
|
+
#define DTYPE_VIRTIO_BLK 0x61
|
|
75
|
+
#define DTYPE_USB 0x70
|
|
76
|
+
#define DTYPE_USB_32 0x71
|
|
77
|
+
#define DTYPE_UAS 0x72
|
|
78
|
+
#define DTYPE_UAS_32 0x73
|
|
79
|
+
#define DTYPE_LSI_SCSI 0x80
|
|
80
|
+
#define DTYPE_ESP_SCSI 0x81
|
|
81
|
+
#define DTYPE_MEGASAS 0x82
|
|
82
|
+
#define DTYPE_PVSCSI 0x83
|
|
83
|
+
#define DTYPE_MPT_SCSI 0x84
|
|
84
|
+
#define DTYPE_SDCARD 0x90
|
|
85
|
+
#define DTYPE_NVME 0x91
|
|
86
|
+
|
|
87
|
+
#define MAXDESCSIZE 80
|
|
88
|
+
|
|
89
|
+
#define TRANSLATION_NONE 0
|
|
90
|
+
#define TRANSLATION_LBA 1
|
|
91
|
+
#define TRANSLATION_LARGE 2
|
|
92
|
+
#define TRANSLATION_RECHS 3
|
|
93
|
+
|
|
94
|
+
#define EXTTYPE_FLOPPY 0
|
|
95
|
+
#define EXTTYPE_HD 1
|
|
96
|
+
#define EXTTYPE_CD 2
|
|
97
|
+
|
|
98
|
+
#define EXTSTART_HD 0x80
|
|
99
|
+
#define EXTSTART_CD 0xE0
|
|
100
|
+
|
|
101
|
+
|
|
102
|
+
/****************************************************************
|
|
103
|
+
* Function defs
|
|
104
|
+
****************************************************************/
|
|
105
|
+
|
|
106
|
+
// block.c
|
|
107
|
+
extern u8 FloppyCount, CDCount;
|
|
108
|
+
extern u8 *bounce_buf_fl;
|
|
109
|
+
struct drive_s *getDrive(u8 exttype, u8 extdriveoffset);
|
|
110
|
+
int getDriveId(u8 exttype, struct drive_s *drive);
|
|
111
|
+
void map_floppy_drive(struct drive_s *drive);
|
|
112
|
+
void map_hd_drive(struct drive_s *drive);
|
|
113
|
+
void map_cd_drive(struct drive_s *drive);
|
|
114
|
+
struct int13dpt_s;
|
|
115
|
+
int fill_edd(struct segoff_s edd, struct drive_s *drive_fl);
|
|
116
|
+
void block_setup(void);
|
|
117
|
+
int default_process_op(struct disk_op_s *op);
|
|
118
|
+
int process_op(struct disk_op_s *op);
|
|
119
|
+
int create_bounce_buf(void);
|
|
120
|
+
|
|
121
|
+
#endif // block.h
|
|
@@ -0,0 +1,117 @@
|
|
|
1
|
+
/*
|
|
2
|
+
* Basic BMP data process and Raw picture data handle functions.
|
|
3
|
+
* Could be used to adjust pixel data format, get information, etc.
|
|
4
|
+
*
|
|
5
|
+
* Copyright (C) 2011 Wayne Xia <xiawenc@cn.ibm.com>
|
|
6
|
+
*
|
|
7
|
+
* This work is licensed under the terms of the GNU LGPLv3.
|
|
8
|
+
*/
|
|
9
|
+
#include "malloc.h" // malloc_tmphigh
|
|
10
|
+
#include "string.h" // memcpy
|
|
11
|
+
#include "util.h" // struct bmp_decdata
|
|
12
|
+
|
|
13
|
+
struct bmp_decdata {
|
|
14
|
+
struct tagRGBQUAD *quadp;
|
|
15
|
+
unsigned char *datap;
|
|
16
|
+
int width;
|
|
17
|
+
int height;
|
|
18
|
+
int bpp;
|
|
19
|
+
};
|
|
20
|
+
|
|
21
|
+
#define bmp_load4byte(addr) (*(u32 *)(addr))
|
|
22
|
+
#define bmp_load2byte(addr) (*(u16 *)(addr))
|
|
23
|
+
|
|
24
|
+
typedef struct tagBITMAPFILEHEADER {
|
|
25
|
+
u8 bfType[2];
|
|
26
|
+
u8 bfSize[4];
|
|
27
|
+
u8 bfReserved1[2];
|
|
28
|
+
u8 bfReserved2[2];
|
|
29
|
+
u8 bfOffBits[4];
|
|
30
|
+
} BITMAPFILEHEADER, tagBITMAPFILEHEADER;
|
|
31
|
+
|
|
32
|
+
typedef struct tagBITMAPINFOHEADER {
|
|
33
|
+
u8 biSize[4];
|
|
34
|
+
u8 biWidth[4];
|
|
35
|
+
u8 biHeight[4];
|
|
36
|
+
u8 biPlanes[2];
|
|
37
|
+
u8 biBitCount[2];
|
|
38
|
+
u8 biCompression[4];
|
|
39
|
+
u8 biSizeImage[4];
|
|
40
|
+
u8 biXPelsPerMeter[4];
|
|
41
|
+
u8 biYPelsPerMeter[4];
|
|
42
|
+
u8 biClrUsed[4];
|
|
43
|
+
u8 biClrImportant[4];
|
|
44
|
+
} BITMAPINFOHEADER, tagBITMAPINFOHEADER;
|
|
45
|
+
|
|
46
|
+
typedef struct tagRGBQUAD {
|
|
47
|
+
u8 rgbBlue;
|
|
48
|
+
u8 rgbGreen;
|
|
49
|
+
u8 rgbRed;
|
|
50
|
+
u8 rgbReserved;
|
|
51
|
+
} RGBQUAD, tagRGBQUAD;
|
|
52
|
+
|
|
53
|
+
/* flat picture data adjusting function
|
|
54
|
+
* description:
|
|
55
|
+
* switch the vertical line sequence
|
|
56
|
+
* arrange horizontal pixel data, add extra space in the dest buffer
|
|
57
|
+
* for every line
|
|
58
|
+
*/
|
|
59
|
+
static void raw_data_format_adjust_24bpp(u8 *src, u8 *dest, int width,
|
|
60
|
+
int height, int bytes_per_line_dest)
|
|
61
|
+
{
|
|
62
|
+
int bytes_per_line_src = 3 * width;
|
|
63
|
+
int i;
|
|
64
|
+
for (i = 0 ; i < height ; i++) {
|
|
65
|
+
memcpy(dest + i * bytes_per_line_dest,
|
|
66
|
+
src + (height - 1 - i) * bytes_per_line_src, bytes_per_line_src);
|
|
67
|
+
}
|
|
68
|
+
}
|
|
69
|
+
|
|
70
|
+
/* allocate decdata struct */
|
|
71
|
+
struct bmp_decdata *bmp_alloc(void)
|
|
72
|
+
{
|
|
73
|
+
struct bmp_decdata *bmp = malloc_tmphigh(sizeof(*bmp));
|
|
74
|
+
return bmp;
|
|
75
|
+
}
|
|
76
|
+
|
|
77
|
+
/* extract information from bmp file data */
|
|
78
|
+
int bmp_decode(struct bmp_decdata *bmp, unsigned char *data, int data_size)
|
|
79
|
+
{
|
|
80
|
+
if (data_size < 54)
|
|
81
|
+
return 1;
|
|
82
|
+
|
|
83
|
+
u16 bmp_filehead = bmp_load2byte(data + 0);
|
|
84
|
+
if (bmp_filehead != 0x4d42)
|
|
85
|
+
return 2;
|
|
86
|
+
u32 bmp_recordsize = bmp_load4byte(data + 2);
|
|
87
|
+
if (bmp_recordsize != data_size)
|
|
88
|
+
return 3;
|
|
89
|
+
u32 bmp_dataoffset = bmp_load4byte(data + 10);
|
|
90
|
+
bmp->datap = (unsigned char *)data + bmp_dataoffset;
|
|
91
|
+
bmp->width = bmp_load4byte(data + 18);
|
|
92
|
+
bmp->height = bmp_load4byte(data + 22);
|
|
93
|
+
bmp->bpp = bmp_load2byte(data + 28);
|
|
94
|
+
return 0;
|
|
95
|
+
}
|
|
96
|
+
|
|
97
|
+
/* get bmp properties */
|
|
98
|
+
void bmp_get_size(struct bmp_decdata *bmp, int *width, int *height)
|
|
99
|
+
{
|
|
100
|
+
*width = bmp->width;
|
|
101
|
+
*height = bmp->height;
|
|
102
|
+
}
|
|
103
|
+
|
|
104
|
+
/* flush flat picture data to *pc */
|
|
105
|
+
int bmp_show(struct bmp_decdata *bmp, unsigned char *pic, int width
|
|
106
|
+
, int height, int depth, int bytes_per_line_dest)
|
|
107
|
+
{
|
|
108
|
+
if (bmp->datap == pic)
|
|
109
|
+
return 0;
|
|
110
|
+
/* now only support 24bpp bmp file */
|
|
111
|
+
if ((depth == 24) && (bmp->bpp == 24)) {
|
|
112
|
+
raw_data_format_adjust_24bpp(bmp->datap, pic, width, height,
|
|
113
|
+
bytes_per_line_dest);
|
|
114
|
+
return 0;
|
|
115
|
+
}
|
|
116
|
+
return 1;
|
|
117
|
+
}
|