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,38 @@
|
|
|
1
|
+
/* DO NOT EDIT! This is an autogenerated file. See scripts/acpi_extract.py. */
|
|
2
|
+
static unsigned char ssdt_pcihp_name[] = {
|
|
3
|
+
0x33
|
|
4
|
+
};
|
|
5
|
+
|
|
6
|
+
static unsigned char ssdt_pcihp_adr[] = {
|
|
7
|
+
0x44
|
|
8
|
+
};
|
|
9
|
+
|
|
10
|
+
static unsigned char ssdt_pcihp_end[] = {
|
|
11
|
+
0x57
|
|
12
|
+
};
|
|
13
|
+
|
|
14
|
+
static unsigned char ssdp_pcihp_aml[] = {
|
|
15
|
+
0x53, 0x53, 0x44, 0x54, 0x57, 0x00, 0x00, 0x00,
|
|
16
|
+
0x01, 0x27, 0x42, 0x58, 0x50, 0x43, 0x00, 0x00,
|
|
17
|
+
0x42, 0x58, 0x53, 0x53, 0x44, 0x54, 0x50, 0x43,
|
|
18
|
+
0x01, 0x00, 0x00, 0x00, 0x49, 0x4e, 0x54, 0x4c,
|
|
19
|
+
0x18, 0x08, 0x15, 0x20, 0x10, 0x32, 0x5c, 0x2e,
|
|
20
|
+
0x5f, 0x53, 0x42, 0x5f, 0x50, 0x43, 0x49, 0x30,
|
|
21
|
+
0x5b, 0x82, 0x25, 0x53, 0x41, 0x41, 0x5f, 0x08,
|
|
22
|
+
0x5f, 0x53, 0x55, 0x4e, 0x0a, 0xaa, 0x08, 0x5f,
|
|
23
|
+
0x41, 0x44, 0x52, 0x0c, 0x00, 0x00, 0xaa, 0x00,
|
|
24
|
+
0x14, 0x0e, 0x5f, 0x45, 0x4a, 0x30, 0x01, 0x50,
|
|
25
|
+
0x43, 0x45, 0x4a, 0x5f, 0x53, 0x55, 0x4e
|
|
26
|
+
};
|
|
27
|
+
|
|
28
|
+
static unsigned char ssdt_pcihp_start[] = {
|
|
29
|
+
0x30
|
|
30
|
+
};
|
|
31
|
+
|
|
32
|
+
static unsigned char ssdt_pcihp_id[] = {
|
|
33
|
+
0x3d
|
|
34
|
+
};
|
|
35
|
+
|
|
36
|
+
static unsigned char ssdt_pcihp_ej0[] = {
|
|
37
|
+
0x4a
|
|
38
|
+
};
|
|
@@ -0,0 +1,48 @@
|
|
|
1
|
+
/* This file is the basis for the ssdt table generated in src/acpi.c.
|
|
2
|
+
* It defines the contents of the per-cpu Processor() object. At
|
|
3
|
+
* runtime, a dynamically generated SSDT will contain one copy of this
|
|
4
|
+
* AML snippet for every possible cpu in the system. The objects will
|
|
5
|
+
* be placed in the \_SB_ namespace.
|
|
6
|
+
*
|
|
7
|
+
* In addition to the aml code generated from this file, the
|
|
8
|
+
* src/acpi.c file creates a NTFY method with an entry for each cpu:
|
|
9
|
+
* Method(NTFY, 2) {
|
|
10
|
+
* If (LEqual(Arg0, 0x00)) { Notify(CP00, Arg1) }
|
|
11
|
+
* If (LEqual(Arg0, 0x01)) { Notify(CP01, Arg1) }
|
|
12
|
+
* ...
|
|
13
|
+
* }
|
|
14
|
+
* and a CPON array with the list of active and inactive cpus:
|
|
15
|
+
* Name(CPON, Package() { One, One, ..., Zero, Zero, ... })
|
|
16
|
+
*/
|
|
17
|
+
|
|
18
|
+
ACPI_EXTRACT_ALL_CODE ssdp_proc_aml
|
|
19
|
+
|
|
20
|
+
DefinitionBlock ("ssdt-proc.aml", "SSDT", 0x01, "BXPC", "BXSSDT", 0x1)
|
|
21
|
+
{
|
|
22
|
+
ACPI_EXTRACT_PROCESSOR_START ssdt_proc_start
|
|
23
|
+
ACPI_EXTRACT_PROCESSOR_END ssdt_proc_end
|
|
24
|
+
ACPI_EXTRACT_PROCESSOR_STRING ssdt_proc_name
|
|
25
|
+
Processor(CPAA, 0xAA, 0x0000b010, 0x06) {
|
|
26
|
+
ACPI_EXTRACT_NAME_BYTE_CONST ssdt_proc_id
|
|
27
|
+
Name(ID, 0xAA)
|
|
28
|
+
/*
|
|
29
|
+
* The src/acpi.c code requires the above ACP_EXTRACT tags so that it can update
|
|
30
|
+
* CPAA and 0xAA with the appropriate CPU id (see
|
|
31
|
+
* SD_OFFSET_CPUHEX/CPUID1/CPUID2). Don't change the above without
|
|
32
|
+
* also updating the C code.
|
|
33
|
+
*/
|
|
34
|
+
Name(_HID, "ACPI0007")
|
|
35
|
+
External(CPMA, MethodObj)
|
|
36
|
+
External(CPST, MethodObj)
|
|
37
|
+
External(CPEJ, MethodObj)
|
|
38
|
+
Method(_MAT, 0) {
|
|
39
|
+
Return (CPMA(ID))
|
|
40
|
+
}
|
|
41
|
+
Method(_STA, 0) {
|
|
42
|
+
Return (CPST(ID))
|
|
43
|
+
}
|
|
44
|
+
Method(_EJ0, 1, NotSerialized) {
|
|
45
|
+
CPEJ(ID, Arg0)
|
|
46
|
+
}
|
|
47
|
+
}
|
|
48
|
+
}
|
|
@@ -0,0 +1,35 @@
|
|
|
1
|
+
/* DO NOT EDIT! This is an autogenerated file. See scripts/acpi_extract.py. */
|
|
2
|
+
static unsigned char ssdt_proc_name[] = {
|
|
3
|
+
0x28
|
|
4
|
+
};
|
|
5
|
+
|
|
6
|
+
static unsigned char ssdp_proc_aml[] = {
|
|
7
|
+
0x53, 0x53, 0x44, 0x54, 0x78, 0x00, 0x00, 0x00,
|
|
8
|
+
0x01, 0xbb, 0x42, 0x58, 0x50, 0x43, 0x00, 0x00,
|
|
9
|
+
0x42, 0x58, 0x53, 0x53, 0x44, 0x54, 0x00, 0x00,
|
|
10
|
+
0x01, 0x00, 0x00, 0x00, 0x49, 0x4e, 0x54, 0x4c,
|
|
11
|
+
0x18, 0x08, 0x15, 0x20, 0x5b, 0x83, 0x42, 0x05,
|
|
12
|
+
0x43, 0x50, 0x41, 0x41, 0xaa, 0x10, 0xb0, 0x00,
|
|
13
|
+
0x00, 0x06, 0x08, 0x49, 0x44, 0x5f, 0x5f, 0x0a,
|
|
14
|
+
0xaa, 0x08, 0x5f, 0x48, 0x49, 0x44, 0x0d, 0x41,
|
|
15
|
+
0x43, 0x50, 0x49, 0x30, 0x30, 0x30, 0x37, 0x00,
|
|
16
|
+
0x14, 0x0f, 0x5f, 0x4d, 0x41, 0x54, 0x00, 0xa4,
|
|
17
|
+
0x43, 0x50, 0x4d, 0x41, 0x49, 0x44, 0x5f, 0x5f,
|
|
18
|
+
0x14, 0x0f, 0x5f, 0x53, 0x54, 0x41, 0x00, 0xa4,
|
|
19
|
+
0x43, 0x50, 0x53, 0x54, 0x49, 0x44, 0x5f, 0x5f,
|
|
20
|
+
0x14, 0x0f, 0x5f, 0x45, 0x4a, 0x30, 0x01, 0x43,
|
|
21
|
+
0x50, 0x45, 0x4a, 0x49, 0x44, 0x5f, 0x5f, 0x68,
|
|
22
|
+
|
|
23
|
+
};
|
|
24
|
+
|
|
25
|
+
static unsigned char ssdt_proc_id[] = {
|
|
26
|
+
0x38
|
|
27
|
+
};
|
|
28
|
+
|
|
29
|
+
static unsigned char ssdt_proc_end[] = {
|
|
30
|
+
0x78
|
|
31
|
+
};
|
|
32
|
+
|
|
33
|
+
static unsigned char ssdt_proc_start[] = {
|
|
34
|
+
0x24
|
|
35
|
+
};
|
|
@@ -0,0 +1,149 @@
|
|
|
1
|
+
// Xen HVM support
|
|
2
|
+
//
|
|
3
|
+
// Copyright (C) 2011 Citrix Systems.
|
|
4
|
+
//
|
|
5
|
+
// This file may be distributed under the terms of the GNU LGPLv3 license.
|
|
6
|
+
|
|
7
|
+
#include "config.h" // CONFIG_XEN
|
|
8
|
+
#include "e820map.h" // e820_add
|
|
9
|
+
#include "hw/serialio.h" // DebugOutputPort
|
|
10
|
+
#include "malloc.h" // memalign_high
|
|
11
|
+
#include "memmap.h" // PAGE_SIZE
|
|
12
|
+
#include "output.h" // dprintf
|
|
13
|
+
#include "paravirt.h" // PlatformRunningOn
|
|
14
|
+
#include "string.h" // memcpy
|
|
15
|
+
#include "util.h" // copy_acpi_rsdp
|
|
16
|
+
#include "x86.h" // cpuid
|
|
17
|
+
#include "xen.h" // xen_extraversion_t
|
|
18
|
+
|
|
19
|
+
#define INFO_PHYSICAL_ADDRESS 0x00001000
|
|
20
|
+
|
|
21
|
+
u32 xen_cpuid_base = 0;
|
|
22
|
+
unsigned long xen_hypercall_page = 0;
|
|
23
|
+
|
|
24
|
+
struct xen_seabios_info {
|
|
25
|
+
char signature[14]; /* XenHVMSeaBIOS\0 */
|
|
26
|
+
u8 length; /* Length of this struct */
|
|
27
|
+
u8 checksum; /* Set such that the sum over bytes 0..length == 0 */
|
|
28
|
+
/*
|
|
29
|
+
* Physical address of an array of tables_nr elements.
|
|
30
|
+
*
|
|
31
|
+
* Each element is a 32 bit value contianing the physical address
|
|
32
|
+
* of a BIOS table.
|
|
33
|
+
*/
|
|
34
|
+
u32 tables;
|
|
35
|
+
u32 tables_nr;
|
|
36
|
+
/*
|
|
37
|
+
* Physical address of the e820 table, contains e820_nr entries.
|
|
38
|
+
*/
|
|
39
|
+
u32 e820;
|
|
40
|
+
u32 e820_nr;
|
|
41
|
+
} PACKED;
|
|
42
|
+
|
|
43
|
+
static void validate_info(struct xen_seabios_info *t)
|
|
44
|
+
{
|
|
45
|
+
if ( memcmp(t->signature, "XenHVMSeaBIOS", 14) )
|
|
46
|
+
panic("Bad Xen info signature\n");
|
|
47
|
+
|
|
48
|
+
if ( t->length < sizeof(struct xen_seabios_info) )
|
|
49
|
+
panic("Bad Xen info length\n");
|
|
50
|
+
|
|
51
|
+
if (checksum(t, t->length) != 0)
|
|
52
|
+
panic("Bad Xen info checksum\n");
|
|
53
|
+
}
|
|
54
|
+
|
|
55
|
+
void xen_preinit(void)
|
|
56
|
+
{
|
|
57
|
+
u32 base, eax, ebx, ecx, edx;
|
|
58
|
+
char signature[13];
|
|
59
|
+
|
|
60
|
+
if (!CONFIG_XEN)
|
|
61
|
+
return;
|
|
62
|
+
|
|
63
|
+
for (base = 0x40000000; base < 0x40010000; base += 0x100) {
|
|
64
|
+
cpuid(base, &eax, &ebx, &ecx, &edx);
|
|
65
|
+
memcpy(signature + 0, &ebx, 4);
|
|
66
|
+
memcpy(signature + 4, &ecx, 4);
|
|
67
|
+
memcpy(signature + 8, &edx, 4);
|
|
68
|
+
signature[12] = 0;
|
|
69
|
+
|
|
70
|
+
dprintf(9, "Found hypervisor signature \"%s\" at %x\n",
|
|
71
|
+
signature, base);
|
|
72
|
+
if (strcmp(signature, "XenVMMXenVMM") == 0) {
|
|
73
|
+
/* Set debug_io_port first, so the following messages work. */
|
|
74
|
+
code_mutable_preinit();
|
|
75
|
+
DebugOutputPort = 0xe9;
|
|
76
|
+
debug_banner();
|
|
77
|
+
dprintf(1, "\nFound Xen hypervisor signature at %x\n", base);
|
|
78
|
+
if ((eax - base) < 2)
|
|
79
|
+
panic("Insufficient Xen cpuid leaves. eax=%x at base %x\n",
|
|
80
|
+
eax, base);
|
|
81
|
+
xen_cpuid_base = base;
|
|
82
|
+
break;
|
|
83
|
+
}
|
|
84
|
+
}
|
|
85
|
+
if (!xen_cpuid_base) {
|
|
86
|
+
dprintf(1, "No Xen hypervisor found.\n");
|
|
87
|
+
return;
|
|
88
|
+
}
|
|
89
|
+
PlatformRunningOn = PF_QEMU|PF_XEN;
|
|
90
|
+
}
|
|
91
|
+
|
|
92
|
+
static int hypercall_xen_version( int cmd, void *arg)
|
|
93
|
+
{
|
|
94
|
+
return _hypercall2(int, xen_version, cmd, arg);
|
|
95
|
+
}
|
|
96
|
+
|
|
97
|
+
/* Fill in hypercall transfer pages. */
|
|
98
|
+
void xen_hypercall_setup(void)
|
|
99
|
+
{
|
|
100
|
+
u32 eax, ebx, ecx, edx;
|
|
101
|
+
xen_extraversion_t extraversion;
|
|
102
|
+
unsigned long i;
|
|
103
|
+
|
|
104
|
+
if (!runningOnXen())
|
|
105
|
+
return;
|
|
106
|
+
|
|
107
|
+
cpuid(xen_cpuid_base + 2, &eax, &ebx, &ecx, &edx);
|
|
108
|
+
|
|
109
|
+
xen_hypercall_page = (unsigned long)memalign_high(PAGE_SIZE, eax*PAGE_SIZE);
|
|
110
|
+
if (!xen_hypercall_page)
|
|
111
|
+
panic("unable to allocate Xen hypercall page\n");
|
|
112
|
+
|
|
113
|
+
dprintf(1, "Allocated Xen hypercall page at %lx\n", xen_hypercall_page);
|
|
114
|
+
for ( i = 0; i < eax; i++ )
|
|
115
|
+
wrmsr(ebx, xen_hypercall_page + (i << 12) + i);
|
|
116
|
+
|
|
117
|
+
/* Print version information. */
|
|
118
|
+
cpuid(xen_cpuid_base + 1, &eax, &ebx, &ecx, &edx);
|
|
119
|
+
hypercall_xen_version(XENVER_extraversion, extraversion);
|
|
120
|
+
dprintf(1, "Detected Xen v%u.%u%s\n", eax >> 16, eax & 0xffff, extraversion);
|
|
121
|
+
}
|
|
122
|
+
|
|
123
|
+
void xen_biostable_setup(void)
|
|
124
|
+
{
|
|
125
|
+
struct xen_seabios_info *info = (void *)INFO_PHYSICAL_ADDRESS;
|
|
126
|
+
void **tables = (void*)info->tables;
|
|
127
|
+
int i;
|
|
128
|
+
|
|
129
|
+
dprintf(1, "xen: copy BIOS tables...\n");
|
|
130
|
+
for (i=0; i<info->tables_nr; i++)
|
|
131
|
+
copy_table(tables[i]);
|
|
132
|
+
|
|
133
|
+
find_acpi_features();
|
|
134
|
+
}
|
|
135
|
+
|
|
136
|
+
void xen_ramsize_preinit(void)
|
|
137
|
+
{
|
|
138
|
+
int i;
|
|
139
|
+
struct xen_seabios_info *info = (void *)INFO_PHYSICAL_ADDRESS;
|
|
140
|
+
struct e820entry *e820 = (struct e820entry *)info->e820;
|
|
141
|
+
validate_info(info);
|
|
142
|
+
|
|
143
|
+
dprintf(1, "xen: copy e820...\n");
|
|
144
|
+
|
|
145
|
+
for (i = 0; i < info->e820_nr; i++) {
|
|
146
|
+
struct e820entry *e = &e820[i];
|
|
147
|
+
e820_add(e->start, e->size, e->type);
|
|
148
|
+
}
|
|
149
|
+
}
|
|
@@ -0,0 +1,125 @@
|
|
|
1
|
+
#ifndef __XEN_H
|
|
2
|
+
#define __XEN_H
|
|
3
|
+
|
|
4
|
+
void xen_preinit(void);
|
|
5
|
+
void xen_ramsize_preinit(void);
|
|
6
|
+
void xen_hypercall_setup(void);
|
|
7
|
+
void xen_biostable_setup(void);
|
|
8
|
+
|
|
9
|
+
extern unsigned long xen_hypercall_page;
|
|
10
|
+
|
|
11
|
+
#define _hypercall0(type, name) \
|
|
12
|
+
({ \
|
|
13
|
+
unsigned long __hentry = xen_hypercall_page+__HYPERVISOR_##name*32; \
|
|
14
|
+
long __res; \
|
|
15
|
+
asm volatile ( \
|
|
16
|
+
"call *%%eax" \
|
|
17
|
+
: "=a" (__res) \
|
|
18
|
+
: "0" (__hentry) \
|
|
19
|
+
: "memory" ); \
|
|
20
|
+
(type)__res; \
|
|
21
|
+
})
|
|
22
|
+
|
|
23
|
+
#define _hypercall1(type, name, a1) \
|
|
24
|
+
({ \
|
|
25
|
+
unsigned long __hentry = xen_hypercall_page+__HYPERVISOR_##name*32; \
|
|
26
|
+
long __res, __ign1; \
|
|
27
|
+
asm volatile ( \
|
|
28
|
+
"call *%%eax" \
|
|
29
|
+
: "=a" (__res), "=b" (__ign1) \
|
|
30
|
+
: "0" (__hentry), "1" ((long)(a1)) \
|
|
31
|
+
: "memory" ); \
|
|
32
|
+
(type)__res; \
|
|
33
|
+
})
|
|
34
|
+
|
|
35
|
+
#define _hypercall2(type, name, a1, a2) \
|
|
36
|
+
({ \
|
|
37
|
+
unsigned long __hentry = xen_hypercall_page+__HYPERVISOR_##name*32; \
|
|
38
|
+
long __res, __ign1, __ign2; \
|
|
39
|
+
asm volatile ( \
|
|
40
|
+
"call *%%eax" \
|
|
41
|
+
: "=a" (__res), "=b" (__ign1), "=c" (__ign2) \
|
|
42
|
+
: "0" (__hentry), "1" ((long)(a1)), "2" ((long)(a2)) \
|
|
43
|
+
: "memory" ); \
|
|
44
|
+
(type)__res; \
|
|
45
|
+
})
|
|
46
|
+
|
|
47
|
+
#define _hypercall3(type, name, a1, a2, a3) \
|
|
48
|
+
({ \
|
|
49
|
+
unsigned long __hentry = xen_hypercall_page+__HYPERVISOR_##name*32; \
|
|
50
|
+
long __res, __ign1, __ign2, __ign3; \
|
|
51
|
+
asm volatile ( \
|
|
52
|
+
"call *%%eax" \
|
|
53
|
+
: "=a" (__res), "=b" (__ign1), "=c" (__ign2), \
|
|
54
|
+
"=d" (__ign3) \
|
|
55
|
+
: "0" (__hentry), "1" ((long)(a1)), "2" ((long)(a2)), \
|
|
56
|
+
"3" ((long)(a3)) \
|
|
57
|
+
: "memory" ); \
|
|
58
|
+
(type)__res; \
|
|
59
|
+
})
|
|
60
|
+
|
|
61
|
+
#define _hypercall4(type, name, a1, a2, a3, a4) \
|
|
62
|
+
({ \
|
|
63
|
+
unsigned long __hentry = xen_hypercall_page+__HYPERVISOR_##name*32; \
|
|
64
|
+
long __res, __ign1, __ign2, __ign3, __ign4; \
|
|
65
|
+
asm volatile ( \
|
|
66
|
+
"call *%%eax" \
|
|
67
|
+
: "=a" (__res), "=b" (__ign1), "=c" (__ign2), \
|
|
68
|
+
"=d" (__ign3), "=S" (__ign4) \
|
|
69
|
+
: "0" (__hentry), "1" ((long)(a1)), "2" ((long)(a2)), \
|
|
70
|
+
"3" ((long)(a3)), "4" ((long)(a4)) \
|
|
71
|
+
: "memory" ); \
|
|
72
|
+
(type)__res; \
|
|
73
|
+
})
|
|
74
|
+
|
|
75
|
+
#define _hypercall5(type, name, a1, a2, a3, a4, a5) \
|
|
76
|
+
({ \
|
|
77
|
+
unsigned long __hentry = xen_hypercall_page+__HYPERVISOR_##name*32; \
|
|
78
|
+
long __res, __ign1, __ign2, __ign3, __ign4, __ign5; \
|
|
79
|
+
asm volatile ( \
|
|
80
|
+
"call *%%eax" \
|
|
81
|
+
: "=a" (__res), "=b" (__ign1), "=c" (__ign2), \
|
|
82
|
+
"=d" (__ign3), "=S" (__ign4), "=D" (__ign5) \
|
|
83
|
+
: "0" (__hentry), "1" ((long)(a1)), "2" ((long)(a2)), \
|
|
84
|
+
"3" ((long)(a3)), "4" ((long)(a4)), \
|
|
85
|
+
"5" ((long)(a5)) \
|
|
86
|
+
: "memory" ); \
|
|
87
|
+
(type)__res; \
|
|
88
|
+
})
|
|
89
|
+
|
|
90
|
+
/******************************************************************************
|
|
91
|
+
*
|
|
92
|
+
* The following interface definitions are taken from Xen and have the
|
|
93
|
+
* following license:
|
|
94
|
+
*
|
|
95
|
+
* Permission is hereby granted, free of charge, to any person obtaining a copy
|
|
96
|
+
* of this software and associated documentation files (the "Software"), to
|
|
97
|
+
* deal in the Software without restriction, including without limitation the
|
|
98
|
+
* rights to use, copy, modify, merge, publish, distribute, sublicense, and/or
|
|
99
|
+
* sell copies of the Software, and to permit persons to whom the Software is
|
|
100
|
+
* furnished to do so, subject to the following conditions:
|
|
101
|
+
*
|
|
102
|
+
* The above copyright notice and this permission notice shall be included in
|
|
103
|
+
* all copies or substantial portions of the Software.
|
|
104
|
+
*
|
|
105
|
+
* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
|
|
106
|
+
* IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
|
|
107
|
+
* FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
|
|
108
|
+
* AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
|
|
109
|
+
* LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING
|
|
110
|
+
* FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER
|
|
111
|
+
* DEALINGS IN THE SOFTWARE.
|
|
112
|
+
*/
|
|
113
|
+
|
|
114
|
+
/* xen.h */
|
|
115
|
+
|
|
116
|
+
#define __HYPERVISOR_xen_version 17
|
|
117
|
+
|
|
118
|
+
/* version.h */
|
|
119
|
+
|
|
120
|
+
/* arg == xen_extraversion_t. */
|
|
121
|
+
#define XENVER_extraversion 1
|
|
122
|
+
typedef char xen_extraversion_t[16];
|
|
123
|
+
#define XEN_EXTRAVERSION_LEN (sizeof(xen_extraversion_t))
|
|
124
|
+
|
|
125
|
+
#endif
|
|
@@ -0,0 +1,19 @@
|
|
|
1
|
+
// Tool for building defintions accessible from assembler code. This
|
|
2
|
+
// is based on code from the Linux Kernel.
|
|
3
|
+
#ifndef __GEN_DEFS_H
|
|
4
|
+
#define __GEN_DEFS_H
|
|
5
|
+
|
|
6
|
+
|
|
7
|
+
#define DEFINE(sym, val) \
|
|
8
|
+
asm volatile("\n->" #sym " %0 " #val : : "i" (val))
|
|
9
|
+
|
|
10
|
+
#define BLANK() \
|
|
11
|
+
asm volatile("\n->" : : )
|
|
12
|
+
|
|
13
|
+
#define OFFSET(sym, str, mem) \
|
|
14
|
+
DEFINE(sym, offsetof(struct str, mem))
|
|
15
|
+
|
|
16
|
+
#define COMMENT(x) \
|
|
17
|
+
asm volatile("\n->#" x)
|
|
18
|
+
|
|
19
|
+
#endif // gen-defs.h
|