v86 0.3.4 → 0.3.7
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 +4 -4
- 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,215 @@
|
|
|
1
|
+
// Basic support for apmbios callbacks.
|
|
2
|
+
//
|
|
3
|
+
// Copyright (C) 2008 Kevin O'Connor <kevin@koconnor.net>
|
|
4
|
+
// Copyright (C) 2005 Struan Bartlett
|
|
5
|
+
// Copyright (C) 2004 Fabrice Bellard
|
|
6
|
+
//
|
|
7
|
+
// This file may be distributed under the terms of the GNU LGPLv3 license.
|
|
8
|
+
|
|
9
|
+
#include "biosvar.h" // GET_GLOBAL
|
|
10
|
+
#include "bregs.h" // struct bregs
|
|
11
|
+
#include "config.h" // CONFIG_*
|
|
12
|
+
#include "output.h" // dprintf
|
|
13
|
+
#include "stacks.h" // yield_toirq
|
|
14
|
+
#include "util.h" // apm_shutdown
|
|
15
|
+
#include "x86.h" // outb
|
|
16
|
+
|
|
17
|
+
// APM installation check
|
|
18
|
+
static void
|
|
19
|
+
handle_155300(struct bregs *regs)
|
|
20
|
+
{
|
|
21
|
+
regs->ah = 1; // APM major version
|
|
22
|
+
regs->al = 2; // APM minor version
|
|
23
|
+
regs->bh = 'P';
|
|
24
|
+
regs->bl = 'M';
|
|
25
|
+
// bit 0 : 16 bit interface supported
|
|
26
|
+
// bit 1 : 32 bit interface supported
|
|
27
|
+
regs->cx = 0x03;
|
|
28
|
+
set_success(regs);
|
|
29
|
+
}
|
|
30
|
+
|
|
31
|
+
// APM real mode interface connect
|
|
32
|
+
static void
|
|
33
|
+
handle_155301(struct bregs *regs)
|
|
34
|
+
{
|
|
35
|
+
set_success(regs);
|
|
36
|
+
}
|
|
37
|
+
|
|
38
|
+
// APM 16 bit protected mode interface connect
|
|
39
|
+
static void
|
|
40
|
+
handle_155302(struct bregs *regs)
|
|
41
|
+
{
|
|
42
|
+
extern void entry_apm16(void);
|
|
43
|
+
regs->bx = (u32)entry_apm16;
|
|
44
|
+
regs->ax = SEG_BIOS; // 16 bit code segment base
|
|
45
|
+
regs->si = 0xfff0; // 16 bit code segment size
|
|
46
|
+
regs->cx = SEG_BIOS; // data segment address
|
|
47
|
+
regs->di = 0xfff0; // data segment length
|
|
48
|
+
set_success(regs);
|
|
49
|
+
}
|
|
50
|
+
|
|
51
|
+
// APM 32 bit protected mode interface connect
|
|
52
|
+
static void
|
|
53
|
+
handle_155303(struct bregs *regs)
|
|
54
|
+
{
|
|
55
|
+
extern void entry_apm32(void);
|
|
56
|
+
regs->ax = SEG_BIOS; // 32 bit code segment base
|
|
57
|
+
regs->ebx = (u32)entry_apm32;
|
|
58
|
+
regs->cx = SEG_BIOS; // 16 bit code segment base
|
|
59
|
+
// 32 bit code segment size (low 16 bits)
|
|
60
|
+
// 16 bit code segment size (high 16 bits)
|
|
61
|
+
regs->esi = 0xfff0fff0;
|
|
62
|
+
regs->dx = SEG_BIOS; // data segment address
|
|
63
|
+
regs->di = 0xfff0; // data segment length
|
|
64
|
+
set_success(regs);
|
|
65
|
+
}
|
|
66
|
+
|
|
67
|
+
// APM interface disconnect
|
|
68
|
+
static void
|
|
69
|
+
handle_155304(struct bregs *regs)
|
|
70
|
+
{
|
|
71
|
+
set_success(regs);
|
|
72
|
+
}
|
|
73
|
+
|
|
74
|
+
// APM cpu idle
|
|
75
|
+
static void
|
|
76
|
+
handle_155305(struct bregs *regs)
|
|
77
|
+
{
|
|
78
|
+
yield_toirq();
|
|
79
|
+
set_success(regs);
|
|
80
|
+
}
|
|
81
|
+
|
|
82
|
+
// APM cpu busy
|
|
83
|
+
static void
|
|
84
|
+
handle_155306(struct bregs *regs)
|
|
85
|
+
{
|
|
86
|
+
set_success(regs);
|
|
87
|
+
}
|
|
88
|
+
|
|
89
|
+
void
|
|
90
|
+
apm_shutdown(void)
|
|
91
|
+
{
|
|
92
|
+
u16 pm1a_cnt = GET_GLOBAL(acpi_pm1a_cnt);
|
|
93
|
+
if (pm1a_cnt)
|
|
94
|
+
outw(0x2000, pm1a_cnt);
|
|
95
|
+
|
|
96
|
+
irq_disable();
|
|
97
|
+
for (;;)
|
|
98
|
+
hlt();
|
|
99
|
+
}
|
|
100
|
+
|
|
101
|
+
// APM Set Power State
|
|
102
|
+
static void
|
|
103
|
+
handle_155307(struct bregs *regs)
|
|
104
|
+
{
|
|
105
|
+
if (regs->bx != 1) {
|
|
106
|
+
set_success(regs);
|
|
107
|
+
return;
|
|
108
|
+
}
|
|
109
|
+
switch (regs->cx) {
|
|
110
|
+
case 1:
|
|
111
|
+
dprintf(1, "APM standby request\n");
|
|
112
|
+
break;
|
|
113
|
+
case 2:
|
|
114
|
+
dprintf(1, "APM suspend request\n");
|
|
115
|
+
break;
|
|
116
|
+
case 3:
|
|
117
|
+
apm_shutdown();
|
|
118
|
+
break;
|
|
119
|
+
}
|
|
120
|
+
set_success(regs);
|
|
121
|
+
}
|
|
122
|
+
|
|
123
|
+
static void
|
|
124
|
+
handle_155308(struct bregs *regs)
|
|
125
|
+
{
|
|
126
|
+
set_success(regs);
|
|
127
|
+
}
|
|
128
|
+
|
|
129
|
+
// Get Power Status
|
|
130
|
+
static void
|
|
131
|
+
handle_15530a(struct bregs *regs)
|
|
132
|
+
{
|
|
133
|
+
regs->bh = 0x01; // on line
|
|
134
|
+
regs->bl = 0xff; // unknown battery status
|
|
135
|
+
regs->ch = 0x80; // no system battery
|
|
136
|
+
regs->cl = 0xff; // unknown remaining time
|
|
137
|
+
regs->dx = 0xffff; // unknown remaining time
|
|
138
|
+
regs->si = 0x00; // zero battery
|
|
139
|
+
set_success(regs);
|
|
140
|
+
}
|
|
141
|
+
|
|
142
|
+
#define RET_ENOEVENT 0x80
|
|
143
|
+
|
|
144
|
+
// Get PM Event
|
|
145
|
+
static void
|
|
146
|
+
handle_15530b(struct bregs *regs)
|
|
147
|
+
{
|
|
148
|
+
set_code_invalid_silent(regs, RET_ENOEVENT);
|
|
149
|
+
}
|
|
150
|
+
|
|
151
|
+
// APM Driver Version
|
|
152
|
+
static void
|
|
153
|
+
handle_15530e(struct bregs *regs)
|
|
154
|
+
{
|
|
155
|
+
regs->ah = 1;
|
|
156
|
+
regs->al = 2;
|
|
157
|
+
set_success(regs);
|
|
158
|
+
}
|
|
159
|
+
|
|
160
|
+
// APM Engage / Disengage
|
|
161
|
+
static void
|
|
162
|
+
handle_15530f(struct bregs *regs)
|
|
163
|
+
{
|
|
164
|
+
set_success(regs);
|
|
165
|
+
}
|
|
166
|
+
|
|
167
|
+
// APM Get Capabilities
|
|
168
|
+
static void
|
|
169
|
+
handle_155310(struct bregs *regs)
|
|
170
|
+
{
|
|
171
|
+
regs->bl = 0;
|
|
172
|
+
regs->cx = 0;
|
|
173
|
+
set_success(regs);
|
|
174
|
+
}
|
|
175
|
+
|
|
176
|
+
static void
|
|
177
|
+
handle_1553XX(struct bregs *regs)
|
|
178
|
+
{
|
|
179
|
+
set_unimplemented(regs);
|
|
180
|
+
}
|
|
181
|
+
|
|
182
|
+
void
|
|
183
|
+
handle_1553(struct bregs *regs)
|
|
184
|
+
{
|
|
185
|
+
if (! CONFIG_APMBIOS) {
|
|
186
|
+
set_code_invalid(regs, RET_EUNSUPPORTED);
|
|
187
|
+
return;
|
|
188
|
+
}
|
|
189
|
+
|
|
190
|
+
//debug_stub(regs);
|
|
191
|
+
switch (regs->al) {
|
|
192
|
+
case 0x00: handle_155300(regs); break;
|
|
193
|
+
case 0x01: handle_155301(regs); break;
|
|
194
|
+
case 0x02: handle_155302(regs); break;
|
|
195
|
+
case 0x03: handle_155303(regs); break;
|
|
196
|
+
case 0x04: handle_155304(regs); break;
|
|
197
|
+
case 0x05: handle_155305(regs); break;
|
|
198
|
+
case 0x06: handle_155306(regs); break;
|
|
199
|
+
case 0x07: handle_155307(regs); break;
|
|
200
|
+
case 0x08: handle_155308(regs); break;
|
|
201
|
+
case 0x0a: handle_15530a(regs); break;
|
|
202
|
+
case 0x0b: handle_15530b(regs); break;
|
|
203
|
+
case 0x0e: handle_15530e(regs); break;
|
|
204
|
+
case 0x0f: handle_15530f(regs); break;
|
|
205
|
+
case 0x10: handle_155310(regs); break;
|
|
206
|
+
default: handle_1553XX(regs); break;
|
|
207
|
+
}
|
|
208
|
+
}
|
|
209
|
+
|
|
210
|
+
void VISIBLE16 VISIBLE32SEG
|
|
211
|
+
handle_apm(struct bregs *regs)
|
|
212
|
+
{
|
|
213
|
+
debug_enter(regs, DEBUG_HDL_apm);
|
|
214
|
+
handle_1553(regs);
|
|
215
|
+
}
|
|
@@ -0,0 +1,23 @@
|
|
|
1
|
+
// Generate assembler offsets.
|
|
2
|
+
|
|
3
|
+
#include "gen-defs.h" // OFFSET
|
|
4
|
+
#include "bregs.h" // struct bregs
|
|
5
|
+
|
|
6
|
+
/* workaround for a warning with -Wmissing-prototypes */
|
|
7
|
+
void foo(void) VISIBLE16;
|
|
8
|
+
|
|
9
|
+
void foo(void)
|
|
10
|
+
{
|
|
11
|
+
COMMENT("BREGS");
|
|
12
|
+
OFFSET(BREGS_es, bregs, es);
|
|
13
|
+
OFFSET(BREGS_ds, bregs, ds);
|
|
14
|
+
OFFSET(BREGS_eax, bregs, eax);
|
|
15
|
+
OFFSET(BREGS_ebx, bregs, ebx);
|
|
16
|
+
OFFSET(BREGS_ecx, bregs, ecx);
|
|
17
|
+
OFFSET(BREGS_edx, bregs, edx);
|
|
18
|
+
OFFSET(BREGS_ebp, bregs, ebp);
|
|
19
|
+
OFFSET(BREGS_esi, bregs, esi);
|
|
20
|
+
OFFSET(BREGS_edi, bregs, edi);
|
|
21
|
+
OFFSET(BREGS_flags, bregs, flags);
|
|
22
|
+
OFFSET(BREGS_code, bregs, code);
|
|
23
|
+
}
|
|
@@ -0,0 +1,130 @@
|
|
|
1
|
+
// Memory access to BIOS variables.
|
|
2
|
+
//
|
|
3
|
+
// Copyright (C) 2008-2013 Kevin O'Connor <kevin@koconnor.net>
|
|
4
|
+
//
|
|
5
|
+
// This file may be distributed under the terms of the GNU LGPLv3 license.
|
|
6
|
+
#ifndef __BIOSVAR_H
|
|
7
|
+
#define __BIOSVAR_H
|
|
8
|
+
|
|
9
|
+
#include "config.h" // SEG_BDA
|
|
10
|
+
#include "farptr.h" // GET_FARVAR
|
|
11
|
+
#include "memmap.h" // SYMBOL
|
|
12
|
+
#include "std/bda.h" // struct bios_data_area_s
|
|
13
|
+
|
|
14
|
+
|
|
15
|
+
/****************************************************************
|
|
16
|
+
* Interrupt vector table
|
|
17
|
+
****************************************************************/
|
|
18
|
+
|
|
19
|
+
#define GET_IVT(vector) \
|
|
20
|
+
GET_FARVAR(SEG_IVT, ((struct rmode_IVT *)0)->ivec[vector])
|
|
21
|
+
#define SET_IVT(vector, segoff) \
|
|
22
|
+
SET_FARVAR(SEG_IVT, ((struct rmode_IVT *)0)->ivec[vector], segoff)
|
|
23
|
+
|
|
24
|
+
#define FUNC16(func) ({ \
|
|
25
|
+
ASSERT32FLAT(); \
|
|
26
|
+
extern void func (void); \
|
|
27
|
+
SEGOFF(SEG_BIOS, (u32)func - BUILD_BIOS_ADDR); \
|
|
28
|
+
})
|
|
29
|
+
|
|
30
|
+
|
|
31
|
+
/****************************************************************
|
|
32
|
+
* Bios Data Area (BDA)
|
|
33
|
+
****************************************************************/
|
|
34
|
+
|
|
35
|
+
// Accessor functions
|
|
36
|
+
#define GET_BDA(var) \
|
|
37
|
+
GET_FARVAR(SEG_BDA, ((struct bios_data_area_s *)0)->var)
|
|
38
|
+
#define SET_BDA(var, val) \
|
|
39
|
+
SET_FARVAR(SEG_BDA, ((struct bios_data_area_s *)0)->var, (val))
|
|
40
|
+
|
|
41
|
+
// Helper function to set the bits of the equipment_list_flags variable.
|
|
42
|
+
static inline void set_equipment_flags(u16 clear, u16 set) {
|
|
43
|
+
u16 eqf = GET_BDA(equipment_list_flags);
|
|
44
|
+
SET_BDA(equipment_list_flags, (eqf & ~clear) | set);
|
|
45
|
+
}
|
|
46
|
+
|
|
47
|
+
|
|
48
|
+
/****************************************************************
|
|
49
|
+
* Extended Bios Data Area (EBDA)
|
|
50
|
+
****************************************************************/
|
|
51
|
+
|
|
52
|
+
// The initial size and location of EBDA
|
|
53
|
+
#define EBDA_SIZE_START \
|
|
54
|
+
DIV_ROUND_UP(sizeof(struct extended_bios_data_area_s), 1024)
|
|
55
|
+
#define EBDA_SEGMENT_START \
|
|
56
|
+
FLATPTR_TO_SEG(BUILD_LOWRAM_END - EBDA_SIZE_START*1024)
|
|
57
|
+
|
|
58
|
+
// Accessor functions
|
|
59
|
+
static inline u16 get_ebda_seg(void) {
|
|
60
|
+
return GET_BDA(ebda_seg);
|
|
61
|
+
}
|
|
62
|
+
static inline struct extended_bios_data_area_s *
|
|
63
|
+
get_ebda_ptr(void)
|
|
64
|
+
{
|
|
65
|
+
ASSERT32FLAT();
|
|
66
|
+
return MAKE_FLATPTR(get_ebda_seg(), 0);
|
|
67
|
+
}
|
|
68
|
+
#define GET_EBDA(eseg, var) \
|
|
69
|
+
GET_FARVAR(eseg, ((struct extended_bios_data_area_s *)0)->var)
|
|
70
|
+
#define SET_EBDA(eseg, var, val) \
|
|
71
|
+
SET_FARVAR(eseg, ((struct extended_bios_data_area_s *)0)->var, (val))
|
|
72
|
+
|
|
73
|
+
|
|
74
|
+
/****************************************************************
|
|
75
|
+
* Global variables
|
|
76
|
+
****************************************************************/
|
|
77
|
+
|
|
78
|
+
#if MODE16 == 0 && MODESEGMENT == 1
|
|
79
|
+
// In 32bit segmented mode %cs may not be readable and the code may be
|
|
80
|
+
// relocated. The entry code sets up %gs with a readable segment and
|
|
81
|
+
// the code offset can be determined by get_global_offset().
|
|
82
|
+
#define GLOBAL_SEGREG GS
|
|
83
|
+
static inline u32 __attribute_const get_global_offset(void) {
|
|
84
|
+
u32 ret;
|
|
85
|
+
asm(" calll 1f\n"
|
|
86
|
+
"1:popl %0\n"
|
|
87
|
+
" subl $1b, %0"
|
|
88
|
+
: "=r"(ret));
|
|
89
|
+
return ret;
|
|
90
|
+
}
|
|
91
|
+
#else
|
|
92
|
+
#define GLOBAL_SEGREG CS
|
|
93
|
+
static inline u32 __attribute_const get_global_offset(void) {
|
|
94
|
+
return 0;
|
|
95
|
+
}
|
|
96
|
+
#endif
|
|
97
|
+
static inline u16 get_global_seg(void) {
|
|
98
|
+
return GET_SEG(GLOBAL_SEGREG);
|
|
99
|
+
}
|
|
100
|
+
#define GET_GLOBAL(var) \
|
|
101
|
+
GET_VAR(GLOBAL_SEGREG, *(typeof(&(var)))((void*)&(var) \
|
|
102
|
+
+ get_global_offset()))
|
|
103
|
+
#if MODESEGMENT
|
|
104
|
+
#define GLOBALFLAT2GLOBAL(var) ((typeof(var))((void*)(var) - BUILD_BIOS_ADDR))
|
|
105
|
+
#else
|
|
106
|
+
#define GLOBALFLAT2GLOBAL(var) (var)
|
|
107
|
+
#endif
|
|
108
|
+
// Access a "flat" pointer known to point to the f-segment.
|
|
109
|
+
#define GET_GLOBALFLAT(var) GET_GLOBAL(*GLOBALFLAT2GLOBAL(&(var)))
|
|
110
|
+
|
|
111
|
+
|
|
112
|
+
/****************************************************************
|
|
113
|
+
* "Low" memory variables
|
|
114
|
+
****************************************************************/
|
|
115
|
+
|
|
116
|
+
#define SEG_LOW SYMBOL(_zonelow_seg)
|
|
117
|
+
|
|
118
|
+
#if MODESEGMENT
|
|
119
|
+
#define GET_LOW(var) GET_FARVAR(SEG_LOW, (var))
|
|
120
|
+
#define SET_LOW(var, val) SET_FARVAR(SEG_LOW, (var), (val))
|
|
121
|
+
#define LOWFLAT2LOW(var) ((typeof(var))((void*)(var) - SYMBOL(zonelow_base)))
|
|
122
|
+
#else
|
|
123
|
+
#define GET_LOW(var) (var)
|
|
124
|
+
#define SET_LOW(var, val) do { (var) = (val); } while (0)
|
|
125
|
+
#define LOWFLAT2LOW(var) (var)
|
|
126
|
+
#endif
|
|
127
|
+
#define GET_LOWFLAT(var) GET_LOW(*LOWFLAT2LOW(&(var)))
|
|
128
|
+
#define SET_LOWFLAT(var, val) SET_LOW(*LOWFLAT2LOW(&(var)), (val))
|
|
129
|
+
|
|
130
|
+
#endif // __BIOSVAR_H
|