v86 0.3.7 → 0.5.10
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/Readme.md +64 -108
- package/build/libv86-debug.js +12677 -0
- package/build/libv86-debug.mjs +732 -0
- package/build/libv86.js +710 -0
- package/build/libv86.mjs +636 -0
- package/build/v86-debug.wasm +0 -0
- package/build/v86-fallback.wasm +0 -0
- package/build/v86.wasm +0 -0
- package/package.json +12 -35
- package/bios/.gitignore +0 -1
- package/bios/COPYING.LESSER +0 -165
- package/bios/bochs-bios.bin +0 -0
- package/bios/bochs-vgabios.bin +0 -0
- package/bios/fetch-and-build-seabios.sh +0 -13
- package/bios/seabios/.config +0 -113
- package/bios/seabios/.config.old +0 -114
- package/bios/seabios/.gitignore +0 -4
- package/bios/seabios/COPYING +0 -674
- package/bios/seabios/COPYING.LESSER +0 -165
- package/bios/seabios/Makefile +0 -286
- package/bios/seabios/README +0 -17
- package/bios/seabios/docs/Build_overview.md +0 -104
- package/bios/seabios/docs/Contributing.md +0 -20
- package/bios/seabios/docs/Debugging.md +0 -111
- package/bios/seabios/docs/Developer_Documentation.md +0 -25
- package/bios/seabios/docs/Developer_links.md +0 -86
- package/bios/seabios/docs/Download.md +0 -27
- package/bios/seabios/docs/Execution_and_code_flow.md +0 -178
- package/bios/seabios/docs/Linking_overview.md +0 -160
- package/bios/seabios/docs/Mailinglist.md +0 -8
- package/bios/seabios/docs/Memory_Model.md +0 -253
- package/bios/seabios/docs/README +0 -5
- package/bios/seabios/docs/Releases.md +0 -482
- package/bios/seabios/docs/Runtime_config.md +0 -193
- package/bios/seabios/docs/SeaBIOS.md +0 -17
- package/bios/seabios/docs/SeaVGABIOS.md +0 -39
- package/bios/seabios/out/autoconf.h +0 -117
- 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 +0 -69
- package/bios/seabios/out/include/config/auto.conf.cmd +0 -9
- 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 +0 -4
- 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 +0 -289
- package/bios/seabios/out/scripts/kconfig/zconf.lex.c +0 -2420
- package/bios/seabios/out/scripts/kconfig/zconf.tab.c +0 -2538
- package/bios/seabios/out/scripts/kconfig/zconf.tab.o +0 -0
- package/bios/seabios/scripts/acpi_extract.py +0 -366
- package/bios/seabios/scripts/acpi_extract_preprocess.py +0 -41
- package/bios/seabios/scripts/buildrom.py +0 -56
- package/bios/seabios/scripts/buildversion.py +0 -134
- package/bios/seabios/scripts/checkrom.py +0 -95
- package/bios/seabios/scripts/checkstack.py +0 -226
- package/bios/seabios/scripts/checksum.py +0 -16
- package/bios/seabios/scripts/encodeint.py +0 -21
- package/bios/seabios/scripts/gen-offsets.sh +0 -17
- package/bios/seabios/scripts/kconfig/.gitignore +0 -22
- package/bios/seabios/scripts/kconfig/Makefile +0 -331
- package/bios/seabios/scripts/kconfig/POTFILES.in +0 -12
- package/bios/seabios/scripts/kconfig/check.sh +0 -13
- package/bios/seabios/scripts/kconfig/conf.c +0 -718
- package/bios/seabios/scripts/kconfig/confdata.c +0 -1250
- package/bios/seabios/scripts/kconfig/expr.c +0 -1168
- package/bios/seabios/scripts/kconfig/expr.h +0 -241
- package/bios/seabios/scripts/kconfig/gconf.c +0 -1542
- package/bios/seabios/scripts/kconfig/gconf.glade +0 -661
- package/bios/seabios/scripts/kconfig/images.c +0 -326
- package/bios/seabios/scripts/kconfig/kxgettext.c +0 -235
- package/bios/seabios/scripts/kconfig/lex.zconf.c +0 -2430
- package/bios/seabios/scripts/kconfig/list.h +0 -131
- package/bios/seabios/scripts/kconfig/lkc.h +0 -200
- package/bios/seabios/scripts/kconfig/lkc_proto.h +0 -57
- package/bios/seabios/scripts/kconfig/lxdialog/.gitignore +0 -4
- package/bios/seabios/scripts/kconfig/lxdialog/BIG.FAT.WARNING +0 -4
- package/bios/seabios/scripts/kconfig/lxdialog/check-lxdialog.sh +0 -87
- package/bios/seabios/scripts/kconfig/lxdialog/checklist.c +0 -332
- package/bios/seabios/scripts/kconfig/lxdialog/dialog.h +0 -257
- package/bios/seabios/scripts/kconfig/lxdialog/inputbox.c +0 -301
- package/bios/seabios/scripts/kconfig/lxdialog/menubox.c +0 -437
- package/bios/seabios/scripts/kconfig/lxdialog/textbox.c +0 -408
- package/bios/seabios/scripts/kconfig/lxdialog/util.c +0 -713
- package/bios/seabios/scripts/kconfig/lxdialog/yesno.c +0 -114
- package/bios/seabios/scripts/kconfig/mconf.c +0 -1036
- package/bios/seabios/scripts/kconfig/menu.c +0 -697
- package/bios/seabios/scripts/kconfig/merge_config.sh +0 -150
- package/bios/seabios/scripts/kconfig/nconf.c +0 -1556
- package/bios/seabios/scripts/kconfig/nconf.gui.c +0 -656
- package/bios/seabios/scripts/kconfig/nconf.h +0 -96
- package/bios/seabios/scripts/kconfig/qconf.cc +0 -1795
- package/bios/seabios/scripts/kconfig/qconf.h +0 -338
- package/bios/seabios/scripts/kconfig/streamline_config.pl +0 -647
- package/bios/seabios/scripts/kconfig/symbol.c +0 -1373
- package/bios/seabios/scripts/kconfig/util.c +0 -157
- package/bios/seabios/scripts/kconfig/zconf.gperf +0 -48
- package/bios/seabios/scripts/kconfig/zconf.hash.c_shipped +0 -289
- package/bios/seabios/scripts/kconfig/zconf.l +0 -363
- package/bios/seabios/scripts/kconfig/zconf.lex.c_shipped +0 -2420
- package/bios/seabios/scripts/kconfig/zconf.tab.c_shipped +0 -2538
- package/bios/seabios/scripts/kconfig/zconf.y +0 -733
- package/bios/seabios/scripts/layoutrom.py +0 -705
- package/bios/seabios/scripts/python23compat.py +0 -14
- package/bios/seabios/scripts/readserial.py +0 -190
- package/bios/seabios/scripts/tarball.sh +0 -36
- package/bios/seabios/scripts/test-build.sh +0 -90
- package/bios/seabios/scripts/transdump.py +0 -53
- package/bios/seabios/scripts/vgafixup.py +0 -96
- package/bios/seabios/src/Kconfig +0 -579
- package/bios/seabios/src/apm.c +0 -215
- package/bios/seabios/src/asm-offsets.c +0 -23
- package/bios/seabios/src/biosvar.h +0 -130
- package/bios/seabios/src/block.c +0 -623
- package/bios/seabios/src/block.h +0 -121
- package/bios/seabios/src/bmp.c +0 -117
- package/bios/seabios/src/boot.c +0 -793
- package/bios/seabios/src/bootsplash.c +0 -255
- package/bios/seabios/src/bregs.h +0 -80
- package/bios/seabios/src/byteorder.h +0 -71
- package/bios/seabios/src/cdrom.c +0 -322
- package/bios/seabios/src/clock.c +0 -506
- package/bios/seabios/src/code16gcc.s +0 -1
- package/bios/seabios/src/config.h +0 -108
- package/bios/seabios/src/cp437.c +0 -275
- package/bios/seabios/src/cp437.h +0 -1
- package/bios/seabios/src/disk.c +0 -779
- package/bios/seabios/src/e820map.c +0 -152
- package/bios/seabios/src/e820map.h +0 -26
- package/bios/seabios/src/entryfuncs.S +0 -165
- package/bios/seabios/src/farptr.h +0 -208
- package/bios/seabios/src/font.c +0 -139
- package/bios/seabios/src/fw/acpi-dsdt-cpu-hotplug.dsl +0 -78
- package/bios/seabios/src/fw/acpi-dsdt-dbug.dsl +0 -26
- package/bios/seabios/src/fw/acpi-dsdt-hpet.dsl +0 -36
- package/bios/seabios/src/fw/acpi-dsdt-isa.dsl +0 -102
- package/bios/seabios/src/fw/acpi-dsdt-pci-crs.dsl +0 -90
- package/bios/seabios/src/fw/acpi-dsdt.dsl +0 -342
- package/bios/seabios/src/fw/acpi-dsdt.hex +0 -554
- package/bios/seabios/src/fw/acpi.c +0 -685
- package/bios/seabios/src/fw/biostables.c +0 -491
- package/bios/seabios/src/fw/coreboot.c +0 -569
- package/bios/seabios/src/fw/csm.c +0 -347
- package/bios/seabios/src/fw/dev-pci.h +0 -52
- package/bios/seabios/src/fw/dev-piix.h +0 -29
- package/bios/seabios/src/fw/dev-q35.h +0 -52
- package/bios/seabios/src/fw/lzmadecode.c +0 -398
- package/bios/seabios/src/fw/lzmadecode.h +0 -67
- package/bios/seabios/src/fw/mptable.c +0 -197
- package/bios/seabios/src/fw/mtrr.c +0 -105
- package/bios/seabios/src/fw/multiboot.c +0 -111
- package/bios/seabios/src/fw/paravirt.c +0 -624
- package/bios/seabios/src/fw/paravirt.h +0 -63
- package/bios/seabios/src/fw/pciinit.c +0 -1187
- package/bios/seabios/src/fw/pirtable.c +0 -103
- package/bios/seabios/src/fw/q35-acpi-dsdt.dsl +0 -450
- package/bios/seabios/src/fw/romfile_loader.c +0 -259
- package/bios/seabios/src/fw/romfile_loader.h +0 -91
- package/bios/seabios/src/fw/shadow.c +0 -208
- package/bios/seabios/src/fw/smbios.c +0 -585
- package/bios/seabios/src/fw/smm.c +0 -269
- package/bios/seabios/src/fw/smp.c +0 -194
- package/bios/seabios/src/fw/ssdt-misc.dsl +0 -104
- package/bios/seabios/src/fw/ssdt-misc.hex +0 -88
- package/bios/seabios/src/fw/ssdt-pcihp.dsl +0 -36
- package/bios/seabios/src/fw/ssdt-pcihp.hex +0 -38
- package/bios/seabios/src/fw/ssdt-proc.dsl +0 -48
- package/bios/seabios/src/fw/ssdt-proc.hex +0 -35
- package/bios/seabios/src/fw/xen.c +0 -149
- package/bios/seabios/src/fw/xen.h +0 -125
- package/bios/seabios/src/gen-defs.h +0 -19
- package/bios/seabios/src/hw/ahci.c +0 -697
- package/bios/seabios/src/hw/ahci.h +0 -201
- package/bios/seabios/src/hw/ata.c +0 -1046
- package/bios/seabios/src/hw/ata.h +0 -163
- package/bios/seabios/src/hw/blockcmd.c +0 -372
- package/bios/seabios/src/hw/blockcmd.h +0 -114
- package/bios/seabios/src/hw/dma.c +0 -67
- package/bios/seabios/src/hw/esp-scsi.c +0 -241
- package/bios/seabios/src/hw/esp-scsi.h +0 -8
- package/bios/seabios/src/hw/floppy.c +0 -741
- package/bios/seabios/src/hw/lsi-scsi.c +0 -221
- package/bios/seabios/src/hw/lsi-scsi.h +0 -8
- package/bios/seabios/src/hw/megasas.c +0 -405
- package/bios/seabios/src/hw/megasas.h +0 -8
- package/bios/seabios/src/hw/mpt-scsi.c +0 -319
- package/bios/seabios/src/hw/mpt-scsi.h +0 -8
- package/bios/seabios/src/hw/nvme-int.h +0 -199
- package/bios/seabios/src/hw/nvme.c +0 -708
- package/bios/seabios/src/hw/nvme.h +0 -17
- package/bios/seabios/src/hw/pci.c +0 -133
- package/bios/seabios/src/hw/pci.h +0 -47
- package/bios/seabios/src/hw/pci_ids.h +0 -2632
- package/bios/seabios/src/hw/pci_regs.h +0 -556
- package/bios/seabios/src/hw/pcidevice.c +0 -192
- package/bios/seabios/src/hw/pcidevice.h +0 -76
- package/bios/seabios/src/hw/pic.c +0 -115
- package/bios/seabios/src/hw/pic.h +0 -60
- package/bios/seabios/src/hw/ps2port.c +0 -543
- package/bios/seabios/src/hw/ps2port.h +0 -67
- package/bios/seabios/src/hw/pvscsi.c +0 -333
- package/bios/seabios/src/hw/pvscsi.h +0 -8
- package/bios/seabios/src/hw/ramdisk.c +0 -108
- package/bios/seabios/src/hw/rtc.c +0 -100
- package/bios/seabios/src/hw/rtc.h +0 -75
- package/bios/seabios/src/hw/sdcard.c +0 -572
- package/bios/seabios/src/hw/serialio.c +0 -113
- package/bios/seabios/src/hw/serialio.h +0 -29
- package/bios/seabios/src/hw/timer.c +0 -259
- package/bios/seabios/src/hw/tpm_drivers.c +0 -636
- package/bios/seabios/src/hw/tpm_drivers.h +0 -127
- package/bios/seabios/src/hw/usb-ehci.c +0 -650
- package/bios/seabios/src/hw/usb-ehci.h +0 -177
- package/bios/seabios/src/hw/usb-hid.c +0 -442
- package/bios/seabios/src/hw/usb-hid.h +0 -29
- package/bios/seabios/src/hw/usb-hub.c +0 -205
- package/bios/seabios/src/hw/usb-hub.h +0 -64
- package/bios/seabios/src/hw/usb-msc.c +0 -222
- package/bios/seabios/src/hw/usb-msc.h +0 -10
- package/bios/seabios/src/hw/usb-ohci.c +0 -568
- package/bios/seabios/src/hw/usb-ohci.h +0 -144
- package/bios/seabios/src/hw/usb-uas.c +0 -289
- package/bios/seabios/src/hw/usb-uas.h +0 -9
- package/bios/seabios/src/hw/usb-uhci.c +0 -571
- package/bios/seabios/src/hw/usb-uhci.h +0 -128
- package/bios/seabios/src/hw/usb-xhci.c +0 -1161
- package/bios/seabios/src/hw/usb-xhci.h +0 -133
- package/bios/seabios/src/hw/usb.c +0 -499
- package/bios/seabios/src/hw/usb.h +0 -254
- package/bios/seabios/src/hw/virtio-blk.c +0 -211
- package/bios/seabios/src/hw/virtio-blk.h +0 -43
- package/bios/seabios/src/hw/virtio-pci.c +0 -501
- package/bios/seabios/src/hw/virtio-pci.h +0 -151
- package/bios/seabios/src/hw/virtio-ring.c +0 -147
- package/bios/seabios/src/hw/virtio-ring.h +0 -121
- package/bios/seabios/src/hw/virtio-scsi.c +0 -220
- package/bios/seabios/src/hw/virtio-scsi.h +0 -47
- package/bios/seabios/src/jpeg.c +0 -1055
- package/bios/seabios/src/kbd.c +0 -599
- package/bios/seabios/src/list.h +0 -91
- package/bios/seabios/src/malloc.c +0 -561
- package/bios/seabios/src/malloc.h +0 -70
- package/bios/seabios/src/memmap.h +0 -21
- package/bios/seabios/src/misc.c +0 -195
- package/bios/seabios/src/mouse.c +0 -342
- package/bios/seabios/src/optionroms.c +0 -475
- package/bios/seabios/src/output.c +0 -584
- package/bios/seabios/src/output.h +0 -68
- package/bios/seabios/src/pcibios.c +0 -241
- package/bios/seabios/src/pmm.c +0 -176
- package/bios/seabios/src/pnpbios.c +0 -88
- package/bios/seabios/src/post.c +0 -337
- package/bios/seabios/src/resume.c +0 -157
- package/bios/seabios/src/romfile.c +0 -146
- package/bios/seabios/src/romfile.h +0 -21
- package/bios/seabios/src/romlayout.S +0 -698
- package/bios/seabios/src/sercon.c +0 -677
- package/bios/seabios/src/serial.c +0 -317
- package/bios/seabios/src/sha1.c +0 -147
- package/bios/seabios/src/sha1.h +0 -8
- package/bios/seabios/src/stacks.c +0 -771
- package/bios/seabios/src/stacks.h +0 -68
- package/bios/seabios/src/std/LegacyBios.h +0 -985
- package/bios/seabios/src/std/acpi.h +0 -323
- package/bios/seabios/src/std/bda.h +0 -174
- package/bios/seabios/src/std/disk.h +0 -175
- package/bios/seabios/src/std/mptable.h +0 -77
- package/bios/seabios/src/std/multiboot.h +0 -260
- package/bios/seabios/src/std/optionrom.h +0 -59
- package/bios/seabios/src/std/pirtable.h +0 -35
- package/bios/seabios/src/std/pmm.h +0 -19
- package/bios/seabios/src/std/pnpbios.h +0 -24
- package/bios/seabios/src/std/smbios.h +0 -167
- package/bios/seabios/src/std/tcg.h +0 -554
- package/bios/seabios/src/std/vbe.h +0 -156
- package/bios/seabios/src/std/vga.h +0 -63
- package/bios/seabios/src/string.c +0 -251
- package/bios/seabios/src/string.h +0 -31
- package/bios/seabios/src/system.c +0 -357
- package/bios/seabios/src/tcgbios.c +0 -2014
- package/bios/seabios/src/tcgbios.h +0 -19
- package/bios/seabios/src/types.h +0 -156
- package/bios/seabios/src/util.h +0 -251
- package/bios/seabios/src/version.c +0 -5
- package/bios/seabios/src/vgahooks.c +0 -355
- package/bios/seabios/src/x86.c +0 -23
- package/bios/seabios/src/x86.h +0 -277
- package/bios/seabios/vgasrc/Kconfig +0 -211
- package/bios/seabios/vgasrc/bochsdisplay.c +0 -59
- package/bios/seabios/vgasrc/bochsvga.c +0 -447
- package/bios/seabios/vgasrc/bochsvga.h +0 -57
- package/bios/seabios/vgasrc/cbvga.c +0 -337
- package/bios/seabios/vgasrc/clext.c +0 -627
- package/bios/seabios/vgasrc/geodevga.c +0 -434
- package/bios/seabios/vgasrc/geodevga.h +0 -89
- package/bios/seabios/vgasrc/ramfb.c +0 -163
- package/bios/seabios/vgasrc/stdvga.c +0 -485
- package/bios/seabios/vgasrc/stdvga.h +0 -81
- package/bios/seabios/vgasrc/stdvgaio.c +0 -186
- package/bios/seabios/vgasrc/stdvgamodes.c +0 -534
- package/bios/seabios/vgasrc/swcursor.c +0 -96
- package/bios/seabios/vgasrc/vbe.c +0 -432
- package/bios/seabios/vgasrc/vgabios.c +0 -1131
- package/bios/seabios/vgasrc/vgabios.h +0 -88
- package/bios/seabios/vgasrc/vgaentry.S +0 -161
- package/bios/seabios/vgasrc/vgafb.c +0 -661
- package/bios/seabios/vgasrc/vgafb.h +0 -42
- package/bios/seabios/vgasrc/vgafonts.c +0 -785
- package/bios/seabios/vgasrc/vgahw.h +0 -152
- package/bios/seabios/vgasrc/vgainit.c +0 -202
- package/bios/seabios/vgasrc/vgalayout.lds.S +0 -23
- package/bios/seabios/vgasrc/vgautil.h +0 -103
- package/bios/seabios/vgasrc/vgaversion.c +0 -6
- package/bios/seabios-debug.bin +0 -0
- package/bios/seabios-debug.config +0 -117
- package/bios/seabios.bin +0 -0
- package/bios/seabios.config +0 -114
- package/bios/vgabios-debug.bin +0 -0
- package/bios/vgabios.bin +0 -0
- package/build/binaries.js +0 -1
- package/build/index-debug.cjs +0 -1
- package/build/index-debug.js +0 -1
- package/build/index.cjs +0 -1
- package/build/index.js +0 -1
- package/v86.css +0 -259
|
@@ -1,192 +0,0 @@
|
|
|
1
|
-
// Code to maintain and access the pci_device cache
|
|
2
|
-
//
|
|
3
|
-
// Copyright (C) 2008-2016 Kevin O'Connor <kevin@koconnor.net>
|
|
4
|
-
//
|
|
5
|
-
// This file may be distributed under the terms of the GNU LGPLv3 license.
|
|
6
|
-
|
|
7
|
-
#include "malloc.h" // malloc_tmp
|
|
8
|
-
#include "output.h" // dprintf
|
|
9
|
-
#include "pci.h" // pci_config_writel
|
|
10
|
-
#include "pcidevice.h" // pci_probe_devices
|
|
11
|
-
#include "pci_regs.h" // PCI_VENDOR_ID
|
|
12
|
-
#include "romfile.h" // romfile_loadint
|
|
13
|
-
#include "stacks.h" // wait_preempt
|
|
14
|
-
#include "string.h" // memset
|
|
15
|
-
|
|
16
|
-
struct hlist_head PCIDevices VARVERIFY32INIT;
|
|
17
|
-
int MaxPCIBus VARFSEG;
|
|
18
|
-
|
|
19
|
-
// Find all PCI devices and populate PCIDevices linked list.
|
|
20
|
-
void
|
|
21
|
-
pci_probe_devices(void)
|
|
22
|
-
{
|
|
23
|
-
dprintf(3, "PCI probe\n");
|
|
24
|
-
struct pci_device *busdevs[256];
|
|
25
|
-
memset(busdevs, 0, sizeof(busdevs));
|
|
26
|
-
struct hlist_node **pprev = &PCIDevices.first;
|
|
27
|
-
int extraroots = romfile_loadint("etc/extra-pci-roots", 0);
|
|
28
|
-
int bus = -1, lastbus = 0, rootbuses = 0, count=0;
|
|
29
|
-
while (bus < 0xff && (bus < MaxPCIBus || rootbuses < extraroots)) {
|
|
30
|
-
bus++;
|
|
31
|
-
int bdf;
|
|
32
|
-
foreachbdf(bdf, bus) {
|
|
33
|
-
// Create new pci_device struct and add to list.
|
|
34
|
-
struct pci_device *dev = malloc_tmp(sizeof(*dev));
|
|
35
|
-
if (!dev) {
|
|
36
|
-
warn_noalloc();
|
|
37
|
-
return;
|
|
38
|
-
}
|
|
39
|
-
memset(dev, 0, sizeof(*dev));
|
|
40
|
-
hlist_add(&dev->node, pprev);
|
|
41
|
-
pprev = &dev->node.next;
|
|
42
|
-
count++;
|
|
43
|
-
|
|
44
|
-
// Find parent device.
|
|
45
|
-
int rootbus;
|
|
46
|
-
struct pci_device *parent = busdevs[bus];
|
|
47
|
-
if (!parent) {
|
|
48
|
-
if (bus != lastbus)
|
|
49
|
-
rootbuses++;
|
|
50
|
-
lastbus = bus;
|
|
51
|
-
rootbus = rootbuses;
|
|
52
|
-
if (bus > MaxPCIBus)
|
|
53
|
-
MaxPCIBus = bus;
|
|
54
|
-
} else {
|
|
55
|
-
rootbus = parent->rootbus;
|
|
56
|
-
}
|
|
57
|
-
|
|
58
|
-
// Populate pci_device info.
|
|
59
|
-
dev->bdf = bdf;
|
|
60
|
-
dev->parent = parent;
|
|
61
|
-
dev->rootbus = rootbus;
|
|
62
|
-
u32 vendev = pci_config_readl(bdf, PCI_VENDOR_ID);
|
|
63
|
-
dev->vendor = vendev & 0xffff;
|
|
64
|
-
dev->device = vendev >> 16;
|
|
65
|
-
u32 classrev = pci_config_readl(bdf, PCI_CLASS_REVISION);
|
|
66
|
-
dev->class = classrev >> 16;
|
|
67
|
-
dev->prog_if = classrev >> 8;
|
|
68
|
-
dev->revision = classrev & 0xff;
|
|
69
|
-
dev->header_type = pci_config_readb(bdf, PCI_HEADER_TYPE);
|
|
70
|
-
u8 v = dev->header_type & 0x7f;
|
|
71
|
-
if (v == PCI_HEADER_TYPE_BRIDGE || v == PCI_HEADER_TYPE_CARDBUS) {
|
|
72
|
-
u8 secbus = pci_config_readb(bdf, PCI_SECONDARY_BUS);
|
|
73
|
-
dev->secondary_bus = secbus;
|
|
74
|
-
if (secbus > bus && !busdevs[secbus])
|
|
75
|
-
busdevs[secbus] = dev;
|
|
76
|
-
if (secbus > MaxPCIBus)
|
|
77
|
-
MaxPCIBus = secbus;
|
|
78
|
-
}
|
|
79
|
-
dprintf(4, "PCI device %pP (vd=%04x:%04x c=%04x)\n"
|
|
80
|
-
, dev, dev->vendor, dev->device, dev->class);
|
|
81
|
-
}
|
|
82
|
-
}
|
|
83
|
-
dprintf(1, "Found %d PCI devices (max PCI bus is %02x)\n", count, MaxPCIBus);
|
|
84
|
-
}
|
|
85
|
-
|
|
86
|
-
// Search for a device with the specified vendor and device ids.
|
|
87
|
-
struct pci_device *
|
|
88
|
-
pci_find_device(u16 vendid, u16 devid)
|
|
89
|
-
{
|
|
90
|
-
struct pci_device *pci;
|
|
91
|
-
foreachpci(pci) {
|
|
92
|
-
if (pci->vendor == vendid && pci->device == devid)
|
|
93
|
-
return pci;
|
|
94
|
-
}
|
|
95
|
-
return NULL;
|
|
96
|
-
}
|
|
97
|
-
|
|
98
|
-
// Search for a device with the specified class id.
|
|
99
|
-
struct pci_device *
|
|
100
|
-
pci_find_class(u16 classid)
|
|
101
|
-
{
|
|
102
|
-
struct pci_device *pci;
|
|
103
|
-
foreachpci(pci) {
|
|
104
|
-
if (pci->class == classid)
|
|
105
|
-
return pci;
|
|
106
|
-
}
|
|
107
|
-
return NULL;
|
|
108
|
-
}
|
|
109
|
-
|
|
110
|
-
int pci_init_device(const struct pci_device_id *ids
|
|
111
|
-
, struct pci_device *pci, void *arg)
|
|
112
|
-
{
|
|
113
|
-
while (ids->vendid || ids->class_mask) {
|
|
114
|
-
if ((ids->vendid == PCI_ANY_ID || ids->vendid == pci->vendor) &&
|
|
115
|
-
(ids->devid == PCI_ANY_ID || ids->devid == pci->device) &&
|
|
116
|
-
!((ids->class ^ pci->class) & ids->class_mask)) {
|
|
117
|
-
if (ids->func)
|
|
118
|
-
ids->func(pci, arg);
|
|
119
|
-
return 0;
|
|
120
|
-
}
|
|
121
|
-
ids++;
|
|
122
|
-
}
|
|
123
|
-
return -1;
|
|
124
|
-
}
|
|
125
|
-
|
|
126
|
-
struct pci_device *
|
|
127
|
-
pci_find_init_device(const struct pci_device_id *ids, void *arg)
|
|
128
|
-
{
|
|
129
|
-
struct pci_device *pci;
|
|
130
|
-
foreachpci(pci) {
|
|
131
|
-
if (pci_init_device(ids, pci, arg) == 0)
|
|
132
|
-
return pci;
|
|
133
|
-
}
|
|
134
|
-
return NULL;
|
|
135
|
-
}
|
|
136
|
-
|
|
137
|
-
// Enable PCI bus-mastering (ie, DMA) support on a pci device
|
|
138
|
-
void
|
|
139
|
-
pci_enable_busmaster(struct pci_device *pci)
|
|
140
|
-
{
|
|
141
|
-
wait_preempt();
|
|
142
|
-
pci_config_maskw(pci->bdf, PCI_COMMAND, 0, PCI_COMMAND_MASTER);
|
|
143
|
-
pci->have_driver = 1;
|
|
144
|
-
}
|
|
145
|
-
|
|
146
|
-
// Verify an IO bar and return it to the caller
|
|
147
|
-
u16
|
|
148
|
-
pci_enable_iobar(struct pci_device *pci, u32 addr)
|
|
149
|
-
{
|
|
150
|
-
wait_preempt();
|
|
151
|
-
u32 bar = pci_config_readl(pci->bdf, addr);
|
|
152
|
-
if (!(bar & PCI_BASE_ADDRESS_SPACE_IO)) {
|
|
153
|
-
warn_internalerror();
|
|
154
|
-
return 0;
|
|
155
|
-
}
|
|
156
|
-
bar &= PCI_BASE_ADDRESS_IO_MASK;
|
|
157
|
-
if (bar == 0 || bar > 0xffff) {
|
|
158
|
-
warn_internalerror();
|
|
159
|
-
return 0;
|
|
160
|
-
}
|
|
161
|
-
pci_config_maskw(pci->bdf, PCI_COMMAND, 0, PCI_COMMAND_IO);
|
|
162
|
-
pci->have_driver = 1;
|
|
163
|
-
return bar;
|
|
164
|
-
}
|
|
165
|
-
|
|
166
|
-
// Verify a memory bar and return it to the caller
|
|
167
|
-
void *
|
|
168
|
-
pci_enable_membar(struct pci_device *pci, u32 addr)
|
|
169
|
-
{
|
|
170
|
-
wait_preempt();
|
|
171
|
-
u32 bar = pci_config_readl(pci->bdf, addr);
|
|
172
|
-
if (bar & PCI_BASE_ADDRESS_SPACE_IO) {
|
|
173
|
-
warn_internalerror();
|
|
174
|
-
return NULL;
|
|
175
|
-
}
|
|
176
|
-
if (bar & PCI_BASE_ADDRESS_MEM_TYPE_64) {
|
|
177
|
-
u32 high = pci_config_readl(pci->bdf, addr+4);
|
|
178
|
-
if (high) {
|
|
179
|
-
dprintf(1, "Can not map memory bar over 4Gig\n");
|
|
180
|
-
return NULL;
|
|
181
|
-
}
|
|
182
|
-
}
|
|
183
|
-
bar &= PCI_BASE_ADDRESS_MEM_MASK;
|
|
184
|
-
if (bar + 4*1024*1024 < 20*1024*1024) {
|
|
185
|
-
// Bar doesn't look valid (it is in last 4M or first 16M)
|
|
186
|
-
warn_internalerror();
|
|
187
|
-
return NULL;
|
|
188
|
-
}
|
|
189
|
-
pci_config_maskw(pci->bdf, PCI_COMMAND, 0, PCI_COMMAND_MEMORY);
|
|
190
|
-
pci->have_driver = 1;
|
|
191
|
-
return (void*)bar;
|
|
192
|
-
}
|
|
@@ -1,76 +0,0 @@
|
|
|
1
|
-
#ifndef __PCIDEVICE_H
|
|
2
|
-
#define __PCIDEVICE_H
|
|
3
|
-
|
|
4
|
-
#include "types.h" // u32
|
|
5
|
-
#include "list.h" // hlist_node
|
|
6
|
-
|
|
7
|
-
struct pci_device {
|
|
8
|
-
u16 bdf;
|
|
9
|
-
u8 rootbus;
|
|
10
|
-
struct hlist_node node;
|
|
11
|
-
struct pci_device *parent;
|
|
12
|
-
|
|
13
|
-
// Configuration space device information
|
|
14
|
-
u16 vendor, device;
|
|
15
|
-
u16 class;
|
|
16
|
-
u8 prog_if, revision;
|
|
17
|
-
u8 header_type;
|
|
18
|
-
u8 secondary_bus;
|
|
19
|
-
|
|
20
|
-
// Local information on device.
|
|
21
|
-
int have_driver;
|
|
22
|
-
};
|
|
23
|
-
extern struct hlist_head PCIDevices;
|
|
24
|
-
extern int MaxPCIBus;
|
|
25
|
-
|
|
26
|
-
static inline u32 pci_classprog(struct pci_device *pci) {
|
|
27
|
-
return (pci->class << 8) | pci->prog_if;
|
|
28
|
-
}
|
|
29
|
-
|
|
30
|
-
#define foreachpci(PCI) \
|
|
31
|
-
hlist_for_each_entry(PCI, &PCIDevices, node)
|
|
32
|
-
|
|
33
|
-
#define PCI_ANY_ID (~0)
|
|
34
|
-
struct pci_device_id {
|
|
35
|
-
u32 vendid;
|
|
36
|
-
u32 devid;
|
|
37
|
-
u32 class;
|
|
38
|
-
u32 class_mask;
|
|
39
|
-
void (*func)(struct pci_device *pci, void *arg);
|
|
40
|
-
};
|
|
41
|
-
|
|
42
|
-
#define PCI_DEVICE(vendor_id, device_id, init_func) \
|
|
43
|
-
{ \
|
|
44
|
-
.vendid = (vendor_id), \
|
|
45
|
-
.devid = (device_id), \
|
|
46
|
-
.class = PCI_ANY_ID, \
|
|
47
|
-
.class_mask = 0, \
|
|
48
|
-
.func = (init_func) \
|
|
49
|
-
}
|
|
50
|
-
|
|
51
|
-
#define PCI_DEVICE_CLASS(vendor_id, device_id, class_code, init_func) \
|
|
52
|
-
{ \
|
|
53
|
-
.vendid = (vendor_id), \
|
|
54
|
-
.devid = (device_id), \
|
|
55
|
-
.class = (class_code), \
|
|
56
|
-
.class_mask = ~0, \
|
|
57
|
-
.func = (init_func) \
|
|
58
|
-
}
|
|
59
|
-
|
|
60
|
-
#define PCI_DEVICE_END \
|
|
61
|
-
{ \
|
|
62
|
-
.vendid = 0, \
|
|
63
|
-
}
|
|
64
|
-
|
|
65
|
-
void pci_probe_devices(void);
|
|
66
|
-
struct pci_device *pci_find_device(u16 vendid, u16 devid);
|
|
67
|
-
struct pci_device *pci_find_class(u16 classid);
|
|
68
|
-
int pci_init_device(const struct pci_device_id *ids
|
|
69
|
-
, struct pci_device *pci, void *arg);
|
|
70
|
-
struct pci_device *pci_find_init_device(const struct pci_device_id *ids
|
|
71
|
-
, void *arg);
|
|
72
|
-
void pci_enable_busmaster(struct pci_device *pci);
|
|
73
|
-
u16 pci_enable_iobar(struct pci_device *pci, u32 addr);
|
|
74
|
-
void *pci_enable_membar(struct pci_device *pci, u32 addr);
|
|
75
|
-
|
|
76
|
-
#endif // pcidevice.h
|
|
@@ -1,115 +0,0 @@
|
|
|
1
|
-
// Helpers for working with i8259 interrupt controller.
|
|
2
|
-
//
|
|
3
|
-
// Copyright (C) 2008 Kevin O'Connor <kevin@koconnor.net>
|
|
4
|
-
// Copyright (C) 2002 MandrakeSoft S.A.
|
|
5
|
-
//
|
|
6
|
-
// This file may be distributed under the terms of the GNU LGPLv3 license.
|
|
7
|
-
|
|
8
|
-
#include "biosvar.h" // SET_IVT
|
|
9
|
-
#include "config.h" // CONFIG_*
|
|
10
|
-
#include "output.h" // dprintf
|
|
11
|
-
#include "pic.h" // pic_*
|
|
12
|
-
|
|
13
|
-
u16
|
|
14
|
-
pic_irqmask_read(void)
|
|
15
|
-
{
|
|
16
|
-
if (!CONFIG_HARDWARE_IRQ)
|
|
17
|
-
return 0;
|
|
18
|
-
return inb(PORT_PIC1_DATA) | (inb(PORT_PIC2_DATA) << 8);
|
|
19
|
-
}
|
|
20
|
-
|
|
21
|
-
void
|
|
22
|
-
pic_irqmask_write(u16 mask)
|
|
23
|
-
{
|
|
24
|
-
if (!CONFIG_HARDWARE_IRQ)
|
|
25
|
-
return;
|
|
26
|
-
outb(mask, PORT_PIC1_DATA);
|
|
27
|
-
outb(mask >> 8, PORT_PIC2_DATA);
|
|
28
|
-
}
|
|
29
|
-
|
|
30
|
-
void
|
|
31
|
-
pic_irqmask_mask(u16 off, u16 on)
|
|
32
|
-
{
|
|
33
|
-
if (!CONFIG_HARDWARE_IRQ)
|
|
34
|
-
return;
|
|
35
|
-
u8 pic1off = off, pic1on = on, pic2off = off>>8, pic2on = on>>8;
|
|
36
|
-
outb((inb(PORT_PIC1_DATA) & ~pic1off) | pic1on, PORT_PIC1_DATA);
|
|
37
|
-
outb((inb(PORT_PIC2_DATA) & ~pic2off) | pic2on, PORT_PIC2_DATA);
|
|
38
|
-
}
|
|
39
|
-
|
|
40
|
-
void
|
|
41
|
-
pic_reset(u8 irq0, u8 irq8)
|
|
42
|
-
{
|
|
43
|
-
if (!CONFIG_HARDWARE_IRQ)
|
|
44
|
-
return;
|
|
45
|
-
// Send ICW1 (select OCW1 + will send ICW4)
|
|
46
|
-
outb(0x11, PORT_PIC1_CMD);
|
|
47
|
-
outb(0x11, PORT_PIC2_CMD);
|
|
48
|
-
// Send ICW2 (base irqs: 0x08-0x0f for irq0-7, 0x70-0x77 for irq8-15)
|
|
49
|
-
outb(irq0, PORT_PIC1_DATA);
|
|
50
|
-
outb(irq8, PORT_PIC2_DATA);
|
|
51
|
-
// Send ICW3 (cascaded pic ids)
|
|
52
|
-
outb(0x04, PORT_PIC1_DATA);
|
|
53
|
-
outb(0x02, PORT_PIC2_DATA);
|
|
54
|
-
// Send ICW4 (enable 8086 mode)
|
|
55
|
-
outb(0x01, PORT_PIC1_DATA);
|
|
56
|
-
outb(0x01, PORT_PIC2_DATA);
|
|
57
|
-
// Mask all irqs (except cascaded PIC2 irq)
|
|
58
|
-
pic_irqmask_write(PIC_IRQMASK_DEFAULT);
|
|
59
|
-
}
|
|
60
|
-
|
|
61
|
-
void
|
|
62
|
-
pic_setup(void)
|
|
63
|
-
{
|
|
64
|
-
dprintf(3, "init pic\n");
|
|
65
|
-
pic_reset(BIOS_HWIRQ0_VECTOR, BIOS_HWIRQ8_VECTOR);
|
|
66
|
-
}
|
|
67
|
-
|
|
68
|
-
void
|
|
69
|
-
enable_hwirq(int hwirq, struct segoff_s func)
|
|
70
|
-
{
|
|
71
|
-
if (!CONFIG_HARDWARE_IRQ)
|
|
72
|
-
return;
|
|
73
|
-
pic_irqmask_mask(1 << hwirq, 0);
|
|
74
|
-
int vector;
|
|
75
|
-
if (hwirq < 8)
|
|
76
|
-
vector = BIOS_HWIRQ0_VECTOR + hwirq;
|
|
77
|
-
else
|
|
78
|
-
vector = BIOS_HWIRQ8_VECTOR + hwirq - 8;
|
|
79
|
-
SET_IVT(vector, func);
|
|
80
|
-
}
|
|
81
|
-
|
|
82
|
-
static u8
|
|
83
|
-
pic_isr1_read(void)
|
|
84
|
-
{
|
|
85
|
-
if (!CONFIG_HARDWARE_IRQ)
|
|
86
|
-
return 0;
|
|
87
|
-
// 0x0b == select OCW1 + read ISR
|
|
88
|
-
outb(0x0b, PORT_PIC1_CMD);
|
|
89
|
-
return inb(PORT_PIC1_CMD);
|
|
90
|
-
}
|
|
91
|
-
|
|
92
|
-
static u8
|
|
93
|
-
pic_isr2_read(void)
|
|
94
|
-
{
|
|
95
|
-
if (!CONFIG_HARDWARE_IRQ)
|
|
96
|
-
return 0;
|
|
97
|
-
// 0x0b == select OCW1 + read ISR
|
|
98
|
-
outb(0x0b, PORT_PIC2_CMD);
|
|
99
|
-
return inb(PORT_PIC2_CMD);
|
|
100
|
-
}
|
|
101
|
-
|
|
102
|
-
// Handler for otherwise unused hardware irqs.
|
|
103
|
-
void VISIBLE16
|
|
104
|
-
handle_hwpic1(void)
|
|
105
|
-
{
|
|
106
|
-
dprintf(DEBUG_ISR_hwpic1, "handle_hwpic1 irq=%x\n", pic_isr1_read());
|
|
107
|
-
pic_eoi1();
|
|
108
|
-
}
|
|
109
|
-
|
|
110
|
-
void VISIBLE16
|
|
111
|
-
handle_hwpic2(void)
|
|
112
|
-
{
|
|
113
|
-
dprintf(DEBUG_ISR_hwpic2, "handle_hwpic2 irq=%x\n", pic_isr2_read());
|
|
114
|
-
pic_eoi2();
|
|
115
|
-
}
|
|
@@ -1,60 +0,0 @@
|
|
|
1
|
-
// Helpers for working with i8259 interrupt controller.
|
|
2
|
-
//
|
|
3
|
-
// Copyright (C) 2008 Kevin O'Connor <kevin@koconnor.net>
|
|
4
|
-
// Copyright (C) 2002 MandrakeSoft S.A.
|
|
5
|
-
//
|
|
6
|
-
// This file may be distributed under the terms of the GNU LGPLv3 license.
|
|
7
|
-
#ifndef __PIC_H
|
|
8
|
-
#define __PIC_H
|
|
9
|
-
|
|
10
|
-
#include "x86.h" // outb
|
|
11
|
-
|
|
12
|
-
#define PORT_PIC1_CMD 0x0020
|
|
13
|
-
#define PORT_PIC1_DATA 0x0021
|
|
14
|
-
#define PORT_PIC2_CMD 0x00a0
|
|
15
|
-
#define PORT_PIC2_DATA 0x00a1
|
|
16
|
-
|
|
17
|
-
// PORT_PIC1 bitdefs
|
|
18
|
-
#define PIC1_IRQ0 (1<<0)
|
|
19
|
-
#define PIC1_IRQ1 (1<<1)
|
|
20
|
-
#define PIC1_IRQ2 (1<<2)
|
|
21
|
-
#define PIC1_IRQ5 (1<<5)
|
|
22
|
-
#define PIC1_IRQ6 (1<<6)
|
|
23
|
-
// PORT_PIC2 bitdefs
|
|
24
|
-
#define PIC2_IRQ8 (1<<8)
|
|
25
|
-
#define PIC2_IRQ12 (1<<12)
|
|
26
|
-
#define PIC2_IRQ13 (1<<13)
|
|
27
|
-
#define PIC2_IRQ14 (1<<14)
|
|
28
|
-
|
|
29
|
-
#define PIC_IRQMASK_DEFAULT ((u16)~PIC1_IRQ2)
|
|
30
|
-
|
|
31
|
-
#define BIOS_HWIRQ0_VECTOR 0x08
|
|
32
|
-
#define BIOS_HWIRQ8_VECTOR 0x70
|
|
33
|
-
|
|
34
|
-
static inline void
|
|
35
|
-
pic_eoi1(void)
|
|
36
|
-
{
|
|
37
|
-
if (!CONFIG_HARDWARE_IRQ)
|
|
38
|
-
return;
|
|
39
|
-
// Send eoi (select OCW2 + eoi)
|
|
40
|
-
outb(0x20, PORT_PIC1_CMD);
|
|
41
|
-
}
|
|
42
|
-
|
|
43
|
-
static inline void
|
|
44
|
-
pic_eoi2(void)
|
|
45
|
-
{
|
|
46
|
-
if (!CONFIG_HARDWARE_IRQ)
|
|
47
|
-
return;
|
|
48
|
-
// Send eoi (select OCW2 + eoi)
|
|
49
|
-
outb(0x20, PORT_PIC2_CMD);
|
|
50
|
-
pic_eoi1();
|
|
51
|
-
}
|
|
52
|
-
|
|
53
|
-
u16 pic_irqmask_read(void);
|
|
54
|
-
void pic_irqmask_write(u16 mask);
|
|
55
|
-
void pic_irqmask_mask(u16 off, u16 on);
|
|
56
|
-
void pic_reset(u8 irq0, u8 irq8);
|
|
57
|
-
void pic_setup(void);
|
|
58
|
-
void enable_hwirq(int hwirq, struct segoff_s func);
|
|
59
|
-
|
|
60
|
-
#endif // pic.h
|