├── .gitignore ├── README.md ├── applepie_tests └── rdtsc_tester │ ├── .gitignore │ ├── Makefile │ ├── bochsrc.bxrc │ ├── bootloader.asm │ ├── flatten_pe.py │ └── kernel │ ├── .cargo │ └── config │ ├── .gitignore │ ├── Cargo.lock │ ├── Cargo.toml │ └── src │ ├── core_reqs.rs │ ├── cpu.rs │ ├── disp.rs │ ├── interrupts.rs │ ├── main.rs │ ├── mm.rs │ └── time.rs ├── assets ├── rust_installed.png ├── rustconfig.png ├── vsconfig.png └── winfeatures.png ├── bochs-performance ├── NOTES ├── compile-all ├── patch.boost-logfns ├── patch.disable-smf ├── patch.disable-smf-cpu ├── patch.make-reset-panic ├── patch.no-logging ├── testcases │ ├── Makefile │ ├── README │ ├── blur-how-many-instructions.gnumeric │ ├── blur-opcode.c │ ├── blur-performance.gnumeric │ ├── blur-translate.c │ ├── blur-translate.h │ ├── blur.c │ ├── buildshared │ ├── cost-of-function-call.gnumeric │ ├── cost-of-switch.gnumeric │ ├── translate1-defs.h │ └── translate2-defs.h └── workload │ ├── bochsrc.txt │ └── run-benchmark ├── bochs-testing ├── README ├── ctrlc.c └── plugin-test │ ├── Makefile.in │ ├── README │ ├── aclocal.m4 │ ├── common-make-defs.txt │ ├── config.guess │ ├── config.h.in │ ├── config.sub │ ├── configure │ ├── configure.in │ ├── do_tests.sh │ ├── filter-test-output │ ├── install-sh │ ├── libltdl │ ├── COPYING.LIB │ ├── Makefile.am │ ├── Makefile.in │ ├── README │ ├── acinclude.m4 │ ├── aclocal.m4 │ ├── config-h.in │ ├── configure │ ├── configure.in │ ├── ltdl.c │ ├── ltdl.h │ └── stamp-h.in │ ├── ltmain.sh │ ├── test1-static │ ├── Makefile.in │ ├── README │ ├── module1.cc │ ├── module1.h │ ├── uselib.cc │ └── uselib.out.expected │ ├── test10-modvirtual │ ├── Makefile.in │ ├── README │ ├── main.cc │ ├── main.h │ ├── module1.cc │ ├── module2.cc │ ├── modules.h │ └── uselib.out.expected │ ├── test11-modglobalconstr │ ├── Makefile.in │ ├── README │ ├── main.cc │ ├── main.h │ ├── module1.cc │ ├── module2.cc │ ├── modules.h │ └── uselib.out.expected │ ├── test12-modglobalconstr2 │ ├── Makefile.in │ ├── README │ ├── main.cc │ ├── main.h │ ├── module1.cc │ ├── module2.cc │ ├── modules.h │ └── uselib.out.expected │ ├── test2-dynamic │ ├── Makefile.in │ ├── README │ ├── module1.cc │ ├── module1.h │ ├── uselib.cc │ └── uselib.out.expected │ ├── test3-twomodules │ ├── Makefile.in │ ├── README │ ├── module1.cc │ ├── module1.h │ ├── module2.cc │ ├── module2.h │ ├── uselib.cc │ └── uselib.out.expected │ ├── test4-interdep │ ├── Makefile.in │ ├── README │ ├── module1.cc │ ├── module1.h │ ├── module2.cc │ ├── module2.h │ ├── uselib.cc │ └── uselib.out.expected │ ├── test5-execsymbols │ ├── Makefile.in │ ├── README │ ├── module1.cc │ ├── module1.h │ ├── module2.cc │ ├── module2.h │ ├── uselib.cc │ ├── uselib.h │ └── uselib.out.expected │ ├── test6-ltdlopen │ ├── Makefile.in │ ├── README │ ├── main.cc │ ├── main.h │ ├── module1.cc │ ├── module2.cc │ ├── modules.h │ └── uselib.out.expected │ ├── test7-win32dll │ ├── Makefile.in │ ├── Makefile.vc │ ├── README │ ├── main.cc │ ├── main.h │ ├── module1.cc │ ├── module2.cc │ └── uselib.out.expected │ ├── test8-execlass │ ├── Makefile.in │ ├── README │ ├── main.cc │ ├── main.h │ ├── module1.cc │ ├── module2.cc │ ├── modules.h │ └── uselib.out.expected │ ├── test9-modclass │ ├── Makefile.in │ ├── README │ ├── main.cc │ ├── main.h │ ├── module1.cc │ ├── module2.cc │ ├── modules.h │ └── uselib.out.expected │ └── testscript.in ├── bochs ├── .bochsrc ├── .conf.amigaos ├── .conf.everything ├── .conf.linux ├── .conf.macos ├── .conf.macosx ├── .conf.nothing ├── .conf.sparc ├── .conf.win32-cygwin ├── .conf.win32-vcpp ├── CHANGES ├── COPYING ├── LICENSE ├── Makefile.in ├── PARAM_TREE.txt ├── README ├── README-plugins ├── README-wxWidgets ├── README.rfb ├── TESTFORM.txt ├── TODO ├── aclocal.m4 ├── bios │ ├── BIOS-bochs-latest │ ├── BIOS-bochs-legacy │ ├── Makefile.in │ ├── SeaBIOS-README │ ├── VGABIOS-elpin-2.40 │ ├── VGABIOS-elpin-LICENSE │ ├── VGABIOS-lgpl-README │ ├── VGABIOS-lgpl-latest │ ├── VGABIOS-lgpl-latest-cirrus │ ├── VGABIOS-lgpl-latest-cirrus-debug │ ├── VGABIOS-lgpl-latest-debug │ ├── acpi-dsdt.dsl │ ├── acpi-dsdt.hex │ ├── apmbios.S │ ├── bios.bin-1.7.5 │ ├── bios_usage │ ├── biossums.c │ ├── makesym.perl │ ├── notes │ ├── rombios.c │ ├── rombios.h │ ├── rombios32.c │ ├── rombios32.ld │ ├── rombios32start.S │ └── usage.cc ├── bochs.h ├── build │ ├── android │ │ ├── How_to_Build.txt │ │ └── bochs │ │ │ ├── AndroidAppSettings.cfg │ │ │ └── AndroidBuild.sh │ ├── batch-build.perl │ ├── linux │ │ ├── README.linux-binary │ │ └── bochs-dlx.in │ ├── macos │ │ ├── CWPro3_project.sit │ │ ├── bochs.rsrc │ │ ├── bochsico.bmp │ │ └── macos_defines.h │ ├── macosx │ │ ├── Info.plist.in │ │ ├── README.macosx-binary │ │ ├── bochs-icn.icns │ │ ├── bochs.applescript │ │ ├── bochs.r │ │ ├── diskimage.pl │ │ ├── make-dmg.sh │ │ ├── pbdevelopment.plist │ │ ├── script.data │ │ └── script.r │ ├── makeall.sh │ ├── redhat │ │ ├── NOTES │ │ ├── bochs.rpmspec.template │ │ └── make-rpm │ └── win32 │ │ ├── README.win32-binary │ │ ├── bochs.manifest │ │ ├── cc2cpp │ │ ├── cpp2cc │ │ ├── diffcc2cpp │ │ ├── nsis │ │ ├── Makefile.in │ │ ├── bochs.ico │ │ ├── bochs.nsi.in │ │ ├── lgban.ico │ │ ├── logo.ico │ │ ├── penguin.ico │ │ └── unbochs.ico │ │ ├── vs2013ex-plugins-workspace.zip │ │ └── vs2013ex-workspace.zip ├── bx_debug │ ├── Makefile.in │ ├── dbg_breakpoints.cc │ ├── dbg_main.cc │ ├── debug.h │ ├── lexer.c │ ├── lexer.l │ ├── linux.cc │ ├── make-syscalls-linux.pl │ ├── parser.c │ ├── parser.h │ ├── parser.y │ ├── symbols.cc │ └── syscalls-linux.h ├── bxdisasm_new.cc ├── bxdisasm_old.cc ├── bxthread.cc ├── bxthread.h ├── bxversion.h.in ├── bxversion.rc.in ├── config.cc ├── config.guess ├── config.h.in ├── config.sub ├── configure ├── configure.in ├── cpu │ ├── 3dnow.cc │ ├── Makefile.in │ ├── access.cc │ ├── access.h │ ├── access2.cc │ ├── aes.cc │ ├── apic.cc │ ├── apic.h │ ├── arith16.cc │ ├── arith32.cc │ ├── arith64.cc │ ├── arith8.cc │ ├── avx │ │ ├── Makefile.in │ │ ├── avx.cc │ │ ├── avx2.cc │ │ ├── avx512.cc │ │ ├── avx512_bitalg.cc │ │ ├── avx512_cvt.cc │ │ ├── avx512_fma.cc │ │ ├── avx512_mask16.cc │ │ ├── avx512_mask32.cc │ │ ├── avx512_mask64.cc │ │ ├── avx512_mask8.cc │ │ ├── avx512_move.cc │ │ ├── avx512_pfp.cc │ │ ├── avx512_rcp14.cc │ │ ├── avx512_rsqrt14.cc │ │ ├── avx512_vnni.cc │ │ ├── avx_cvt.cc │ │ ├── avx_fma.cc │ │ ├── avx_pfp.cc │ │ ├── gather.cc │ │ ├── tbm32.cc │ │ ├── tbm64.cc │ │ └── xop.cc │ ├── bcd.cc │ ├── bit.cc │ ├── bit16.cc │ ├── bit32.cc │ ├── bit64.cc │ ├── bmi32.cc │ ├── bmi64.cc │ ├── call_far.cc │ ├── cpu.cc │ ├── cpu.h │ ├── cpudb │ │ ├── Makefile.in │ │ ├── amd │ │ │ ├── amd_k6_2_chomper.cc │ │ │ ├── amd_k6_2_chomper.h │ │ │ ├── amd_k6_2_chomper.txt │ │ │ ├── athlon64_clawhammer.cc │ │ │ ├── athlon64_clawhammer.h │ │ │ ├── athlon64_clawhammer.txt │ │ │ ├── athlon64_venice.cc │ │ │ ├── athlon64_venice.h │ │ │ ├── athlon64_venice.txt │ │ │ ├── phenomx3_8650_toliman.cc │ │ │ ├── phenomx3_8650_toliman.h │ │ │ ├── phenomx3_8650_toliman.txt │ │ │ ├── ryzen.cc │ │ │ ├── ryzen.h │ │ │ ├── ryzen.txt │ │ │ ├── trinity_apu.cc │ │ │ ├── trinity_apu.h │ │ │ ├── trinity_apu.txt │ │ │ ├── turion64_tyler.cc │ │ │ ├── turion64_tyler.h │ │ │ ├── turion64_tyler.txt │ │ │ ├── zambezi.cc │ │ │ ├── zambezi.h │ │ │ └── zambezi.txt │ │ └── intel │ │ │ ├── atom_n270.cc │ │ │ ├── atom_n270.h │ │ │ ├── atom_n270.txt │ │ │ ├── broadwell_ult.cc │ │ │ ├── broadwell_ult.h │ │ │ ├── broadwell_ult.txt │ │ │ ├── core2_penryn_t9600.cc │ │ │ ├── core2_penryn_t9600.h │ │ │ ├── core2_penryn_t9600.txt │ │ │ ├── core_duo_t2400_yonah.cc │ │ │ ├── core_duo_t2400_yonah.h │ │ │ ├── core_duo_t2400_yonah.txt │ │ │ ├── corei3_cnl.cc │ │ │ ├── corei3_cnl.h │ │ │ ├── corei3_cnl.txt │ │ │ ├── corei5_arrandale_m520.cc │ │ │ ├── corei5_arrandale_m520.h │ │ │ ├── corei5_arrandale_m520.txt │ │ │ ├── corei5_lynnfield_750.cc │ │ │ ├── corei5_lynnfield_750.h │ │ │ ├── corei5_lynnfield_750.txt │ │ │ ├── corei7_haswell_4770.cc │ │ │ ├── corei7_haswell_4770.h │ │ │ ├── corei7_haswell_4770.txt │ │ │ ├── corei7_ivy_bridge_3770K.cc │ │ │ ├── corei7_ivy_bridge_3770K.h │ │ │ ├── corei7_ivy_bridge_3770K.txt │ │ │ ├── corei7_sandy_bridge_2600K.cc │ │ │ ├── corei7_sandy_bridge_2600K.h │ │ │ ├── corei7_sandy_bridge_2600K.txt │ │ │ ├── corei7_skylake-x.cc │ │ │ ├── corei7_skylake-x.h │ │ │ ├── corei7_skylake-x.txt │ │ │ ├── p2_klamath.cc │ │ │ ├── p2_klamath.h │ │ │ ├── p2_klamath.txt │ │ │ ├── p3_katmai.cc │ │ │ ├── p3_katmai.h │ │ │ ├── p3_katmai.txt │ │ │ ├── p4_prescott_celeron_336.cc │ │ │ ├── p4_prescott_celeron_336.h │ │ │ ├── p4_prescott_celeron_336.txt │ │ │ ├── p4_willamette.cc │ │ │ ├── p4_willamette.h │ │ │ ├── p4_willamette.txt │ │ │ ├── pentium.cc │ │ │ ├── pentium.h │ │ │ ├── pentium.txt │ │ │ ├── pentium_mmx.cc │ │ │ ├── pentium_mmx.h │ │ │ └── pentium_mmx.txt │ ├── cpuid.cc │ ├── cpuid.h │ ├── cpustats.h │ ├── crc32.cc │ ├── crregs.cc │ ├── crregs.h │ ├── ctrl_xfer16.cc │ ├── ctrl_xfer32.cc │ ├── ctrl_xfer64.cc │ ├── ctrl_xfer_pro.cc │ ├── data_xfer16.cc │ ├── data_xfer32.cc │ ├── data_xfer64.cc │ ├── data_xfer8.cc │ ├── debugstuff.cc │ ├── decoder │ │ ├── decoder.h │ │ ├── disasm.cc │ │ ├── fetchdecode.h │ │ ├── fetchdecode32.cc │ │ ├── fetchdecode64.cc │ │ ├── fetchdecode_avx.h │ │ ├── fetchdecode_evex.h │ │ ├── fetchdecode_opmap.h │ │ ├── fetchdecode_opmap_0f38.h │ │ ├── fetchdecode_opmap_0f3a.h │ │ ├── fetchdecode_x87.h │ │ ├── fetchdecode_xop.h │ │ ├── ia_opcodes.def │ │ ├── ia_opcodes.h │ │ └── instr.h │ ├── descriptor.h │ ├── event.cc │ ├── exception.cc │ ├── flag_ctrl.cc │ ├── flag_ctrl_pro.cc │ ├── fpu │ │ ├── Makefile.in │ │ ├── control_w.h │ │ ├── f2xm1.cc │ │ ├── ferr.cc │ │ ├── fpatan.cc │ │ ├── fprem.cc │ │ ├── fpu.cc │ │ ├── fpu_arith.cc │ │ ├── fpu_cmov.cc │ │ ├── fpu_compare.cc │ │ ├── fpu_const.cc │ │ ├── fpu_constant.h │ │ ├── fpu_load_store.cc │ │ ├── fpu_misc.cc │ │ ├── fpu_trans.cc │ │ ├── fsincos.cc │ │ ├── fyl2x.cc │ │ ├── poly.cc │ │ ├── softfloat-compare.h │ │ ├── softfloat-macros.h │ │ ├── softfloat-muladd.cc │ │ ├── softfloat-round-pack.cc │ │ ├── softfloat-round-pack.h │ │ ├── softfloat-specialize.cc │ │ ├── softfloat-specialize.h │ │ ├── softfloat.cc │ │ ├── softfloat.h │ │ ├── softfloat16.cc │ │ ├── softfloatx80.cc │ │ ├── softfloatx80.h │ │ ├── status_w.h │ │ ├── tag_w.h │ │ └── todo │ ├── fpu_emu.cc │ ├── generic_cpuid.cc │ ├── generic_cpuid.h │ ├── gf2.cc │ ├── i387.h │ ├── icache.cc │ ├── icache.h │ ├── init.cc │ ├── io.cc │ ├── iret.cc │ ├── jmp_far.cc │ ├── lazy_flags.h │ ├── load.cc │ ├── logical16.cc │ ├── logical32.cc │ ├── logical64.cc │ ├── logical8.cc │ ├── mmx.cc │ ├── msr.cc │ ├── mult16.cc │ ├── mult32.cc │ ├── mult64.cc │ ├── mult8.cc │ ├── paging.cc │ ├── proc_ctrl.cc │ ├── protect_ctrl.cc │ ├── rdrand.cc │ ├── ret_far.cc │ ├── scalar_arith.h │ ├── segment_ctrl.cc │ ├── segment_ctrl_pro.cc │ ├── sha.cc │ ├── shift16.cc │ ├── shift32.cc │ ├── shift64.cc │ ├── shift8.cc │ ├── simd_compare.h │ ├── simd_int.h │ ├── simd_pfp.h │ ├── smm.cc │ ├── smm.h │ ├── soft_int.cc │ ├── sse.cc │ ├── sse_move.cc │ ├── sse_pfp.cc │ ├── sse_rcp.cc │ ├── sse_string.cc │ ├── stack.cc │ ├── stack.h │ ├── stack16.cc │ ├── stack32.cc │ ├── stack64.cc │ ├── string.cc │ ├── svm.cc │ ├── svm.h │ ├── tasking.cc │ ├── tlb.h │ ├── todo │ ├── vapic.cc │ ├── vm8086.cc │ ├── vmcs.cc │ ├── vmexit.cc │ ├── vmfunc.cc │ ├── vmx.cc │ ├── vmx.h │ ├── xmm.h │ └── xsave.cc ├── cpudb.h ├── crc.cc ├── disasm │ ├── Makefile.in │ ├── dis_decode.cc │ ├── dis_groups.cc │ ├── dis_tables.h │ ├── dis_tables.inc │ ├── dis_tables_avx.inc │ ├── dis_tables_sse.inc │ ├── dis_tables_x87.inc │ ├── dis_tables_xop.inc │ ├── disasm.h │ ├── opcodes.inc │ ├── resolve.cc │ └── syntax.cc ├── doc │ ├── docbook │ │ ├── Makefile.in │ │ ├── Makefile.jade │ │ ├── README │ │ ├── development │ │ │ └── development.dbk │ │ ├── documentation │ │ │ └── documentation.dbk │ │ ├── fixtitles.pl │ │ ├── images │ │ │ ├── dlxlinux-in-linux.png │ │ │ ├── headerbar.png │ │ │ └── undercon.png │ │ ├── include │ │ │ └── defs.sgm │ │ ├── index.html │ │ ├── misc.txt │ │ ├── outline.txt │ │ └── user │ │ │ └── user.dbk │ └── man │ │ ├── bochs-dlx.1 │ │ ├── bochs.1 │ │ ├── bochsrc.5 │ │ └── bximage.1 ├── docs-html │ ├── 00README │ ├── biossums.txt │ ├── bxdebugger.html │ ├── cpu_configurability.txt │ ├── enh_dbg_user_man.txt │ ├── memory.txt │ └── random.txt ├── extplugin.h ├── gdbstub.cc ├── gui │ ├── Makefile.in │ ├── amigagui.h │ ├── amigaos.cc │ ├── bitmaps │ │ ├── cdromd.h │ │ ├── cdromd.xpm │ │ ├── configbutton.h │ │ ├── configbutton.xpm │ │ ├── copy.h │ │ ├── copy.xpm │ │ ├── floppya.h │ │ ├── floppya.xpm │ │ ├── floppyb.h │ │ ├── floppyb.xpm │ │ ├── mouse.h │ │ ├── mouse.xpm │ │ ├── paste.h │ │ ├── paste.xpm │ │ ├── power.h │ │ ├── power.xpm │ │ ├── reset.h │ │ ├── reset.xpm │ │ ├── saverestore.h │ │ ├── saverestore.xpm │ │ ├── snapshot.h │ │ ├── snapshot.xpm │ │ ├── userbutton.h │ │ └── userbutton.xpm │ ├── carbon.cc │ ├── enh_dbg.cc │ ├── enh_dbg.h │ ├── font │ │ └── vga.bitmap.h │ ├── gtk_enh_dbg_osdep.cc │ ├── gui.cc │ ├── gui.h │ ├── icon_bochs.h │ ├── icon_bochs.xpm │ ├── keymap.cc │ ├── keymap.h │ ├── keymaps │ │ ├── sdl-pc-de.map │ │ ├── sdl-pc-us.map │ │ ├── sdl2-pc-de.map │ │ ├── sdl2-pc-us.map │ │ ├── x11-pc-be.map │ │ ├── x11-pc-da.map │ │ ├── x11-pc-de.map │ │ ├── x11-pc-es.map │ │ ├── x11-pc-fr.map │ │ ├── x11-pc-it.map │ │ ├── x11-pc-ru.map │ │ ├── x11-pc-se.map │ │ ├── x11-pc-si.map │ │ ├── x11-pc-uk.map │ │ └── x11-pc-us.map │ ├── macintosh.cc │ ├── nogui.cc │ ├── paramtree.cc │ ├── paramtree.h │ ├── rfb.cc │ ├── rfb.h │ ├── rfbkeys.h │ ├── scrollwin.cc │ ├── scrollwin.h │ ├── sdl.cc │ ├── sdl.h │ ├── sdl2.cc │ ├── sdlkeys.h │ ├── siminterface.cc │ ├── siminterface.h │ ├── svga.cc │ ├── term.cc │ ├── textconfig.cc │ ├── textconfig.h │ ├── vncsrv.cc │ ├── wenhdbg_res.h │ ├── win32.cc │ ├── win32_enh_dbg_osdep.cc │ ├── win32dialog.cc │ ├── win32dialog.h │ ├── win32paramdlg.cc │ ├── win32paramdlg.h │ ├── win32res.h │ ├── wx.cc │ ├── wxdialog.cc │ ├── wxdialog.h │ ├── wxmain.cc │ ├── wxmain.h │ └── x.cc ├── host │ └── linux │ │ └── pcidev │ │ ├── Make.kbuild │ │ ├── Makefile.in │ │ ├── kernel_pcidev.h │ │ └── pcidev.c ├── install-sh ├── instrument │ ├── example0 │ │ ├── Makefile.in │ │ ├── instrument.cc │ │ └── instrument.h │ ├── example1 │ │ ├── Makefile.in │ │ ├── instrument.cc │ │ └── instrument.h │ ├── example2 │ │ ├── Makefile.in │ │ ├── instrument.cc │ │ └── instrument.h │ ├── instrumentation.txt │ └── stubs │ │ ├── Makefile.in │ │ ├── instrument.cc │ │ └── instrument.h ├── iodev │ ├── Makefile.in │ ├── acpi.cc │ ├── acpi.h │ ├── biosdev.cc │ ├── biosdev.h │ ├── busmouse.cc │ ├── busmouse.h │ ├── cmos.cc │ ├── cmos.h │ ├── devices.cc │ ├── devices.txt │ ├── display │ │ ├── Makefile.in │ │ ├── banshee.cc │ │ ├── bitblt.h │ │ ├── ddc.cc │ │ ├── ddc.h │ │ ├── svga_cirrus.cc │ │ ├── svga_cirrus.h │ │ ├── vga.cc │ │ ├── vga.h │ │ ├── vgacore.cc │ │ ├── vgacore.h │ │ ├── voodoo.cc │ │ ├── voodoo.h │ │ ├── voodoo_data.h │ │ ├── voodoo_func.h │ │ ├── voodoo_main.h │ │ └── voodoo_types.h │ ├── dma.cc │ ├── dma.h │ ├── extfpuirq.cc │ ├── extfpuirq.h │ ├── floppy.cc │ ├── floppy.h │ ├── gameport.cc │ ├── gameport.h │ ├── harddrv.cc │ ├── harddrv.h │ ├── hdimage │ │ ├── Makefile.in │ │ ├── cdrom.cc │ │ ├── cdrom.h │ │ ├── cdrom_amigaos.cc │ │ ├── cdrom_amigaos.h │ │ ├── cdrom_misc.cc │ │ ├── cdrom_misc.h │ │ ├── cdrom_osx.cc │ │ ├── cdrom_osx.h │ │ ├── cdrom_win32.cc │ │ ├── cdrom_win32.h │ │ ├── hdimage.cc │ │ ├── hdimage.h │ │ ├── scsi_commands.h │ │ ├── vbox.cc │ │ ├── vbox.h │ │ ├── vmware3.cc │ │ ├── vmware3.h │ │ ├── vmware4.cc │ │ ├── vmware4.h │ │ ├── vpc-img.cc │ │ ├── vpc-img.h │ │ ├── vvfat.cc │ │ └── vvfat.h │ ├── hpet.cc │ ├── hpet.h │ ├── ioapic.cc │ ├── ioapic.h │ ├── iodebug.cc │ ├── iodebug.h │ ├── iodev.h │ ├── keyboard.cc │ ├── keyboard.h │ ├── network │ │ ├── Makefile.in │ │ ├── e1000.cc │ │ ├── e1000.h │ │ ├── eth_fbsd.cc │ │ ├── eth_linux.cc │ │ ├── eth_null.cc │ │ ├── eth_slirp.cc │ │ ├── eth_socket.cc │ │ ├── eth_tap.cc │ │ ├── eth_tuntap.cc │ │ ├── eth_vde.cc │ │ ├── eth_vnet.cc │ │ ├── eth_win32.cc │ │ ├── ne2k.cc │ │ ├── ne2k.h │ │ ├── netmod.cc │ │ ├── netmod.h │ │ ├── netutil.cc │ │ ├── netutil.h │ │ ├── pcipnic.cc │ │ ├── pcipnic.h │ │ ├── pnic_api.h │ │ └── slirp │ │ │ ├── COPYRIGHT │ │ │ ├── arp_table.cc │ │ │ ├── bootp.cc │ │ │ ├── bootp.h │ │ │ ├── cksum.cc │ │ │ ├── compat.cc │ │ │ ├── compat.h │ │ │ ├── debug.h │ │ │ ├── dnssearch.cc │ │ │ ├── if.cc │ │ │ ├── if.h │ │ │ ├── ip.h │ │ │ ├── ip_icmp.cc │ │ │ ├── ip_icmp.h │ │ │ ├── ip_input.cc │ │ │ ├── ip_output.cc │ │ │ ├── libslirp.h │ │ │ ├── main.h │ │ │ ├── mbuf.cc │ │ │ ├── mbuf.h │ │ │ ├── misc.cc │ │ │ ├── misc.h │ │ │ ├── sbuf.cc │ │ │ ├── sbuf.h │ │ │ ├── slirp.cc │ │ │ ├── slirp.h │ │ │ ├── slirp_config.h │ │ │ ├── socket.cc │ │ │ ├── socket.h │ │ │ ├── tcp.h │ │ │ ├── tcp_input.cc │ │ │ ├── tcp_output.cc │ │ │ ├── tcp_subr.cc │ │ │ ├── tcp_timer.cc │ │ │ ├── tcp_timer.h │ │ │ ├── tcp_var.h │ │ │ ├── tcpip.h │ │ │ ├── tftp.cc │ │ │ ├── tftp.h │ │ │ ├── udp.cc │ │ │ └── udp.h │ ├── parallel.cc │ ├── parallel.h │ ├── pci.cc │ ├── pci.h │ ├── pci2isa.cc │ ├── pci2isa.h │ ├── pci_ide.cc │ ├── pci_ide.h │ ├── pcidev.cc │ ├── pcidev.h │ ├── pic.cc │ ├── pic.h │ ├── pit.cc │ ├── pit.h │ ├── pit82c54.cc │ ├── pit82c54.h │ ├── scancodes.cc │ ├── scancodes.h │ ├── serial.cc │ ├── serial.h │ ├── serial_raw.cc │ ├── serial_raw.h │ ├── slowdown_timer.cc │ ├── slowdown_timer.h │ ├── sound │ │ ├── Makefile.in │ │ ├── es1370.cc │ │ ├── es1370.h │ │ ├── opl.cc │ │ ├── opl.h │ │ ├── sb16.cc │ │ ├── sb16.h │ │ ├── soundalsa.cc │ │ ├── soundalsa.h │ │ ├── sounddummy.cc │ │ ├── soundfile.cc │ │ ├── soundfile.h │ │ ├── soundlow.cc │ │ ├── soundlow.h │ │ ├── soundmod.cc │ │ ├── soundmod.h │ │ ├── soundoss.cc │ │ ├── soundoss.h │ │ ├── soundosx.cc │ │ ├── soundosx.h │ │ ├── soundsdl.cc │ │ ├── soundsdl.h │ │ ├── soundwin.cc │ │ └── soundwin.h │ ├── speaker.cc │ ├── speaker.h │ ├── unmapped.cc │ ├── unmapped.h │ ├── usb │ │ ├── Makefile.in │ │ ├── scsi_device.cc │ │ ├── scsi_device.h │ │ ├── uhci_core.cc │ │ ├── uhci_core.h │ │ ├── usb_cbi.cc │ │ ├── usb_cbi.h │ │ ├── usb_common.cc │ │ ├── usb_common.h │ │ ├── usb_ehci.cc │ │ ├── usb_ehci.h │ │ ├── usb_hid.cc │ │ ├── usb_hid.h │ │ ├── usb_hub.cc │ │ ├── usb_hub.h │ │ ├── usb_msd.cc │ │ ├── usb_msd.h │ │ ├── usb_ohci.cc │ │ ├── usb_ohci.h │ │ ├── usb_printer.cc │ │ ├── usb_printer.h │ │ ├── usb_uhci.cc │ │ ├── usb_uhci.h │ │ ├── usb_xhci.cc │ │ └── usb_xhci.h │ ├── virt_timer.cc │ └── virt_timer.h ├── load32bitOShack.cc ├── logio.cc ├── ltdl-bochs.h ├── ltdl.c ├── ltdlconf.h.in ├── ltmain.sh ├── main.cc ├── memory │ ├── Makefile.in │ ├── memory-bochs.h │ ├── memory.cc │ └── misc_mem.cc ├── misc │ ├── Makefile.in │ ├── bswap.h │ ├── bxcompat.h │ ├── bxhub.cc │ ├── bximage.cc │ ├── make_cmos_image.cc │ ├── niclist.c │ ├── sb16 │ │ ├── sb16ctrl.c │ │ ├── sb16ctrl.example │ │ └── sb16ctrl.exe │ ├── slirp.conf │ ├── spoolpipe.c │ └── test-access-check.cc ├── msrs.def ├── osdep.cc ├── osdep.h ├── param_names.h ├── patches │ ├── HEADER │ ├── NOTES │ ├── bochs-bios-win32.diff │ ├── patch.decode-interrupts.gz │ ├── patch.example-override-ask │ ├── patch.example-user-plugin │ ├── patch.example-vdisk-dll │ ├── patch.hosttime-port │ └── patch.marklog ├── pc_system.cc ├── pc_system.h ├── plugin.cc ├── plugin.h ├── qemu-queue.h ├── win32_enh_dbg.rc ├── win32res.rc └── wxbochs.rc ├── bochs_config ├── bochservisor ├── .gitignore ├── Cargo.toml └── src │ ├── disk.rs │ ├── lib.rs │ ├── symdumper.rs │ ├── symloader.rs │ ├── time.rs │ ├── virtmem.rs │ ├── whvp.rs │ └── win32.rs ├── bochservisor_test ├── .gitignore ├── bochsrc.bxrc ├── run.bat ├── test.asm └── test.bin ├── bochservisor_test_real ├── .gitignore ├── bochsrc.bxrc └── run.bat ├── build.py ├── sfsite ├── .htaccess ├── How the Bochs works under the hood 2nd edition.pdf ├── Makefile ├── README ├── VirtNoJit.pdf ├── Virtualization_Without_Hardware_Final.pdf ├── bochs-irc-meeting-05-30-2001.txt ├── bochs-pr-20010604.txt ├── bochspr-20011210.txt ├── default_page.php ├── diskimages.html ├── favicon.ico ├── getcurrent.html ├── getinvolved.html ├── header.html ├── images │ ├── bochs-ad.gif │ ├── bochs-banner-community.gif │ ├── bochs2_0.gif │ ├── bochs2_0.psd │ ├── bochs2_1.jpg │ ├── bochs2_1.psd │ ├── bochs2_2.jpg │ ├── bochs2_3.png │ ├── bochs2_4.png │ ├── bochs2_5.png │ ├── bochs2_6.png │ ├── favicon.bmp │ ├── lgban-bg.gif │ ├── lgban.gif │ ├── logo-ragged.gif │ ├── logo.gif │ ├── sm.gif │ ├── smban.gif │ └── smblue.gif ├── includes │ ├── cright.txt │ ├── footer.txt │ ├── header.txt │ └── release.txt ├── index.html ├── irc-200105.html ├── irc-20010530.html ├── irc-20010619.html ├── irc-20020407.html ├── irc-20021013.html ├── irc-20040201.html ├── irc.html ├── ircsurvey.html ├── links.html ├── lxr_search_help.html ├── mailinglists.html ├── networking │ ├── README │ ├── bochs-network-planning.txt │ ├── bridge.gif │ ├── host_only.gif │ ├── index.html │ ├── peter_bryce_20010614.html │ └── pkt_filter.gif ├── news.html ├── peter_bryce_20010614.html ├── related.html ├── release2_0.html ├── screenshots.html ├── searchresults.html ├── techdata.html ├── testing-forms │ ├── SUMMARY.txt │ ├── TESTFORM.txt │ ├── form-00002.txt │ ├── form-00003.txt │ ├── form-00004.txt │ ├── form-00005.txt │ ├── form-00006.txt │ ├── form-00007-sol.txt │ ├── form-00007.txt │ ├── form-00008-sol.txt │ ├── form-00008.txt │ ├── form-00009-sol.txt │ ├── form-00009.txt │ ├── form-00010-sol.txt │ ├── form-00010.txt │ ├── form-00011-sol.txt │ ├── form-00011.txt │ ├── form-00012.txt │ ├── form-00013.txt │ ├── form-00014.txt │ ├── form-00015.txt │ ├── form-00016.txt │ ├── form-00017.txt │ ├── form-00018.txt │ ├── form-00019.txt │ ├── form-00020.txt │ ├── form-00021.txt │ ├── form-00022.txt │ ├── form-00023.txt │ ├── form-00024.txt │ ├── form-00025.txt │ ├── form-00026.txt │ └── plat-table.html ├── topper-sf-test.html └── update-sites.txt └── whvp_bindings ├── .gitignore ├── Cargo.toml └── src ├── lib.rs ├── winhvemulation.rs └── winhvplatform.rs /.gitignore: -------------------------------------------------------------------------------- 1 | bochs_build 2 | .vscode 3 | -------------------------------------------------------------------------------- /applepie_tests/rdtsc_tester/.gitignore: -------------------------------------------------------------------------------- 1 | *.vfd 2 | *.flat 3 | bochsout.txt 4 | -------------------------------------------------------------------------------- /applepie_tests/rdtsc_tester/Makefile: -------------------------------------------------------------------------------- 1 | all: 2 | cd kernel && cargo build --release 3 | python flatten_pe.py kernel\target\x86_64-pc-windows-msvc\release\kernel.exe kernel.flat 4 | nasm -f bin -o unnamed_os.boot.vfd bootloader.asm 5 | 6 | debug: 7 | cd kernel && cargo build 8 | python flatten_pe.py kernel\target\x86_64-pc-windows-msvc\debug\kernel.exe kernel.flat 9 | nasm -f bin -o unnamed_os.boot.vfd bootloader.asm 10 | 11 | run: all 12 | ..\..\bochs_build\bochs.exe -q -f bochsrc.bxrc 13 | 14 | clean: 15 | -cd kernel && cargo clean 16 | -del unnamed_os.boot.vfd kernel.flat 2>NUL 17 | 18 | -------------------------------------------------------------------------------- /applepie_tests/rdtsc_tester/kernel/.cargo/config: -------------------------------------------------------------------------------- 1 | [build] 2 | target = "x86_64-pc-windows-msvc" 3 | 4 | [target.x86_64-pc-windows-msvc] 5 | rustflags = ["-C", "linker=lld-link.exe", "-C", "link-args=/entry:entry /subsystem:native /base:0xc000 /nodefaultlib /debug"] 6 | 7 | -------------------------------------------------------------------------------- /applepie_tests/rdtsc_tester/kernel/.gitignore: -------------------------------------------------------------------------------- 1 | /target 2 | **/*.rs.bk 3 | -------------------------------------------------------------------------------- /applepie_tests/rdtsc_tester/kernel/Cargo.lock: -------------------------------------------------------------------------------- 1 | [[package]] 2 | name = "kernel" 3 | version = "0.1.0" 4 | 5 | -------------------------------------------------------------------------------- /applepie_tests/rdtsc_tester/kernel/Cargo.toml: -------------------------------------------------------------------------------- 1 | [package] 2 | name = "kernel" 3 | version = "0.1.0" 4 | authors = ["bfalk"] 5 | 6 | [dependencies] 7 | 8 | [profile.release] 9 | panic = "abort" 10 | debug = true 11 | 12 | [profile.dev] 13 | panic = "abort" 14 | 15 | -------------------------------------------------------------------------------- /applepie_tests/rdtsc_tester/kernel/src/mm.rs: -------------------------------------------------------------------------------- 1 | use core::sync::atomic::{AtomicUsize, Ordering}; 2 | use core::alloc::{GlobalAlloc, Layout}; 3 | 4 | static ALLOC_BASE: AtomicUsize = AtomicUsize::new(0x00100000); 5 | const ALLOC_END: usize = 0x180000; 6 | 7 | pub struct GlobalAllocator {} 8 | 9 | unsafe impl GlobalAlloc for GlobalAllocator { 10 | /// Allocate virtual memory on this core according to `layout` 11 | /// 12 | /// This is a page heap allocator. Pages are allocated from physical memory 13 | /// and commit to a random address as RW. 14 | unsafe fn alloc(&self, layout: Layout) -> *mut u8 { 15 | let size = if layout.size() > 0 { layout.size() } else { 1 }; 16 | 17 | // 64-byte align size 18 | let size = (size + 0x3f) & !0x3f; 19 | 20 | let base = ALLOC_BASE.fetch_add(size, Ordering::SeqCst); 21 | assert!(base + size <= ALLOC_END, "Out of memory"); 22 | 23 | base as *mut u8 24 | } 25 | 26 | unsafe fn dealloc(&self, _ptr: *mut u8, _layout: Layout) { 27 | // Best free implementation 2018 28 | } 29 | } 30 | 31 | -------------------------------------------------------------------------------- /assets/rust_installed.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/gamozolabs/applepie/d261bda376b8046ef0d4664cd20c83e3dfc104a6/assets/rust_installed.png -------------------------------------------------------------------------------- /assets/rustconfig.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/gamozolabs/applepie/d261bda376b8046ef0d4664cd20c83e3dfc104a6/assets/rustconfig.png -------------------------------------------------------------------------------- /assets/vsconfig.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/gamozolabs/applepie/d261bda376b8046ef0d4664cd20c83e3dfc104a6/assets/vsconfig.png -------------------------------------------------------------------------------- /assets/winfeatures.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/gamozolabs/applepie/d261bda376b8046ef0d4664cd20c83e3dfc104a6/assets/winfeatures.png -------------------------------------------------------------------------------- /bochs-performance/patch.boost-logfns: -------------------------------------------------------------------------------- 1 | Index: buildbochs/bochs.h 2 | =================================================================== 3 | RCS file: /cvsroot/bochs/bochs/bochs.h,v 4 | retrieving revision 1.15 5 | diff -u -r1.15 bochs.h 6 | --- buildbochs/bochs.h 2001/05/24 14:08:54 1.15 7 | +++ buildbochs/bochs.h 2001/06/05 06:46:28 8 | @@ -378,7 +378,7 @@ 9 | void set_log_action (int loglevel, int action); 10 | protected: 11 | int n_logfn; 12 | -#define MAX_LOGFNS 32 13 | +#define MAX_LOGFNS 64 14 | logfunc_t *logfn_list[MAX_LOGFNS]; 15 | char *logfn; 16 | }; 17 | -------------------------------------------------------------------------------- /bochs-performance/patch.disable-smf-cpu: -------------------------------------------------------------------------------- 1 | Index: buildbochs/config.h.in 2 | =================================================================== 3 | RCS file: /cvsroot/bochs/bochs/config.h.in,v 4 | retrieving revision 1.16 5 | diff -u -r1.16 config.h.in 6 | --- buildbochs/config.h.in 2001/05/24 01:07:08 1.16 7 | +++ buildbochs/config.h.in 2001/06/05 03:43:51 8 | @@ -183,7 +183,7 @@ 9 | // This defaults to 1 since it should improve performance, but when 10 | // SMP mode is enabled, it will be turned off by configure. 11 | 12 | -#define BX_USE_CPU_SMF 1 13 | +#define BX_USE_CPU_SMF 0 14 | 15 | // Use static member functions in IO DEVice emulation modules. 16 | // For efficiency, use C like functions for IO handling, 17 | -------------------------------------------------------------------------------- /bochs-performance/patch.make-reset-panic: -------------------------------------------------------------------------------- 1 | Index: buildbochs/pc_system.cc 2 | =================================================================== 3 | RCS file: /cvsroot/bochs/bochs/pc_system.cc,v 4 | retrieving revision 1.7 5 | diff -u -r1.7 pc_system.cc 6 | --- buildbochs/pc_system.cc 2001/05/30 18:56:01 1.7 7 | +++ buildbochs/pc_system.cc 2001/06/05 16:32:00 8 | @@ -242,7 +242,7 @@ 9 | UNUSED( operation ); 10 | // Reset the processor. 11 | 12 | - BX_ERROR(( "# bx_pc_system_c::ResetSignal() called" )); 13 | + BX_PANIC(( "# bx_pc_system_c::ResetSignal() called" )); 14 | for (int i=0; ireset(BX_RESET_SOFTWARE); 16 | return(0); 17 | -------------------------------------------------------------------------------- /bochs-performance/patch.no-logging: -------------------------------------------------------------------------------- 1 | ? buildbochs/config.log 2 | ? buildbochs/confdefs.h 3 | ? buildbochs/config.cache 4 | ? buildbochs/conftestdir 5 | Index: buildbochs/bochs.h 6 | =================================================================== 7 | RCS file: /cvsroot/bochs/bochs/bochs.h,v 8 | retrieving revision 1.15 9 | diff -u -r1.15 bochs.h 10 | --- buildbochs/bochs.h 2001/05/24 14:08:54 1.15 11 | +++ buildbochs/bochs.h 2001/06/05 03:48:38 12 | @@ -390,7 +390,7 @@ 13 | ((io==NULL)? (io=new iofunc_t("/dev/stderr")) : io) 14 | #define SAFE_GET_GENLOG() \ 15 | ((genlog==NULL)? (genlog=new logfunc_t(SAFE_GET_IOFUNC())) : genlog) 16 | -/* #define NO_LOGGING */ 17 | +#define NO_LOGGING 18 | #ifndef NO_LOGGING 19 | 20 | #define BX_INFO(x) (LOG_THIS info) x 21 | -------------------------------------------------------------------------------- /bochs-performance/testcases/blur-how-many-instructions.gnumeric: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/gamozolabs/applepie/d261bda376b8046ef0d4664cd20c83e3dfc104a6/bochs-performance/testcases/blur-how-many-instructions.gnumeric -------------------------------------------------------------------------------- /bochs-performance/testcases/blur-performance.gnumeric: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/gamozolabs/applepie/d261bda376b8046ef0d4664cd20c83e3dfc104a6/bochs-performance/testcases/blur-performance.gnumeric -------------------------------------------------------------------------------- /bochs-performance/testcases/blur-translate.h: -------------------------------------------------------------------------------- 1 | #define MAX_ARRAY 128 2 | extern int array[MAX_ARRAY][MAX_ARRAY]; 3 | extern int array2[MAX_ARRAY][MAX_ARRAY]; 4 | 5 | typedef struct { 6 | int x, y; 7 | int accum; 8 | int *load_ptr; 9 | int *store_ptr; 10 | int done; 11 | } State; 12 | 13 | #if defined(IN_TRANSLATED_CODE) 14 | 15 | #define ST(n) (n) 16 | 17 | #define BEGIN_TRANSLATED_FUNCTION() \ 18 | int x=state->x, y=state->y, accum=state->accum; \ 19 | int *load_ptr=state->load_ptr, *store_ptr=state->store_ptr; \ 20 | int done = 0; \ 21 | while (!done) { 22 | 23 | 24 | #define END_TRANSLATED_FUNCTION() \ 25 | } /* end of while block started in BEGIN_TRANSLATED_FUNCTION() */ \ 26 | state->x=x; state->y=y; state->accum=accum; \ 27 | state->load_ptr=load_ptr; state->store_ptr=store_ptr; 28 | 29 | #endif // defined IN_TRANSLATED_CODE 30 | 31 | 32 | #define DO_MOVE_REL(delta_x,delta_y) do { \ 33 | ST(x) += delta_x; \ 34 | ST(y) += delta_y; \ 35 | ST(load_ptr) = &array[ST(x)][ST(y)]; \ 36 | } while (0) 37 | #define DO_SET_ACCUM(x) ST(accum) = x 38 | #define DO_ADD_DATA() ST(accum) += *ST(load_ptr) 39 | #define DO_SUBTRACT_DATA() ST(accum) -= *ST(load_ptr) 40 | #define DO_MULTIPLY_DATA() ST(accum) *= *ST(load_ptr) 41 | #define DO_STORE_DATA() *ST(store_ptr) = ST(accum) 42 | #define DO_END() done = 1 43 | 44 | 45 | -------------------------------------------------------------------------------- /bochs-performance/testcases/buildshared: -------------------------------------------------------------------------------- 1 | #!/bin/sh 2 | 3 | LOG=/tmp/buildshared.log 4 | 5 | if test $# != 1; then 6 | echo Usage: $0 libraryname 7 | exit 1 8 | fi 9 | 10 | if test ! -f "$1.c"; then 11 | echo Cannot find $1.c 12 | exit 2 13 | fi 14 | 15 | libtool gcc -O2 -c $1.c >> $LOG 2>&1 16 | if test $? != 0; then 17 | echo Compile failed for $1.c 18 | exit 3 19 | fi 20 | 21 | libtool gcc -O2 $1.lo -o lib$1.la -rpath /tmp/bochslib >> $LOG 2>&1 22 | if test $? != 0; then 23 | echo Link failed for $1.c 24 | exit 4 25 | fi 26 | 27 | echo Build completed for lib$1.la >> $LOG 2>&1 28 | exit 0 29 | -------------------------------------------------------------------------------- /bochs-performance/testcases/cost-of-function-call.gnumeric: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/gamozolabs/applepie/d261bda376b8046ef0d4664cd20c83e3dfc104a6/bochs-performance/testcases/cost-of-function-call.gnumeric -------------------------------------------------------------------------------- /bochs-performance/testcases/cost-of-switch.gnumeric: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/gamozolabs/applepie/d261bda376b8046ef0d4664cd20c83e3dfc104a6/bochs-performance/testcases/cost-of-switch.gnumeric -------------------------------------------------------------------------------- /bochs-performance/testcases/translate1-defs.h: -------------------------------------------------------------------------------- 1 | typedef struct { 2 | int x, y; 3 | int accum; 4 | int *load_ptr; 5 | int *store_ptr; 6 | int done; 7 | } State; 8 | 9 | #define MAX 128 10 | extern int array[MAX][MAX]; 11 | extern int array2[MAX][MAX]; 12 | 13 | //#define ST(n) (state->n) 14 | #define ST(n) (n) 15 | 16 | #define BEGIN_TRANSLATED_FUNCTION() \ 17 | int x=state->x, y=state->y, accum=state->accum; \ 18 | int *load_ptr=state->load_ptr, *store_ptr=state->store_ptr; 19 | 20 | #define END_TRANSLATED_FUNCTION() \ 21 | do { \ 22 | state->x=x; state->y=y; state->accum=accum; \ 23 | state->load_ptr=load_ptr; state->store_ptr=store_ptr; \ 24 | } while (0) 25 | 26 | 27 | #define DO_MOVE_REL(delta_x,delta_y) do { \ 28 | ST(x) += delta_x; \ 29 | ST(y) += delta_y; \ 30 | ST(load_ptr) = &array[ST(x)][ST(y)]; \ 31 | } while (0) 32 | #define DO_SET_ACCUM(x) ST(accum) = x 33 | #define DO_ADD_DATA() ST(accum) += *ST(load_ptr) 34 | #define DO_SUBTRACT_DATA() ST(accum) -= *ST(load_ptr) 35 | #define DO_MULTIPLY_DATA() ST(accum) *= *ST(load_ptr) 36 | #define DO_STORE_DATA() *ST(store_ptr) = ST(accum) 37 | #define DO_END() ST(done) = 1 38 | -------------------------------------------------------------------------------- /bochs-performance/testcases/translate2-defs.h: -------------------------------------------------------------------------------- 1 | typedef struct { 2 | int x, y; 3 | int accum; 4 | int *load_ptr; 5 | int *store_ptr; 6 | int done; 7 | } State; 8 | 9 | #define MAX 128 10 | extern int array[MAX][MAX]; 11 | extern int array2[MAX][MAX]; 12 | 13 | //#define ST(n) (state->n) 14 | #define ST(n) (n) 15 | 16 | #define BEGIN_TRANSLATED_FUNCTION() \ 17 | int x=state->x, y=state->y, accum=state->accum; \ 18 | int *load_ptr=state->load_ptr, *store_ptr=state->store_ptr; \ 19 | int done = 0; \ 20 | while (!done) { 21 | 22 | 23 | #define END_TRANSLATED_FUNCTION() \ 24 | } /* end of while block started in BEGIN_TRANSLATED_FUNCTION() */ \ 25 | state->x=x; state->y=y; state->accum=accum; \ 26 | state->load_ptr=load_ptr; state->store_ptr=store_ptr; \ 27 | 28 | 29 | #define DO_MOVE_REL(delta_x,delta_y) do { \ 30 | ST(x) += delta_x; \ 31 | ST(y) += delta_y; \ 32 | ST(load_ptr) = &array[ST(x)][ST(y)]; \ 33 | } while (0) 34 | #define DO_SET_ACCUM(x) ST(accum) = x 35 | #define DO_ADD_DATA() ST(accum) += *ST(load_ptr) 36 | #define DO_SUBTRACT_DATA() ST(accum) -= *ST(load_ptr) 37 | #define DO_MULTIPLY_DATA() ST(accum) *= *ST(load_ptr) 38 | #define DO_STORE_DATA() *ST(store_ptr) = ST(accum) 39 | #define DO_END() done = 1 40 | -------------------------------------------------------------------------------- /bochs-performance/workload/bochsrc.txt: -------------------------------------------------------------------------------- 1 | ############################################################### 2 | # bochsrc.txt file for DLX Linux disk image. 3 | ############################################################### 4 | 5 | # how much memory the emulated machine will have 6 | megs: 32 7 | 8 | # filename of ROM images 9 | romimage: file=/usr/local/bochs/latest/BIOS-bochs-latest, address=0xf0000 10 | vgaromimage: /usr/local/bochs/latest/VGABIOS-elpin-2.40 11 | 12 | # what disk images will be used 13 | floppya: 1_44=floppya.img, status=inserted 14 | floppyb: 1_44=floppyb.img, status=inserted 15 | newharddrivesupport: enabled=1 16 | 17 | # 1. workload 18 | diskc: file=workload.img, cyl=306, heads=4, spt=17 19 | # or 2. editing 20 | #diskc: file=normal.img, cyl=306, heads=4, spt=17 21 | #diskd: file=workload.img, cyl=306, heads=4, spt=17 22 | 23 | # choose the boot disk. 24 | boot: c 25 | 26 | # where do we send log messages? 27 | log: bochsout.txt 28 | 29 | # disable the mouse, since DLX is text only 30 | mouse: enabled=0 31 | -------------------------------------------------------------------------------- /bochs-performance/workload/run-benchmark: -------------------------------------------------------------------------------- 1 | #!/bin/sh 2 | 3 | list=../bochs* 4 | 5 | for i in $list; do 6 | echo Executing with binary: $i 7 | cat < uselib.out.expected 10 | 11 | clean-common:: 12 | rm -rf .libs *.o *.lo *.la *.dll uselib uselib.exe bin lib uselib.out uselib.out.diffs *.def *.exp core 13 | -------------------------------------------------------------------------------- /bochs-testing/plugin-test/config.h.in: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/gamozolabs/applepie/d261bda376b8046ef0d4664cd20c83e3dfc104a6/bochs-testing/plugin-test/config.h.in -------------------------------------------------------------------------------- /bochs-testing/plugin-test/configure.in: -------------------------------------------------------------------------------- 1 | AC_INIT 2 | AC_CANONICAL_HOST 3 | AC_CANONICAL_TARGET 4 | 5 | AC_PROG_CC 6 | AC_PROG_CXX 7 | 8 | dnl------------ libtool configuration 9 | dnl Enable building of the convenience library 10 | dnl and set LIBLTDL accordingly 11 | AC_LIBLTDL_CONVENIENCE 12 | dnl Substitute INCLTDL and LIBLTDL in the Makefiles 13 | AC_SUBST(INCLTDL) 14 | AC_SUBST(LIBLTDL) 15 | dnl Prepare to make DLLs 16 | AC_LIBTOOL_WIN32_DLL 17 | dnl Check for dlopen support 18 | AC_LIBTOOL_DLOPEN 19 | dnl Configure libtool 20 | AC_PROG_LIBTOOL 21 | dnl Configure libltdl 22 | AC_CONFIG_SUBDIRS(libltdl) 23 | 24 | AC_MSG_CHECKING(if -no-undefined is required to build a shared library) 25 | LT_LDFLAGS= 26 | case $host in 27 | *-*-cygwin* | *-*-mingw* | *-*-pw32* | *-*-os2*) 28 | LT_LDFLAGS=-no-undefined 29 | AC_MSG_RESULT(yes) 30 | ;; 31 | *) 32 | AC_MSG_RESULT(no) 33 | ;; 34 | esac 35 | AC_MSG_CHECKING(how to build plugins) 36 | case $host in 37 | *-*-cygwin* | *-*-mingw* | *-*-pw32* | *-*-os2*) 38 | PLUGIN_MAKEFILE_TARGET=all_win32_dlltool 39 | AC_MSG_RESULT(dlltool for cygwin/mingw) 40 | ;; 41 | *) 42 | PLUGIN_MAKEFILE_TARGET=all_libtool 43 | AC_MSG_RESULT(libtool) 44 | ;; 45 | esac 46 | AC_SUBST(PLUGIN_MAKEFILE_TARGET) 47 | 48 | 49 | AC_SUBST(CFLAGS) 50 | AC_SUBST(CPPFLAGS) 51 | AC_SUBST(CXXFLAGS) 52 | AC_SUBST(LDFLAGS) 53 | AC_SUBST(LIBS) 54 | AC_SUBST(LT_LDFLAGS) 55 | 56 | AC_OUTPUT(config.h Makefile test1-static/Makefile test2-dynamic/Makefile test3-twomodules/Makefile test4-interdep/Makefile test5-execsymbols/Makefile test6-ltdlopen/Makefile test7-win32dll/Makefile test8-execlass/Makefile test9-modclass/Makefile test10-modvirtual/Makefile test11-modglobalconstr/Makefile test12-modglobalconstr2/Makefile testscript) 57 | -------------------------------------------------------------------------------- /bochs-testing/plugin-test/filter-test-output: -------------------------------------------------------------------------------- 1 | #!/bin/sh 2 | sed 's/VARIES{[^}]*}/VARIES{xxx}/g' 3 | -------------------------------------------------------------------------------- /bochs-testing/plugin-test/libltdl/Makefile.am: -------------------------------------------------------------------------------- 1 | ## Process this file with automake to produce Makefile.in 2 | 3 | AUTOMAKE_OPTIONS = no-dependencies foreign 4 | 5 | if INSTALL_LTDL 6 | include_HEADERS = ltdl.h 7 | lib_LTLIBRARIES = libltdl.la 8 | else 9 | noinst_HEADERS = ltdl.h 10 | endif 11 | 12 | if CONVENIENCE_LTDL 13 | noinst_LTLIBRARIES = libltdlc.la 14 | endif 15 | 16 | ## Make sure these will be cleaned even when they're not built by 17 | ## default. 18 | CLEANFILES = libltdl.la libltdlc.la 19 | 20 | libltdl_la_SOURCES = ltdl.c 21 | libltdl_la_LDFLAGS = -no-undefined -version-info 4:0:1 22 | libltdl_la_LIBADD = $(LIBADD_DL) 23 | 24 | libltdlc_la_SOURCES = ltdl.c 25 | libltdlc_la_LIBADD = $(LIBADD_DL) 26 | 27 | ## Because we do not have automatic dependency tracking: 28 | ltdl.lo: ltdl.h config.h 29 | 30 | $(OBJECTS): libtool 31 | libtool: $(LIBTOOL_DEPS) 32 | $(SHELL) ./config.status --recheck 33 | 34 | ## This allows us to install libltdl without using ln and without creating 35 | ## a world writeable directory. 36 | ## FIXME: Remove this rule once automake can do this properly by itself. 37 | local-install-files: $(DISTFILES) 38 | -rm -rf $(DESTDIR)$(datadir)/libtool/libltdl 39 | $(mkinstalldirs) $(DESTDIR)$(datadir)/libtool/libltdl 40 | @for file in $(DISTFILES); do \ 41 | d=$(srcdir); \ 42 | if test -d $$d/$$file; then \ 43 | cp -r $$d/$$file $(DESTDIR)$(datadir)/libtool/libltdl/$$file; \ 44 | else \ 45 | test -f $(DESTDIR)$(datadir)/libtool/libltdl/$$file \ 46 | || cp $$d/$$file $(DESTDIR)$(datadir)/libtool/libltdl/$$file || :; \ 47 | fi; \ 48 | done 49 | -------------------------------------------------------------------------------- /bochs-testing/plugin-test/libltdl/README: -------------------------------------------------------------------------------- 1 | This is GNU libltdl, a system independent dlopen wrapper for GNU libtool. 2 | 3 | It supports the following dlopen interfaces: 4 | * dlopen (Solaris, Linux and various BSD flavors) 5 | * shl_load (HP-UX) 6 | * LoadLibrary (Win16 and Win32) 7 | * load_add_on (BeOS) 8 | * GNU DLD (emulates dynamic linking for static libraries) 9 | * libtool's dlpreopen 10 | -------------------------------------------------------------------------------- /bochs-testing/plugin-test/libltdl/configure.in: -------------------------------------------------------------------------------- 1 | dnl Process this file with autoconf to create configure. 2 | 3 | AC_INIT(ltdl.c) 4 | 5 | dnl We shouldn't be using these internal macros of autoconf, 6 | dnl but CONFIG_AUX_DIR($with_auxdir) breaks automake. 7 | AC_ARG_WITH(auxdir, 8 | [ --with-auxdir=DIR path to autoconf auxiliary files], 9 | [AC_CONFIG_AUX_DIRS($with_auxdir)], 10 | [AC_CONFIG_AUX_DIR_DEFAULT]) 11 | 12 | if test -z "$enable_ltdl_install$enable_ltdl_convenience"; then 13 | if test -f ${srcdir}/ltmain.sh; then 14 | # if libltdl is libtoolized, it is assumed to be stand-alone and 15 | # installed unless the command line overrides it (tested above) 16 | enable_ltdl_install=yes 17 | else 18 | AC_MSG_WARN([*** The top-level configure must select either]) 19 | AC_MSG_WARN([*** [A""C_LIBLTDL_INSTALLABLE] or [A""C_LIBLTDL_CONVENIENCE].]) 20 | AC_MSG_ERROR([*** Maybe you want to --enable-ltdl-install?]) 21 | fi 22 | fi 23 | 24 | AM_INIT_AUTOMAKE(libltdl,1.2,-) 25 | AM_CONFIG_HEADER(config.h:config-h.in) 26 | AM_MAINTAINER_MODE 27 | 28 | AC_PROG_CC 29 | AC_C_CONST 30 | AC_C_INLINE 31 | 32 | AC_LIBTOOL_WIN32_DLL 33 | AM_PROG_LIBTOOL 34 | AC_SUBST(LIBTOOL_DEPS) 35 | 36 | AC_CHECK_HEADER(assert.h, AC_DEFINE(HAVE_ASSERT_H)) 37 | 38 | AC_LIB_LTDL 39 | 40 | dnl Output the makefile 41 | AC_OUTPUT(Makefile) 42 | 43 | # Local Variables: 44 | # mode:shell-script 45 | # sh-indentation:2 46 | # End: 47 | -------------------------------------------------------------------------------- /bochs-testing/plugin-test/libltdl/stamp-h.in: -------------------------------------------------------------------------------- 1 | timestamp 2 | -------------------------------------------------------------------------------- /bochs-testing/plugin-test/test1-static/Makefile.in: -------------------------------------------------------------------------------- 1 | top_builddir = .. 2 | top_srcdir = @srcdir@/.. 3 | srcdir = @srcdir@ 4 | VPATH = @srcdir@ 5 | 6 | CXX=@CXX@ 7 | CXXFLAGS=@CXXFLAGS@ 8 | LDFLAGS=@LDFLAGS@ @LT_LDFLAGS@ 9 | LIBTOOL=@LIBTOOL@ 10 | 11 | all: uselib 12 | 13 | uselib: uselib.cc libmodule1.la 14 | $(LIBTOOL) $(CXX) $(LDFLAGS) -o uselib $(srcdir)/uselib.cc libmodule1.la 15 | 16 | libmodule1.la: module1.lo 17 | $(LIBTOOL) $(CXX) $(LDFLAGS) -o libmodule1.la module1.lo 18 | 19 | %.lo: %.cc 20 | $(LIBTOOL) $(CXX) $(CXXFLAGS) -c $< 21 | 22 | include ${top_srcdir}/common-make-defs.txt 23 | 24 | clean: clean-common 25 | -------------------------------------------------------------------------------- /bochs-testing/plugin-test/test1-static/README: -------------------------------------------------------------------------------- 1 | test1-static 2 | 3 | Use libtool to build module1 as a static library, and then use it in 4 | uselib.cc. 5 | -------------------------------------------------------------------------------- /bochs-testing/plugin-test/test1-static/module1.cc: -------------------------------------------------------------------------------- 1 | #include "module1.h" 2 | 3 | const char *module_name = "AddModule"; 4 | 5 | int operate (int a, int b) 6 | { 7 | return a + b; 8 | } 9 | -------------------------------------------------------------------------------- /bochs-testing/plugin-test/test1-static/module1.h: -------------------------------------------------------------------------------- 1 | extern const char *module_name; 2 | extern int operate (int a, int b); 3 | -------------------------------------------------------------------------------- /bochs-testing/plugin-test/test1-static/uselib.cc: -------------------------------------------------------------------------------- 1 | #include 2 | #include 3 | #include "module1.h" 4 | 5 | int main () 6 | { 7 | printf ("start\n"); 8 | printf ("Module name is '%s'\n", module_name); 9 | int a=5, b=12; 10 | int c = operate (a, b); 11 | printf ("operate(%d,%d) = %d\n", a, b, c); 12 | printf ("stop\n"); 13 | exit(77); 14 | } 15 | -------------------------------------------------------------------------------- /bochs-testing/plugin-test/test1-static/uselib.out.expected: -------------------------------------------------------------------------------- 1 | start 2 | Module name is 'AddModule' 3 | operate(5,12) = 17 4 | stop 5 | -------------------------------------------------------------------------------- /bochs-testing/plugin-test/test10-modvirtual/README: -------------------------------------------------------------------------------- 1 | test10-modvirtual 2 | 3 | Create an interface class in modules.h called DeviceInterface. Each module 4 | creates a child class of DeviceInterface, and implements its methods. This 5 | test loads the modules, calls the module's module_init() which instantiates a 6 | subclass of DeviceInterface and returns a pointer to it. Then main can call 7 | operate on this object using the DeviceInterface class. 8 | -------------------------------------------------------------------------------- /bochs-testing/plugin-test/test10-modvirtual/main.h: -------------------------------------------------------------------------------- 1 | #if defined(WIN32) || defined(__CYGWIN__) 2 | # ifdef MAIN_DLL_EXPORT 3 | # ifdef DLL_EXPORT 4 | # warning I will export DLL symbols for MODULE1 5 | # define MAINAPI(type) __declspec(dllexport) type 6 | # endif 7 | # else 8 | # warning I will import DLL symbols for MODULE1 9 | # define MAINAPI(type) __declspec(dllimport) type 10 | # endif 11 | #endif 12 | #ifndef MAINAPI 13 | # warning No DLL import/export is needed 14 | # define MAINAPI(type) type 15 | #endif 16 | 17 | MAINAPI(extern const char *) version_string; 18 | MAINAPI(extern int) register_module (const char *name); 19 | -------------------------------------------------------------------------------- /bochs-testing/plugin-test/test10-modvirtual/module1.cc: -------------------------------------------------------------------------------- 1 | #include 2 | #include "main.h" 3 | #define _buildsym(sym) module1_LTX_##sym 4 | #include "modules.h" 5 | 6 | class CellPhone : public DeviceInterface { 7 | int id; 8 | const char *name; 9 | const char *features; 10 | public: 11 | CellPhone(const char* name, const char* features); 12 | virtual const char* getName (); 13 | virtual const char* getFeatures (); 14 | virtual void print(FILE *); 15 | }; 16 | 17 | class DeviceInterface* module_init () 18 | { 19 | printf ("module1 init for main version %s\n", version_string); 20 | register_module ("module1"); 21 | return new CellPhone ("BochsCellPhone", "Caller ID, Video Conferencing"); 22 | } 23 | 24 | int operate (int a, int b) 25 | { 26 | return a + b; 27 | } 28 | 29 | //////// CellPhone class methods 30 | CellPhone::CellPhone(const char* name, const char* features) 31 | { 32 | this->name = name; 33 | this->features = features; 34 | } 35 | 36 | const char* CellPhone::getName () 37 | { 38 | return name; 39 | } 40 | 41 | const char* CellPhone::getFeatures () 42 | { 43 | return features; 44 | } 45 | 46 | void CellPhone::print (FILE *fp) 47 | { 48 | fprintf (fp, "[CellPhone name='%s', features='%s']", name, features); 49 | } 50 | -------------------------------------------------------------------------------- /bochs-testing/plugin-test/test10-modvirtual/modules.h: -------------------------------------------------------------------------------- 1 | #ifdef _buildsym 2 | // This section is included by each module to rename all of its symbols, 3 | // in order to avoid duplicate symbols in different modules. From the 4 | // libtool docs: "Although some platforms support having the same symbols 5 | // defined more than once it is generally not portable." 6 | 7 | #define module_init _buildsym(module_init) 8 | #define operate _buildsym(operate) 9 | extern "C" { 10 | // the extern "C" prevents C++ name mangling 11 | class DeviceInterface * module_init (); 12 | int operate (int a, int b); 13 | }; 14 | #endif 15 | 16 | typedef class DeviceInterface* (*modload_func)(void); 17 | 18 | class DeviceInterface { 19 | public: 20 | virtual const char* getName () = 0; 21 | virtual const char* getFeatures () = 0; 22 | virtual void print(FILE *) = 0; 23 | }; 24 | -------------------------------------------------------------------------------- /bochs-testing/plugin-test/test10-modvirtual/uselib.out.expected: -------------------------------------------------------------------------------- 1 | start 2 | loading module1 3 | loading module from VARIES{xxx} 4 | handle is VARIES{xxx} 5 | module_init function is at VARIES{xxx} 6 | Calling module_init 7 | module1 init for main version uselib-test6-1.0 8 | register_module was called by module 'module1' 9 | module1's device is called 'BochsCellPhone' 10 | module1 can do 'Caller ID, Video Conferencing' 11 | Calling the device's print method: 12 | [CellPhone name='BochsCellPhone', features='Caller ID, Video Conferencing'] 13 | loading module from VARIES{xxx} 14 | handle is VARIES{xxx} 15 | module_init function is at VARIES{xxx} 16 | Calling module_init 17 | module2 init for main version uselib-test6-1.0 18 | register_module was called by module 'module2' 19 | module2's device is called 'BochsStarGPS 4.0' 20 | module2 can do 'High Accuracy, Low Power, Pentium Emulation' 21 | Calling the device's print method: 22 | [GPS_Receiver name='BochsStarGPS 4.0', vendor='Bochs Project', resolution_meters='9.5000', feature_list='High Accuracy, Low Power, Pentium Emulation'] 23 | stop 24 | -------------------------------------------------------------------------------- /bochs-testing/plugin-test/test11-modglobalconstr/README: -------------------------------------------------------------------------------- 1 | test11-modglobalconstr 2 | 3 | This is the description from test10-modvirtual: 4 | > Create an interface class in modules.h called DeviceInterface. Each module 5 | > creates a child class of DeviceInterface, and implements its methods. This 6 | > test loads the modules, calls the module's module_init() which instantiates a 7 | > subclass of DeviceInterface and returns a pointer to it. Then main can 8 | > operate on this object using the DeviceInterface class. 9 | 10 | In test11, I have changed only one thing. Module2's class is created 11 | by a global constructor. Global constructors SHOULD be called when 12 | the module loads, but if your C++ compile/link process is broken or 13 | libtool uses the wrong link args, then sometimes global constructors in 14 | shared libs are NOT loaded. 15 | 16 | If test10 succeeds, but test11 fails, then you will know that your 17 | platform does not call global constructors on shared libraries 18 | when they are loaded. 19 | -------------------------------------------------------------------------------- /bochs-testing/plugin-test/test11-modglobalconstr/main.h: -------------------------------------------------------------------------------- 1 | #if defined(WIN32) || defined(__CYGWIN__) 2 | # ifdef MAIN_DLL_EXPORT 3 | # ifdef DLL_EXPORT 4 | # warning I will export DLL symbols for MODULE1 5 | # define MAINAPI(type) __declspec(dllexport) type 6 | # endif 7 | # else 8 | # warning I will import DLL symbols for MODULE1 9 | # define MAINAPI(type) __declspec(dllimport) type 10 | # endif 11 | #endif 12 | #ifndef MAINAPI 13 | # warning No DLL import/export is needed 14 | # define MAINAPI(type) type 15 | #endif 16 | 17 | MAINAPI(extern const char *) version_string; 18 | MAINAPI(extern int) register_module (const char *name); 19 | -------------------------------------------------------------------------------- /bochs-testing/plugin-test/test11-modglobalconstr/module1.cc: -------------------------------------------------------------------------------- 1 | #include 2 | #include "main.h" 3 | #define _buildsym(sym) module1_LTX_##sym 4 | #include "modules.h" 5 | 6 | class CellPhone : public DeviceInterface { 7 | int id; 8 | const char *name; 9 | const char *features; 10 | public: 11 | CellPhone(const char* name, const char* features); 12 | virtual const char* getName (); 13 | virtual const char* getFeatures (); 14 | virtual void print(FILE *); 15 | }; 16 | 17 | class DeviceInterface* module_init () 18 | { 19 | printf ("module1 init for main version %s\n", version_string); 20 | register_module ("module1"); 21 | return new CellPhone ("BochsCellPhone", "Caller ID, Video Conferencing"); 22 | } 23 | 24 | int operate (int a, int b) 25 | { 26 | return a + b; 27 | } 28 | 29 | //////// CellPhone class methods 30 | CellPhone::CellPhone(const char* name, const char* features) 31 | { 32 | this->name = name; 33 | this->features = features; 34 | } 35 | 36 | const char* CellPhone::getName () 37 | { 38 | return name; 39 | } 40 | 41 | const char* CellPhone::getFeatures () 42 | { 43 | return features; 44 | } 45 | 46 | void CellPhone::print (FILE *fp) 47 | { 48 | fprintf (fp, "[CellPhone name='%s', features='%s']", name, features); 49 | } 50 | -------------------------------------------------------------------------------- /bochs-testing/plugin-test/test11-modglobalconstr/modules.h: -------------------------------------------------------------------------------- 1 | #ifdef _buildsym 2 | // This section is included by each module to rename all of its symbols, 3 | // in order to avoid duplicate symbols in different modules. From the 4 | // libtool docs: "Although some platforms support having the same symbols 5 | // defined more than once it is generally not portable." 6 | 7 | #define module_init _buildsym(module_init) 8 | #define operate _buildsym(operate) 9 | extern "C" { 10 | // the extern "C" prevents C++ name mangling 11 | class DeviceInterface * module_init (); 12 | int operate (int a, int b); 13 | }; 14 | #endif 15 | 16 | typedef class DeviceInterface* (*modload_func)(void); 17 | 18 | class DeviceInterface { 19 | public: 20 | virtual const char* getName () = 0; 21 | virtual const char* getFeatures () = 0; 22 | virtual void print(FILE *) = 0; 23 | }; 24 | -------------------------------------------------------------------------------- /bochs-testing/plugin-test/test11-modglobalconstr/uselib.out.expected: -------------------------------------------------------------------------------- 1 | start 2 | loading module1 3 | loading module from VARIES{xxx} 4 | handle is VARIES{xxx} 5 | module_init function is at VARIES{xxx} 6 | Calling module_init 7 | module1 init for main version uselib-test6-1.0 8 | register_module was called by module 'module1' 9 | module1's device is called 'BochsCellPhone' 10 | module1 can do 'Caller ID, Video Conferencing' 11 | Calling the device's print method: 12 | [CellPhone name='BochsCellPhone', features='Caller ID, Video Conferencing'] 13 | loading module from VARIES{xxx} 14 | handle is VARIES{xxx} 15 | module_init function is at VARIES{xxx} 16 | Calling module_init 17 | module2 init for main version uselib-test6-1.0 18 | register_module was called by module 'module2' 19 | module2's device is called 'BochsStarGPS 4.0' 20 | module2 can do 'High Accuracy, Low Power, Pentium Emulation' 21 | Calling the device's print method: 22 | [GPS_Receiver name='BochsStarGPS 4.0', vendor='Bochs Project', resolution_meters='9.5000', feature_list='High Accuracy, Low Power, Pentium Emulation'] 23 | stop 24 | -------------------------------------------------------------------------------- /bochs-testing/plugin-test/test12-modglobalconstr2/README: -------------------------------------------------------------------------------- 1 | test12-modglobalconstr2 2 | 3 | This is kind of a stupid example, but it detects platforms that have 4 | problems with their global initializers, and works around it. 5 | -------------------------------------------------------------------------------- /bochs-testing/plugin-test/test12-modglobalconstr2/main.h: -------------------------------------------------------------------------------- 1 | #if defined(WIN32) || defined(__CYGWIN__) 2 | # ifdef MAIN_DLL_EXPORT 3 | # ifdef DLL_EXPORT 4 | # warning I will export DLL symbols for MODULE1 5 | # define MAINAPI(type) __declspec(dllexport) type 6 | # endif 7 | # else 8 | # warning I will import DLL symbols for MODULE1 9 | # define MAINAPI(type) __declspec(dllimport) type 10 | # endif 11 | #endif 12 | #ifndef MAINAPI 13 | # warning No DLL import/export is needed 14 | # define MAINAPI(type) type 15 | #endif 16 | 17 | MAINAPI(extern const char *) version_string; 18 | MAINAPI(extern int) register_module (const char *name); 19 | -------------------------------------------------------------------------------- /bochs-testing/plugin-test/test12-modglobalconstr2/module1.cc: -------------------------------------------------------------------------------- 1 | #include 2 | #include "main.h" 3 | #define _buildsym(sym) module1_LTX_##sym 4 | #include "modules.h" 5 | 6 | class CellPhone : public DeviceInterface { 7 | int id; 8 | const char *name; 9 | const char *features; 10 | public: 11 | CellPhone(const char* name, const char* features); 12 | virtual const char* getName (); 13 | virtual const char* getFeatures (); 14 | virtual void print(FILE *); 15 | }; 16 | 17 | class DeviceInterface* module_init () 18 | { 19 | printf ("module1 init for main version %s\n", version_string); 20 | register_module ("module1"); 21 | return new CellPhone ("BochsCellPhone", "Caller ID, Video Conferencing"); 22 | } 23 | 24 | int operate (int a, int b) 25 | { 26 | return a + b; 27 | } 28 | 29 | //////// CellPhone class methods 30 | CellPhone::CellPhone(const char* name, const char* features) 31 | { 32 | this->name = name; 33 | this->features = features; 34 | } 35 | 36 | const char* CellPhone::getName () 37 | { 38 | return name; 39 | } 40 | 41 | const char* CellPhone::getFeatures () 42 | { 43 | return features; 44 | } 45 | 46 | void CellPhone::print (FILE *fp) 47 | { 48 | fprintf (fp, "[CellPhone name='%s', features='%s']", name, features); 49 | } 50 | -------------------------------------------------------------------------------- /bochs-testing/plugin-test/test12-modglobalconstr2/modules.h: -------------------------------------------------------------------------------- 1 | #ifdef _buildsym 2 | // This section is included by each module to rename all of its symbols, 3 | // in order to avoid duplicate symbols in different modules. From the 4 | // libtool docs: "Although some platforms support having the same symbols 5 | // defined more than once it is generally not portable." 6 | 7 | #define module_init _buildsym(module_init) 8 | #define operate _buildsym(operate) 9 | extern "C" { 10 | // the extern "C" prevents C++ name mangling 11 | class DeviceInterface * module_init (); 12 | int operate (int a, int b); 13 | }; 14 | #endif 15 | 16 | typedef class DeviceInterface* (*modload_func)(void); 17 | 18 | class DeviceInterface { 19 | public: 20 | virtual const char* getName () = 0; 21 | virtual const char* getFeatures () = 0; 22 | virtual void print(FILE *) = 0; 23 | }; 24 | -------------------------------------------------------------------------------- /bochs-testing/plugin-test/test12-modglobalconstr2/uselib.out.expected: -------------------------------------------------------------------------------- 1 | start 2 | loading module1 3 | loading module from VARIES{xxx} 4 | handle is VARIES{xxx} 5 | module_init function is at VARIES{xxx} 6 | Calling module_init 7 | module1 init for main version uselib-test6-1.0 8 | register_module was called by module 'module1' 9 | module1's device is called 'BochsCellPhone' 10 | module1 can do 'Caller ID, Video Conferencing' 11 | Calling the device's print method: 12 | [CellPhone name='BochsCellPhone', features='Caller ID, Video Conferencing'] 13 | loading module from VARIES{xxx} 14 | handle is VARIES{xxx} 15 | module_init function is at VARIES{xxx} 16 | Calling module_init 17 | module2 init for main version uselib-test6-1.0 18 | register_module was called by module 'module2' 19 | VARIES{xxx} 20 | VARIES{xxx} 21 | module2's device is called 'BochsStarGPS 4.0' 22 | module2 can do 'High Accuracy, Low Power, Pentium Emulation' 23 | Calling the device's print method: 24 | [GPS_Receiver name='BochsStarGPS 4.0', vendor='Bochs Project', resolution_meters='9.5000', feature_list='High Accuracy, Low Power, Pentium Emulation'] 25 | stop 26 | -------------------------------------------------------------------------------- /bochs-testing/plugin-test/test2-dynamic/Makefile.in: -------------------------------------------------------------------------------- 1 | top_builddir = .. 2 | top_srcdir = @srcdir@/.. 3 | srcdir = @srcdir@ 4 | VPATH = @srcdir@ 5 | 6 | CXX=@CXX@ 7 | CXXFLAGS=@CXXFLAGS@ 8 | LDFLAGS=@LDFLAGS@ @LT_LDFLAGS@ 9 | LIBTOOL=@LIBTOOL@ 10 | RPATH=`pwd`/lib 11 | 12 | all: uselib 13 | 14 | uselib: uselib.cc libmodule1.la 15 | $(LIBTOOL) $(CXX) $(LDFLAGS) -o uselib $(srcdir)/uselib.cc libmodule1.la 16 | 17 | libmodule1.la: module1.lo 18 | $(LIBTOOL) $(CXX) $(LDFLAGS) -o libmodule1.la module1.lo -rpath ${RPATH} 19 | mkdir -p lib bin 20 | $(LIBTOOL) cp libmodule1.la ${RPATH} 21 | 22 | %.lo: %.cc %.h 23 | $(LIBTOOL) $(CXX) $(CXXFLAGS) -c $< 24 | 25 | include ${top_srcdir}/common-make-defs.txt 26 | 27 | clean: clean-common 28 | -------------------------------------------------------------------------------- /bochs-testing/plugin-test/test2-dynamic/module1.cc: -------------------------------------------------------------------------------- 1 | #include 2 | #define MODULE1_DLL_EXPORT 3 | #include "module1.h" 4 | 5 | const char *module_name = "AddModule"; 6 | 7 | int operate (int a, int b) 8 | { 9 | printf ("module1: operate was called\n"); 10 | return a + b; 11 | } 12 | -------------------------------------------------------------------------------- /bochs-testing/plugin-test/test2-dynamic/module1.h: -------------------------------------------------------------------------------- 1 | #if defined(WIN32) || defined(__CYGWIN__) 2 | # ifdef MODULE1_DLL_EXPORT 3 | # ifdef DLL_EXPORT 4 | # warning I will export DLL symbols for MODULE1 5 | # define MODULE1API(type) __declspec(dllexport) type 6 | # endif 7 | # else 8 | # warning I will import DLL symbols for MODULE1 9 | # define MODULE1API(type) __declspec(dllimport) type 10 | # endif 11 | #endif 12 | #ifndef MODULE1API 13 | # warning No DLL import/export is needed 14 | # define MODULE1API(type) type 15 | #endif 16 | 17 | 18 | MODULE1API(extern const char *) module_name; 19 | MODULE1API(extern int) operate (int a, int b); 20 | -------------------------------------------------------------------------------- /bochs-testing/plugin-test/test2-dynamic/uselib.cc: -------------------------------------------------------------------------------- 1 | #include 2 | #include 3 | #include "module1.h" 4 | 5 | int main () 6 | { 7 | printf ("start\n"); 8 | printf ("Module name is '%s'\n", module_name); 9 | int a=5, b=12; 10 | int c = operate (a, b); 11 | printf ("operate(%d,%d) = %d\n", a, b, c); 12 | printf ("stop\n"); 13 | exit(77); 14 | } 15 | -------------------------------------------------------------------------------- /bochs-testing/plugin-test/test2-dynamic/uselib.out.expected: -------------------------------------------------------------------------------- 1 | start 2 | Module name is 'AddModule' 3 | module1: operate was called 4 | operate(5,12) = 17 5 | stop 6 | -------------------------------------------------------------------------------- /bochs-testing/plugin-test/test3-twomodules/Makefile.in: -------------------------------------------------------------------------------- 1 | top_builddir = .. 2 | top_srcdir = @srcdir@/.. 3 | srcdir = @srcdir@ 4 | VPATH = @srcdir@ 5 | 6 | CXX=@CXX@ 7 | CXXFLAGS=@CXXFLAGS@ 8 | LDFLAGS=@LDFLAGS@ @LT_LDFLAGS@ 9 | LIBTOOL=@LIBTOOL@ 10 | RPATH=`pwd`/lib 11 | 12 | all: uselib 13 | 14 | uselib: uselib.cc libmodule1.la libmodule2.la 15 | $(LIBTOOL) $(CXX) $(LDFLAGS) -o uselib $(srcdir)/uselib.cc libmodule1.la libmodule2.la 16 | 17 | libmodule1.la: module1.lo 18 | $(LIBTOOL) $(CXX) $(LDFLAGS) -o libmodule1.la module1.lo -rpath ${RPATH} 19 | mkdir -p lib bin 20 | $(LIBTOOL) cp libmodule1.la ${RPATH} 21 | 22 | libmodule2.la: module2.lo 23 | $(LIBTOOL) $(CXX) $(LDFLAGS) -o libmodule2.la module2.lo -rpath ${RPATH} 24 | mkdir -p lib bin 25 | $(LIBTOOL) cp libmodule2.la ${RPATH} 26 | 27 | %.lo: %.cc 28 | $(LIBTOOL) $(CXX) $(CXXFLAGS) -c $< 29 | 30 | include ${top_srcdir}/common-make-defs.txt 31 | 32 | clean: clean-common 33 | -------------------------------------------------------------------------------- /bochs-testing/plugin-test/test3-twomodules/README: -------------------------------------------------------------------------------- 1 | test3 2 | 3 | Add a second module 4 | 5 | module1 exports module_name and operate(int,int). 6 | module2 exports n_operations 7 | 8 | Both are used in uselib.cc. They don't use each other's symbols. 9 | -------------------------------------------------------------------------------- /bochs-testing/plugin-test/test3-twomodules/module1.cc: -------------------------------------------------------------------------------- 1 | #define MODULE1_DLL_EXPORT 2 | #include "module1.h" 3 | #include "module2.h" 4 | 5 | const char *module_name = "AddModule"; 6 | 7 | int operate (int a, int b) 8 | { 9 | return a + b; 10 | } 11 | -------------------------------------------------------------------------------- /bochs-testing/plugin-test/test3-twomodules/module1.h: -------------------------------------------------------------------------------- 1 | #if defined(WIN32) || defined(__CYGWIN__) 2 | # ifdef MODULE1_DLL_EXPORT 3 | # ifdef DLL_EXPORT 4 | # warning I will export DLL symbols for MODULE1 5 | # define MODULE1API(type) __declspec(dllexport) type 6 | # endif 7 | # else 8 | # warning I will import DLL symbols for MODULE1 9 | # define MODULE1API(type) __declspec(dllimport) type 10 | # endif 11 | #endif 12 | #ifndef MODULE1API 13 | # warning No DLL import/export is needed 14 | # define MODULE1API(type) type 15 | #endif 16 | 17 | MODULE1API(extern const char *) module_name; 18 | MODULE1API(extern int) operate (int a, int b); 19 | 20 | -------------------------------------------------------------------------------- /bochs-testing/plugin-test/test3-twomodules/module2.cc: -------------------------------------------------------------------------------- 1 | #include 2 | #define MODULE2_DLL_EXPORT 3 | #include "module2.h" 4 | 5 | int n_operations = 0; 6 | 7 | void operation_occurred () { 8 | printf ("module2: operation_occurred\n"); 9 | n_operations++; 10 | } 11 | -------------------------------------------------------------------------------- /bochs-testing/plugin-test/test3-twomodules/module2.h: -------------------------------------------------------------------------------- 1 | #if defined(WIN32) || defined(__CYGWIN__) 2 | # ifdef MODULE2_DLL_EXPORT 3 | # ifdef DLL_EXPORT 4 | # warning I will export DLL symbols for MODULE2 5 | # define MODULE2API(type) __declspec(dllexport) type 6 | # endif 7 | # else 8 | # warning I will import DLL symbols for MODULE2 9 | # define MODULE2API(type) __declspec(dllimport) type 10 | # endif 11 | #endif 12 | #ifndef MODULE2API 13 | # warning No DLL import/export is needed 14 | # define MODULE2API(type) type 15 | #endif 16 | 17 | MODULE2API(extern int) n_operations; 18 | MODULE2API(void) operation_occurred (); 19 | 20 | -------------------------------------------------------------------------------- /bochs-testing/plugin-test/test3-twomodules/uselib.cc: -------------------------------------------------------------------------------- 1 | #include 2 | #include 3 | #include "module1.h" 4 | #include "module2.h" 5 | 6 | int main () 7 | { 8 | printf ("start\n"); 9 | printf ("at first, n_operations = %d\n", n_operations); 10 | printf ("Module name is '%s'\n", module_name); 11 | int a=5, b=12; 12 | int c = operate (a, b); 13 | operation_occurred (); 14 | printf ("operate(%d,%d) = %d\n", a, b, c); 15 | printf ("stop\n"); 16 | printf ("at end, n_operations = %d\n", n_operations); 17 | exit(77); 18 | } 19 | -------------------------------------------------------------------------------- /bochs-testing/plugin-test/test3-twomodules/uselib.out.expected: -------------------------------------------------------------------------------- 1 | start 2 | at first, n_operations = 0 3 | Module name is 'AddModule' 4 | module2: operation_occurred 5 | operate(5,12) = 17 6 | stop 7 | at end, n_operations = 1 8 | -------------------------------------------------------------------------------- /bochs-testing/plugin-test/test4-interdep/Makefile.in: -------------------------------------------------------------------------------- 1 | top_builddir = .. 2 | top_srcdir = @srcdir@/.. 3 | srcdir = @srcdir@ 4 | VPATH = @srcdir@ 5 | 6 | CXX=@CXX@ 7 | CXXFLAGS=@CXXFLAGS@ 8 | LDFLAGS=@LDFLAGS@ @LT_LDFLAGS@ 9 | LIBTOOL=@LIBTOOL@ 10 | RPATH=`pwd`/lib 11 | 12 | all: uselib 13 | 14 | uselib: uselib.cc libmodule1.la libmodule2.la 15 | $(LIBTOOL) $(CXX) $(LDFLAGS) -o uselib $(srcdir)/uselib.cc libmodule1.la libmodule2.la 16 | 17 | libmodule1.la: module1.lo libmodule2.la 18 | $(LIBTOOL) $(CXX) $(LDFLAGS) -o libmodule1.la module1.lo -rpath ${RPATH} libmodule2.la 19 | mkdir -p lib bin 20 | $(LIBTOOL) cp libmodule1.la ${RPATH} 21 | 22 | libmodule2.la: module2.lo 23 | $(LIBTOOL) $(CXX) $(LDFLAGS) -o libmodule2.la module2.lo -rpath ${RPATH} 24 | mkdir -p lib bin 25 | $(LIBTOOL) cp libmodule2.la ${RPATH} 26 | 27 | %.lo: %.cc 28 | $(LIBTOOL) $(CXX) $(CXXFLAGS) -c $< 29 | 30 | include ${top_srcdir}/common-make-defs.txt 31 | 32 | clean: clean-common 33 | -------------------------------------------------------------------------------- /bochs-testing/plugin-test/test4-interdep/README: -------------------------------------------------------------------------------- 1 | test4-interdep 2 | 3 | Can one module reference objects in another module? Yes. 4 | 5 | module1 exports module_name and operate(int,int). 6 | module2 exports n_operations and operation_occurred(). 7 | 8 | uselib.cc uses symbols and functions from both modules. 9 | Module1 calls operation_occurred() in module2. 10 | 11 | To do this, module2 must be built first. Then module1 is linked 12 | against module2 so that the missing symbols are available. Then, 13 | uselib is linked against both. 14 | 15 | This shows that we can chain libraries. I haven't seen any way to 16 | resolve a circular dependency, where mod1 depends on mod2 and vice 17 | versa, in win32 DLLs. Probably those are not supported. 18 | -------------------------------------------------------------------------------- /bochs-testing/plugin-test/test4-interdep/module1.cc: -------------------------------------------------------------------------------- 1 | #define MODULE1_DLL_EXPORT 2 | #include "module1.h" 3 | #include "module2.h" 4 | 5 | const char *module_name = "AddModule"; 6 | 7 | int operate (int a, int b) 8 | { 9 | operation_occurred (); 10 | return a + b; 11 | } 12 | -------------------------------------------------------------------------------- /bochs-testing/plugin-test/test4-interdep/module1.h: -------------------------------------------------------------------------------- 1 | #if defined(WIN32) || defined(__CYGWIN__) 2 | # ifdef MODULE1_DLL_EXPORT 3 | # ifdef DLL_EXPORT 4 | # warning I will export DLL symbols for MODULE1 5 | # define MODULE1API(type) __declspec(dllexport) type 6 | # endif 7 | # else 8 | # warning I will import DLL symbols for MODULE1 9 | # define MODULE1API(type) __declspec(dllimport) type 10 | # endif 11 | #endif 12 | #ifndef MODULE1API 13 | # warning No DLL import/export is needed 14 | # define MODULE1API(type) type 15 | #endif 16 | 17 | MODULE1API(extern const char *) module_name; 18 | MODULE1API(extern int) operate (int a, int b); 19 | 20 | -------------------------------------------------------------------------------- /bochs-testing/plugin-test/test4-interdep/module2.cc: -------------------------------------------------------------------------------- 1 | #include 2 | #define MODULE2_DLL_EXPORT 3 | #include "module2.h" 4 | 5 | int n_operations = 0; 6 | 7 | void operation_occurred () { 8 | printf ("module2: operation_occurred\n"); 9 | n_operations++; 10 | } 11 | -------------------------------------------------------------------------------- /bochs-testing/plugin-test/test4-interdep/module2.h: -------------------------------------------------------------------------------- 1 | #if defined(WIN32) || defined(__CYGWIN__) 2 | # ifdef MODULE2_DLL_EXPORT 3 | # ifdef DLL_EXPORT 4 | # warning I will export DLL symbols for MODULE2 5 | # define MODULE2API(type) __declspec(dllexport) type 6 | # endif 7 | # else 8 | # warning I will import DLL symbols for MODULE2 9 | # define MODULE2API(type) __declspec(dllimport) type 10 | # endif 11 | #endif 12 | #ifndef MODULE2API 13 | # warning No DLL import/export is needed 14 | # define MODULE2API(type) type 15 | #endif 16 | 17 | 18 | MODULE2API(extern int) n_operations; 19 | MODULE2API(void) operation_occurred (); 20 | -------------------------------------------------------------------------------- /bochs-testing/plugin-test/test4-interdep/uselib.cc: -------------------------------------------------------------------------------- 1 | #include 2 | #include 3 | #include "module1.h" 4 | #include "module2.h" 5 | 6 | int main () 7 | { 8 | printf ("start\n"); 9 | printf ("at first, n_operations = %d\n", n_operations); 10 | printf ("Module name is '%s'\n", module_name); 11 | int a=5, b=12; 12 | int c = operate (a, b); 13 | printf ("operate(%d,%d) = %d\n", a, b, c); 14 | printf ("stop\n"); 15 | printf ("at end, n_operations = %d\n", n_operations); 16 | exit(77); 17 | } 18 | -------------------------------------------------------------------------------- /bochs-testing/plugin-test/test4-interdep/uselib.out.expected: -------------------------------------------------------------------------------- 1 | start 2 | at first, n_operations = 0 3 | Module name is 'AddModule' 4 | module2: operation_occurred 5 | operate(5,12) = 17 6 | stop 7 | at end, n_operations = 1 8 | -------------------------------------------------------------------------------- /bochs-testing/plugin-test/test5-execsymbols/Makefile.in: -------------------------------------------------------------------------------- 1 | top_builddir = .. 2 | top_srcdir = @srcdir@/.. 3 | srcdir = @srcdir@ 4 | VPATH = @srcdir@ 5 | 6 | CXX=@CXX@ 7 | CXXFLAGS=@CXXFLAGS@ 8 | LDFLAGS=@LDFLAGS@ @LT_LDFLAGS@ 9 | LIBTOOL=@LIBTOOL@ 10 | RPATH=`pwd`/lib 11 | 12 | all: uselib 13 | 14 | uselib: uselib.cc libmodule1.la libmodule2.la 15 | $(LIBTOOL) $(CXX) $(LDFLAGS) -o uselib $(srcdir)/uselib.cc libmodule1.la libmodule2.la 16 | 17 | libmodule1.la: module1.lo libmodule2.la 18 | $(LIBTOOL) $(CXX) $(LDFLAGS) -o libmodule1.la module1.lo -rpath ${RPATH} libmodule2.la 19 | mkdir -p lib bin 20 | $(LIBTOOL) cp libmodule1.la ${RPATH} 21 | 22 | libmodule2.la: module2.lo 23 | $(LIBTOOL) $(CXX) $(LDFLAGS) -o libmodule2.la module2.lo -rpath ${RPATH} 24 | mkdir -p lib bin 25 | $(LIBTOOL) cp libmodule2.la ${RPATH} 26 | 27 | %.lo: %.cc 28 | $(LIBTOOL) $(CXX) $(CXXFLAGS) -c $< 29 | 30 | include ${top_srcdir}/common-make-defs.txt 31 | 32 | clean: clean-common 33 | -------------------------------------------------------------------------------- /bochs-testing/plugin-test/test5-execsymbols/module1.cc: -------------------------------------------------------------------------------- 1 | #define MODULE1_DLL_EXPORT 2 | #include "module1.h" 3 | #include "module2.h" 4 | 5 | const char *module_name = "AddModule"; 6 | 7 | int operate (int a, int b) 8 | { 9 | operation_occurred (); 10 | return a + b; 11 | } 12 | -------------------------------------------------------------------------------- /bochs-testing/plugin-test/test5-execsymbols/module1.h: -------------------------------------------------------------------------------- 1 | #if defined(WIN32) || defined(__CYGWIN__) 2 | # ifdef MODULE1_DLL_EXPORT 3 | # ifdef DLL_EXPORT 4 | # warning I will export DLL symbols for MODULE1 5 | # define MODULE1API(type) __declspec(dllexport) type 6 | # endif 7 | # else 8 | # warning I will import DLL symbols for MODULE1 9 | # define MODULE1API(type) __declspec(dllimport) type 10 | # endif 11 | #endif 12 | #ifndef MODULE1API 13 | # warning No DLL import/export is needed 14 | # define MODULE1API(type) type 15 | #endif 16 | 17 | MODULE1API(extern const char *) module_name; 18 | MODULE1API(extern int) operate (int a, int b); 19 | 20 | -------------------------------------------------------------------------------- /bochs-testing/plugin-test/test5-execsymbols/module2.cc: -------------------------------------------------------------------------------- 1 | #include 2 | #define MODULE2_DLL_EXPORT 3 | #include "module2.h" 4 | #include "uselib.h" 5 | 6 | int n_operations = 0; 7 | 8 | void operation_occurred () { 9 | static int first_time = 1; 10 | if (first_time) { 11 | register_module ("module2"); 12 | first_time = 0; 13 | } 14 | printf ("module2: operation_occurred\n"); 15 | n_operations++; 16 | } 17 | -------------------------------------------------------------------------------- /bochs-testing/plugin-test/test5-execsymbols/module2.h: -------------------------------------------------------------------------------- 1 | #if defined(WIN32) || defined(__CYGWIN__) 2 | # ifdef MODULE2_DLL_EXPORT 3 | # ifdef DLL_EXPORT 4 | # warning I will export DLL symbols for MODULE2 5 | # define MODULE2API(type) __declspec(dllexport) type 6 | # endif 7 | # else 8 | # warning I will import DLL symbols for MODULE2 9 | # define MODULE2API(type) __declspec(dllimport) type 10 | # endif 11 | #endif 12 | #ifndef MODULE2API 13 | # warning No DLL import/export is needed 14 | # define MODULE2API(type) type 15 | #endif 16 | 17 | 18 | MODULE2API(extern int) n_operations; 19 | MODULE2API(void) operation_occurred (); 20 | -------------------------------------------------------------------------------- /bochs-testing/plugin-test/test5-execsymbols/uselib.cc: -------------------------------------------------------------------------------- 1 | #include 2 | #include 3 | #include "module1.h" 4 | #include "module2.h" 5 | #include "uselib.h" 6 | 7 | int register_module (const char *name) 8 | { 9 | printf ("register_module was called by module '%s'\n", name); 10 | return 0; 11 | } 12 | 13 | int main () 14 | { 15 | printf ("start\n"); 16 | printf ("at first, n_operations = %d\n", n_operations); 17 | printf ("Module name is '%s'\n", module_name); 18 | int a=5, b=12; 19 | int c = operate (a, b); 20 | printf ("operate(%d,%d) = %d\n", a, b, c); 21 | int d = operate (a, c); 22 | printf ("operate(%d,%d) = %d\n", a, c, d); 23 | printf ("stop\n"); 24 | printf ("at end, n_operations = %d\n", n_operations); 25 | exit(77); 26 | } 27 | -------------------------------------------------------------------------------- /bochs-testing/plugin-test/test5-execsymbols/uselib.h: -------------------------------------------------------------------------------- 1 | extern int register_module (const char *name); 2 | -------------------------------------------------------------------------------- /bochs-testing/plugin-test/test5-execsymbols/uselib.out.expected: -------------------------------------------------------------------------------- 1 | start 2 | at first, n_operations = 0 3 | Module name is 'AddModule' 4 | register_module was called by module 'module2' 5 | module2: operation_occurred 6 | operate(5,12) = 17 7 | module2: operation_occurred 8 | operate(5,17) = 22 9 | stop 10 | at end, n_operations = 2 11 | -------------------------------------------------------------------------------- /bochs-testing/plugin-test/test6-ltdlopen/main.h: -------------------------------------------------------------------------------- 1 | #if defined(WIN32) || defined(__CYGWIN__) 2 | # ifdef MAIN_DLL_EXPORT 3 | # ifdef DLL_EXPORT 4 | # warning I will export DLL symbols for MODULE1 5 | # define MAINAPI(type) __declspec(dllexport) type 6 | # endif 7 | # else 8 | # warning I will import DLL symbols for MODULE1 9 | # define MAINAPI(type) __declspec(dllimport) type 10 | # endif 11 | #endif 12 | #ifndef MAINAPI 13 | # warning No DLL import/export is needed 14 | # define MAINAPI(type) type 15 | #endif 16 | 17 | typedef void (*modload_func)(void); 18 | 19 | MAINAPI(extern const char *) version_string; 20 | MAINAPI(extern int) register_module (const char *name); 21 | -------------------------------------------------------------------------------- /bochs-testing/plugin-test/test6-ltdlopen/module1.cc: -------------------------------------------------------------------------------- 1 | #include 2 | #include "main.h" 3 | #define _buildsym(sym) module1_LTX_##sym 4 | #include "modules.h" 5 | 6 | void module_init () 7 | { 8 | printf ("module1 init for main version %s\n", version_string); 9 | register_module ("module1"); 10 | } 11 | 12 | int operate (int a, int b) 13 | { 14 | return a + b; 15 | } 16 | -------------------------------------------------------------------------------- /bochs-testing/plugin-test/test6-ltdlopen/module2.cc: -------------------------------------------------------------------------------- 1 | #include 2 | #include "main.h" 3 | #define _buildsym(sym) module2_LTX_##sym 4 | #include "modules.h" 5 | 6 | int n_operations = 0; 7 | 8 | void module_init () 9 | { 10 | printf ("module2 init for main version %s\n", version_string); 11 | register_module ("module2"); 12 | } 13 | 14 | int operate (int a, int b) 15 | { 16 | return a - b; 17 | } 18 | -------------------------------------------------------------------------------- /bochs-testing/plugin-test/test6-ltdlopen/modules.h: -------------------------------------------------------------------------------- 1 | // This file is included by each module to rename all of its symbols, in order 2 | // to avoid duplicate symbols in different modules. From the libtool docs: 3 | // "Although some platforms support having the same symbols defined more than 4 | // once it is generally not portable." 5 | 6 | #define module_init _buildsym(module_init) 7 | #define operate _buildsym(operate) 8 | 9 | // Declare function prototypes in an extern "C" block so that C++ will not 10 | // mangle their names (any more than we already have). 11 | extern "C" { 12 | void module_init(); 13 | int operate (int a, int b); 14 | }; 15 | 16 | // Since the renaming and extern "C" stuff declaration is done in the 17 | // header file, the actual code remains readable. 18 | -------------------------------------------------------------------------------- /bochs-testing/plugin-test/test6-ltdlopen/uselib.out.expected: -------------------------------------------------------------------------------- 1 | start 2 | loading module1 3 | loading module from VARIES{xxx} 4 | handle is VARIES{xxx} 5 | module_init function is at VARIES{xxx} 6 | Calling module_init 7 | module1 init for main version uselib-test6-1.0 8 | register_module was called by module 'module1' 9 | loading module from VARIES{xxx} 10 | handle is VARIES{xxx} 11 | module_init function is at VARIES{xxx} 12 | Calling module_init 13 | module2 init for main version uselib-test6-1.0 14 | register_module was called by module 'module2' 15 | stop 16 | -------------------------------------------------------------------------------- /bochs-testing/plugin-test/test7-win32dll/Makefile.in: -------------------------------------------------------------------------------- 1 | top_builddir = .. 2 | top_srcdir = @srcdir@/.. 3 | srcdir = @srcdir@ 4 | VPATH = @srcdir@ 5 | 6 | CXX=@CXX@ 7 | CXXFLAGS=@CXXFLAGS@ @INCLTDL@ 8 | 9 | all: uselib module1.dll module2.dll 10 | 11 | uselib: main.cc main.h 12 | $(CXX) $(CXXFLAGS) -c -o main.o ${srcdir}/main.cc 13 | dlltool --export-all --output-def uselib.def main.o 14 | dlltool --dllname uselib.exe --def uselib.def --output-lib uselib.a 15 | dlltool --dllname uselib.exe --output-exp uselib.exp --def uselib.def 16 | $(CXX) $(CXXFLAGS) -o uselib uselib.exp main.o 17 | rm uselib.exp uselib.def 18 | 19 | module1.dll: module1.cc main.h 20 | $(CXX) $(CXXFLAGS) -shared -o module1.dll ${srcdir}/module1.cc uselib.a 21 | 22 | module2.dll: module2.cc main.h 23 | $(CXX) $(CXXFLAGS) -shared -o module2.dll ${srcdir}/module2.cc uselib.a 24 | 25 | %.o: %.cc 26 | $(CXX) $(CXXFLAGS) -c $< 27 | 28 | include ${top_srcdir}/common-make-defs.txt 29 | 30 | clean: clean-common 31 | -------------------------------------------------------------------------------- /bochs-testing/plugin-test/test7-win32dll/Makefile.vc: -------------------------------------------------------------------------------- 1 | all: 2 | $(CXX) /nologo /Tpmain.cc 3 | $(CXX) /nologo /LD /Tpmodule1.cc main.lib 4 | $(CXX) /nologo /LD /Tpmodule2.cc main.lib 5 | -------------------------------------------------------------------------------- /bochs-testing/plugin-test/test7-win32dll/main.h: -------------------------------------------------------------------------------- 1 | #if defined(WIN32) || defined(__CYGWIN__) 2 | # ifdef MAIN_DLL_EXPORT 3 | # ifdef DLL_EXPORT 4 | # warning I will export DLL symbols for MAIN 5 | # define MAINAPI __declspec(dllexport) 6 | # endif 7 | # else 8 | # warning I will import DLL symbols from MAIN 9 | # define MAINAPI __declspec(dllimport) 10 | # endif 11 | #endif 12 | #ifndef MAINAPI 13 | # define MAINAPI 14 | #endif 15 | 16 | typedef void (*modload_func)(void); 17 | 18 | MAINAPI extern const char * version_string; 19 | MAINAPI extern int register_module (const char *name); 20 | 21 | extern "C" { 22 | // this prevents C++ name mangling 23 | void module_init (); 24 | }; 25 | -------------------------------------------------------------------------------- /bochs-testing/plugin-test/test7-win32dll/module1.cc: -------------------------------------------------------------------------------- 1 | #include 2 | #include "main.h" 3 | 4 | void module_init () 5 | { 6 | printf ("module1 init for main version %s\n", version_string); 7 | register_module ("module1"); 8 | } 9 | 10 | int operate (int a, int b) 11 | { 12 | return a + b; 13 | } 14 | -------------------------------------------------------------------------------- /bochs-testing/plugin-test/test7-win32dll/module2.cc: -------------------------------------------------------------------------------- 1 | #include 2 | #include "main.h" 3 | 4 | int n_operations = 0; 5 | 6 | void module_init () 7 | { 8 | printf ("module2 init for main version %s\n", version_string); 9 | register_module ("module2"); 10 | } 11 | 12 | int operate (int a, int b) 13 | { 14 | return a - b; 15 | } 16 | -------------------------------------------------------------------------------- /bochs-testing/plugin-test/test7-win32dll/uselib.out.expected: -------------------------------------------------------------------------------- 1 | start 2 | loading module1 3 | loading module from VARIES{xxx} 4 | handle is VARIES{xxx} 5 | module_init function is at VARIES{xxx} 6 | Calling module_init 7 | module1 init for main version uselib-test6-1.0 8 | register_module was called by module 'module1' 9 | loading module from VARIES{xxx} 10 | handle is VARIES{xxx} 11 | module_init function is at VARIES{xxx} 12 | Calling module_init 13 | module2 init for main version uselib-test6-1.0 14 | register_module was called by module 'module2' 15 | stop 16 | -------------------------------------------------------------------------------- /bochs-testing/plugin-test/test8-execlass/README: -------------------------------------------------------------------------------- 1 | test8-execlass 2 | 3 | Try to put a class definition in the main executable, and have the 4 | modules call it. 5 | -------------------------------------------------------------------------------- /bochs-testing/plugin-test/test8-execlass/main.h: -------------------------------------------------------------------------------- 1 | #if defined(WIN32) || defined(__CYGWIN__) 2 | # ifdef MAIN_DLL_EXPORT 3 | # ifdef DLL_EXPORT 4 | # warning I will export DLL symbols for MODULE1 5 | # define MAINAPI __declspec(dllexport) 6 | # endif 7 | # else 8 | # warning I will import DLL symbols for MODULE1 9 | # define MAINAPI __declspec(dllimport) 10 | # endif 11 | #endif 12 | #ifndef MAINAPI 13 | # warning No DLL import/export is needed 14 | # define MAINAPI 15 | #endif 16 | 17 | typedef void (*modload_func)(void); 18 | 19 | MAINAPI extern const char * version_string; 20 | MAINAPI extern int register_module (const char *name); 21 | 22 | // really, this should only be included in the modules. It would be 23 | // incorrect to call module_init from main, even if the compiler allowed 24 | // you to. 25 | extern "C" { 26 | // this prevents C++ name mangling 27 | void module_init (); 28 | }; 29 | 30 | class MAINAPI Widget { 31 | int id; 32 | const char *name; 33 | float weight; 34 | public: 35 | Widget(int id, const char* name, float weight); 36 | int getId (); 37 | const char* getName (); 38 | float getWeight (); 39 | void print (FILE*); 40 | }; 41 | 42 | #define MAX_WIDGETS 10 43 | MAINAPI extern Widget* widgets[MAX_WIDGETS]; 44 | -------------------------------------------------------------------------------- /bochs-testing/plugin-test/test8-execlass/module1.cc: -------------------------------------------------------------------------------- 1 | #include 2 | #include "main.h" 3 | #define _buildsym(sym) module1_LTX_##sym 4 | #include "modules.h" 5 | 6 | void module_init () 7 | { 8 | printf ("module1 init for main version %s\n", version_string); 9 | register_module ("module1"); 10 | if (widgets[2] != NULL) { 11 | printf ("module1 is examining widgets[2]\n"); 12 | printf ("module1: widgets[2] name is '%s'\n", widgets[2]->getName ()); 13 | } 14 | printf ("module1 will print every widget that it can find\n"); 15 | for (int i=0; iprint (stdout); 19 | printf ("\n"); 20 | } 21 | } 22 | } 23 | 24 | int operate (int a, int b) 25 | { 26 | return a + b; 27 | } 28 | -------------------------------------------------------------------------------- /bochs-testing/plugin-test/test8-execlass/module2.cc: -------------------------------------------------------------------------------- 1 | #include 2 | #include "main.h" 3 | #define _buildsym(sym) module2_LTX_##sym 4 | #include "modules.h" 5 | 6 | int n_operations = 0; 7 | 8 | void module_init () 9 | { 10 | printf ("module2 init for main version %s\n", version_string); 11 | register_module ("module2"); 12 | } 13 | 14 | int operate (int a, int b) 15 | { 16 | return a - b; 17 | } 18 | -------------------------------------------------------------------------------- /bochs-testing/plugin-test/test8-execlass/modules.h: -------------------------------------------------------------------------------- 1 | // This file is included by each module to rename all of its symbols, in order 2 | // to avoid duplicate symbols in different modules. From the libtool docs: 3 | // "Although some platforms support having the same symbols defined more than 4 | // once it is generally not portable." 5 | 6 | #define module_init _buildsym(module_init) 7 | #define operate _buildsym(operate) 8 | 9 | // Declare function prototypes in an extern "C" block so that C++ will not 10 | // mangle their names (any more than we already have). 11 | extern "C" { 12 | void module_init(); 13 | int operate (int a, int b); 14 | }; 15 | 16 | // Since the renaming and extern "C" stuff declaration is done in the 17 | // header file, the actual code remains readable. 18 | -------------------------------------------------------------------------------- /bochs-testing/plugin-test/test8-execlass/uselib.out.expected: -------------------------------------------------------------------------------- 1 | start 2 | loading module1 3 | loading module from VARIES{xxx} 4 | handle is VARIES{xxx} 5 | module_init function is at VARIES{xxx} 6 | Calling module_init 7 | module1 init for main version uselib-test6-1.0 8 | register_module was called by module 'module1' 9 | module1 is examining widgets[2] 10 | module1: widgets[2] name is 'Mikhail' 11 | module1 will print every widget that it can find 12 | module1: widgets[0] is [Widget id=1, name='Fred', weight=1.0100] 13 | module1: widgets[1] is [Widget id=2, name='Erma', weight=0.7600] 14 | module1: widgets[2] is [Widget id=3, name='Mikhail', weight=2.2500] 15 | loading module from VARIES{xxx} 16 | handle is VARIES{xxx} 17 | module_init function is at VARIES{xxx} 18 | Calling module_init 19 | module2 init for main version uselib-test6-1.0 20 | register_module was called by module 'module2' 21 | stop 22 | -------------------------------------------------------------------------------- /bochs-testing/plugin-test/test9-modclass/README: -------------------------------------------------------------------------------- 1 | test9-modclass 2 | 3 | Try to put a class definition in a module, and call it from the 4 | executable. The definition of ModuleGadget is ONLY defined in 5 | module1, and no class is defined in module2. I was just trying 6 | to keep it simple, and take one step at a time. 7 | -------------------------------------------------------------------------------- /bochs-testing/plugin-test/test9-modclass/main.h: -------------------------------------------------------------------------------- 1 | #if defined(WIN32) || defined(__CYGWIN__) 2 | # ifdef MAIN_DLL_EXPORT 3 | # ifdef DLL_EXPORT 4 | # warning I will export DLL symbols for MODULE1 5 | # define MAINAPI(type) __declspec(dllexport) type 6 | # endif 7 | # else 8 | # warning I will import DLL symbols for MODULE1 9 | # define MAINAPI(type) __declspec(dllimport) type 10 | # endif 11 | #endif 12 | #ifndef MAINAPI 13 | # warning No DLL import/export is needed 14 | # define MAINAPI(type) type 15 | #endif 16 | 17 | MAINAPI(extern const char *) version_string; 18 | MAINAPI(extern int) register_module (const char *name); 19 | -------------------------------------------------------------------------------- /bochs-testing/plugin-test/test9-modclass/module1.cc: -------------------------------------------------------------------------------- 1 | #include 2 | #include "main.h" 3 | #define _buildsym(sym) module1_LTX_##sym 4 | #include "modules.h" 5 | 6 | class ModuleGadget* module_init () 7 | { 8 | printf ("module1 init for main version %s\n", version_string); 9 | register_module ("module1"); 10 | return new ModuleGadget ("FancyCellPhone", "Caller ID, Video Conferencing"); 11 | } 12 | 13 | int operate (int a, int b) 14 | { 15 | return a + b; 16 | } 17 | 18 | //////// ModuleGadget class methods 19 | ModuleGadget::ModuleGadget(const char* name, const char* features) 20 | { 21 | this->name = name; 22 | this->features = features; 23 | } 24 | 25 | const char* ModuleGadget::getName () 26 | { 27 | return name; 28 | } 29 | 30 | const char* ModuleGadget::getFeatures () 31 | { 32 | return features; 33 | } 34 | -------------------------------------------------------------------------------- /bochs-testing/plugin-test/test9-modclass/module2.cc: -------------------------------------------------------------------------------- 1 | #include 2 | #include "main.h" 3 | #define _buildsym(sym) module2_LTX_##sym 4 | #include "modules.h" 5 | 6 | int n_operations = 0; 7 | 8 | class ModuleGadget* module_init () 9 | { 10 | printf ("module2 init for main version %s\n", version_string); 11 | register_module ("module2"); 12 | return NULL; 13 | } 14 | 15 | int operate (int a, int b) 16 | { 17 | return a - b; 18 | } 19 | -------------------------------------------------------------------------------- /bochs-testing/plugin-test/test9-modclass/modules.h: -------------------------------------------------------------------------------- 1 | #ifdef _buildsym 2 | // This section is included by each module to rename all of its symbols, 3 | // in order to avoid duplicate symbols in different modules. From the 4 | // libtool docs: "Although some platforms support having the same symbols 5 | // defined more than once it is generally not portable." 6 | 7 | #define module_init _buildsym(module_init) 8 | #define operate _buildsym(operate) 9 | extern "C" { 10 | // the extern "C" prevents C++ name mangling 11 | class ModuleGadget * module_init (); 12 | int operate (int a, int b); 13 | }; 14 | #endif 15 | 16 | typedef class ModuleGadget* (*modload_func)(void); 17 | 18 | class ModuleGadget { 19 | int id; 20 | const char *name; 21 | const char *features; 22 | public: 23 | ModuleGadget(const char* name, const char* features); 24 | virtual const char* getName (); 25 | virtual const char* getFeatures (); 26 | }; 27 | 28 | -------------------------------------------------------------------------------- /bochs-testing/plugin-test/test9-modclass/uselib.out.expected: -------------------------------------------------------------------------------- 1 | start 2 | loading module1 3 | loading module from VARIES{xxx} 4 | handle is VARIES{xxx} 5 | module_init function is at VARIES{xxx} 6 | Calling module_init 7 | module1 init for main version uselib-test6-1.0 8 | register_module was called by module 'module1' 9 | module1's gadget is called 'FancyCellPhone' 10 | module1 can do 'Caller ID, Video Conferencing' 11 | loading module from VARIES{xxx} 12 | handle is VARIES{xxx} 13 | module_init function is at VARIES{xxx} 14 | Calling module_init 15 | module2 init for main version uselib-test6-1.0 16 | register_module was called by module 'module2' 17 | module2 has not defined any gadget 18 | stop 19 | -------------------------------------------------------------------------------- /bochs-testing/plugin-test/testscript.in: -------------------------------------------------------------------------------- 1 | #!/bin/sh 2 | 3 | top_builddir="." 4 | top_srcdir="@srcdir@" 5 | top_srcdir=`cd $top_srcdir; pwd` # make top_srcdir an absolute path 6 | srcdir="@srcdir@" 7 | subdirs=`grep 'SUBDIRS *=' Makefile|sed 's/.*=//'` 8 | topdir=`pwd` 9 | retval_success=77 10 | 11 | for dir in $subdirs; do 12 | echo Testing in $dir 13 | test_status=1 14 | if test ! -x "$dir/uselib"; then 15 | test_status='binary not found' 16 | fi 17 | if test "$test_status" = 1; then 18 | cd $dir 19 | rm -f uselib.out 20 | ./uselib > uselib.out 21 | retval=$? 22 | if test "$retval" != $retval_success; then 23 | test_status="failed with exit code $retval" 24 | else 25 | reference=$top_srcdir/$dir/uselib.out.expected 26 | #echo NOTE: the reference file is $reference 27 | if test -f $reference; then 28 | cat uselib.out | 29 | $top_srcdir/filter-test-output | 30 | diff $reference - > uselib.out.diffs 2>/dev/null 31 | if test $? != 0; then 32 | test_status="output mismatch, see $dir/uselib.out.diffs" 33 | else 34 | rm -f uselib.out.diffs 35 | fi 36 | else 37 | test_status="reference file not found: $reference" 38 | fi 39 | fi 40 | fi 41 | cd $topdir 42 | if test "$test_status" = 1; then 43 | echo ...ok 44 | else 45 | echo ...FAIL: $test_status 46 | fi 47 | done 48 | -------------------------------------------------------------------------------- /bochs/.conf.amigaos: -------------------------------------------------------------------------------- 1 | #!/bin/sh 2 | # 3 | # These options should work on Amiga/MorphOS 4 | # 5 | 6 | ./configure --with-amigaos --disable-shared ${CONFIGURE_ARGS} 7 | -------------------------------------------------------------------------------- /bochs/.conf.everything: -------------------------------------------------------------------------------- 1 | # This script tries to turn on nearly every configure option. 2 | # It is useful for finding compile problems, but it may turn on 3 | # more things than you actually want. 4 | 5 | ./configure \ 6 | --enable-smp \ 7 | --enable-x86-64 \ 8 | --enable-all-optimizations \ 9 | --enable-long-phy-address \ 10 | --enable-configurable-msrs \ 11 | --enable-debugger \ 12 | --enable-disasm \ 13 | --enable-debugger-gui \ 14 | --enable-fpu \ 15 | --enable-alignment-check \ 16 | --enable-3dnow \ 17 | --enable-monitor-mwait \ 18 | --enable-protection-keys \ 19 | --enable-svm \ 20 | --enable-vmx=2 \ 21 | --enable-avx \ 22 | --enable-evex \ 23 | --enable-perfmon \ 24 | --enable-memtype \ 25 | --enable-x86-debugger \ 26 | --enable-a20-pin \ 27 | --enable-instrumentation=instrument/example1 \ 28 | --enable-ne2000 \ 29 | --enable-e1000 \ 30 | --enable-pci \ 31 | --enable-clgd54xx \ 32 | --enable-voodoo \ 33 | --enable-usb \ 34 | --enable-usb-ohci \ 35 | --enable-usb-ehci \ 36 | --enable-usb-xhci \ 37 | --enable-cdrom \ 38 | --enable-sb16 \ 39 | --enable-es1370 \ 40 | --enable-gameport \ 41 | --enable-busmouse \ 42 | --enable-iodebug \ 43 | --enable-large-ramfile \ 44 | --enable-show-ips \ 45 | --with-all-libs 46 | -------------------------------------------------------------------------------- /bochs/.conf.macos: -------------------------------------------------------------------------------- 1 | #!/bin/sh 2 | 3 | # This script will run configure for a Macintosh/CodeWarrior Pro 4 | # environment. I actually run this on my Linux machine, but 5 | # the generated files are for a Mac. 6 | 7 | set echo 8 | 9 | # These really just make ./configure happy on your Unix machine. 10 | # They are not the options used on your Mac. 11 | CC="gcc" 12 | CFLAGS="" 13 | CXX="$CC" 14 | CXXFLAGS="$CFLAGS" 15 | 16 | export CC 17 | export CXX 18 | export CFLAGS 19 | export CXXFLAGS 20 | 21 | ./configure --target=ppc-macos \ 22 | --enable-sb16 \ 23 | --enable-all-optimizations \ 24 | --enable-cpu-level=6 \ 25 | --enable-x86-64 \ 26 | --enable-vmx=2 \ 27 | --enable-pci \ 28 | --enable-clgd54xx \ 29 | --enable-voodoo \ 30 | --enable-usb \ 31 | --enable-usb-ohci \ 32 | --enable-usb-ehci \ 33 | --enable-usb-xhci \ 34 | --enable-busmouse \ 35 | --enable-es1370 \ 36 | --enable-e1000 \ 37 | --enable-plugins \ 38 | --with-macos \ 39 | ${CONFIGURE_ARGS} 40 | 41 | unset echo 42 | -------------------------------------------------------------------------------- /bochs/.conf.macosx: -------------------------------------------------------------------------------- 1 | #!/bin/sh 2 | 3 | # this sets up the compile for MacOS X 4 | # 5 | # To support plugins on macosx, you must have "dlcompat" installed. You can 6 | # get dlcompat by installing the fink package "dlcompat-devel". On the SF 7 | # compile farm, dlcompat is in /sw/include and /sw/lib, so we have added 8 | # those paths to the environment variables. 9 | 10 | set echo 11 | CFLAGS="-pipe -O3 -I/sw/include -fomit-frame-pointer -finline-functions -falign-loops=16 -falign-jumps=16 -falign-functions=16 -falign-labels=16 -falign-loops-max-skip=15 -falign-jumps-max-skip=15 -fprefetch-loop-arrays $CFLAGS" 12 | CPATH="/sw/include" 13 | CPPFLAGS="" 14 | CXXFLAGS="$CFLAGS" 15 | LDFLAGS="-L/sw/lib" 16 | 17 | export CFLAGS 18 | export CPATH 19 | export CPPFLAGS 20 | export CXXFLAGS 21 | export LDFLAGS 22 | 23 | ./configure --enable-sb16 \ 24 | --enable-ne2000 \ 25 | --enable-all-optimizations \ 26 | --enable-cpu-level=6 \ 27 | --enable-x86-64 \ 28 | --enable-vmx=2 \ 29 | --enable-pci \ 30 | --enable-clgd54xx \ 31 | --enable-voodoo \ 32 | --enable-usb \ 33 | --enable-usb-ohci \ 34 | --enable-usb-ehci \ 35 | --enable-usb-xhci \ 36 | --enable-busmouse \ 37 | --enable-es1370 \ 38 | --enable-e1000 \ 39 | --enable-plugins \ 40 | ${CONFIGURE_ARGS} 41 | -------------------------------------------------------------------------------- /bochs/.conf.nothing: -------------------------------------------------------------------------------- 1 | #!/bin/sh 2 | # 3 | # These are the steps I typically use to configure and compile Bochs 4 | # on a Win32 system with cygwin (v.20.1) 5 | # 6 | 7 | CC="gcc" 8 | CXX="g++" 9 | CFLAGS="-O3 -Wall -Wno-format" 10 | CXXFLAGS="$CFLAGS" 11 | 12 | export CC 13 | export CXX 14 | export CFLAGS 15 | export CXXFLAGS 16 | 17 | ./configure --enable-cpu-level=3 \ 18 | --disable-fpu \ 19 | --disable-pci \ 20 | --with-nogui 21 | -------------------------------------------------------------------------------- /bochs/.conf.sparc: -------------------------------------------------------------------------------- 1 | #!/bin/sh 2 | 3 | # 4 | # These are the steps I typically use to configure and compile Bochs. 5 | # 6 | 7 | # superSPARC w/ Solaris 2.x 8 | set echo 9 | CC="gcc" 10 | CXX="g++" 11 | #CFLAGS="-Wall -O2 -mv8 -msupersparc -mno-epilogue" 12 | CFLAGS="-Wall -O2 -mv8 -msupersparc" 13 | #CFLAGS="-Wall -O2 -g" 14 | CXXFLAGS="$CFLAGS" 15 | 16 | 17 | export CC 18 | export CXX 19 | export CFLAGS 20 | export CXXFLAGS 21 | 22 | ./configure --enable-ne2000 \ 23 | --enable-all-optimizations \ 24 | --enable-cpu-level=6 \ 25 | --enable-x86-64 \ 26 | --enable-pci \ 27 | --enable-clgd54xx \ 28 | --enable-usb 29 | 30 | unset echo 31 | -------------------------------------------------------------------------------- /bochs/.conf.win32-cygwin: -------------------------------------------------------------------------------- 1 | #!/bin/sh 2 | # 3 | # These are the steps I typically use to configure and compile Bochs 4 | # on a Win32 system with Cygwin (v1.7.28) or MinGW/MSYS. 5 | # 6 | 7 | CC="gcc" 8 | CXX="g++" 9 | #CFLAGS="-O3 -Wall -Wno-format -mno-cygwin" # for GCC versions < 4.7 10 | CFLAGS="-O3 -Wall -Wno-format -mno-ms-bitfields" 11 | CXXFLAGS="$CFLAGS" 12 | 13 | export CC 14 | export CXX 15 | export CFLAGS 16 | export CXXFLAGS 17 | 18 | ./configure --enable-sb16 \ 19 | --enable-ne2000 \ 20 | --enable-all-optimizations \ 21 | --enable-cpu-level=6 \ 22 | --enable-x86-64 \ 23 | --enable-vmx=2 \ 24 | --enable-pci \ 25 | --enable-clgd54xx \ 26 | --enable-voodoo \ 27 | --enable-usb \ 28 | --enable-usb-ohci \ 29 | --enable-usb-ehci \ 30 | --enable-usb-xhci \ 31 | --enable-busmouse \ 32 | --enable-es1370 \ 33 | --enable-e1000 \ 34 | --enable-show-ips \ 35 | --with-win32 --with-rfb --with-nogui 36 | -------------------------------------------------------------------------------- /bochs/.conf.win32-vcpp: -------------------------------------------------------------------------------- 1 | #!/bin/sh 2 | 3 | set echo 4 | 5 | ./configure --target=pentium-windows \ 6 | --enable-sb16 \ 7 | --enable-ne2000 \ 8 | --enable-all-optimizations \ 9 | --enable-cpu-level=6 \ 10 | --enable-x86-64 \ 11 | --enable-vmx=2 \ 12 | --enable-pci \ 13 | --enable-clgd54xx \ 14 | --enable-voodoo \ 15 | --enable-usb \ 16 | --enable-usb-ohci \ 17 | --enable-usb-ehci \ 18 | --enable-usb-xhci \ 19 | --enable-busmouse \ 20 | --enable-es1370 \ 21 | --enable-e1000 \ 22 | --enable-show-ips \ 23 | --disable-readline \ 24 | --without-x \ 25 | --with-win32 --with-rfb --with-nogui 26 | 27 | unset echo 28 | 29 | # Fix up all makefiles so that nmake can handle them. 30 | for i in `find . -name Makefile`; do 31 | echo Removing curly brackets in $i for NMAKE. 32 | mv $i $i.tmp 33 | sed -e 's/{/(/g' -e 's/}/)/g' < $i.tmp > $i 34 | rm -f $i.tmp 35 | done 36 | -------------------------------------------------------------------------------- /bochs/CHANGES: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/gamozolabs/applepie/d261bda376b8046ef0d4664cd20c83e3dfc104a6/bochs/CHANGES -------------------------------------------------------------------------------- /bochs/LICENSE: -------------------------------------------------------------------------------- 1 | The following points clarify the Bochs license: 2 | 3 | 1) Bochs as a whole is released under the GNU Lesser General Public License 4 | 5 | 2) Parts of Bochs have specific licenses which are compatible with the 6 | GNU Lesser General Public License. Hence each source file contains its 7 | own licensing information. 8 | -------------------------------------------------------------------------------- /bochs/README.rfb: -------------------------------------------------------------------------------- 1 | The RFB server implementation is still lacking as of now, as a consequence 2 | you should force 8bit mode on the client to use it correctly, i.e. on Linux, 3 | use: "xvncviewer -bgr233 localhost" or similar. 4 | -------------------------------------------------------------------------------- /bochs/bios/BIOS-bochs-latest: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/gamozolabs/applepie/d261bda376b8046ef0d4664cd20c83e3dfc104a6/bochs/bios/BIOS-bochs-latest -------------------------------------------------------------------------------- /bochs/bios/BIOS-bochs-legacy: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/gamozolabs/applepie/d261bda376b8046ef0d4664cd20c83e3dfc104a6/bochs/bios/BIOS-bochs-legacy -------------------------------------------------------------------------------- /bochs/bios/SeaBIOS-README: -------------------------------------------------------------------------------- 1 | -------------------------------------------- 2 | | SeaBIOS (http://www.seabios.org/SeaBIOS) | 3 | -------------------------------------------- 4 | 5 | SeaBIOS is an open source implementation of a 16bit X86 BIOS. 6 | 7 | SeaBIOS can run in an emulator or it can run natively on X86 hardware with 8 | the use of coreboot (http://www.coreboot.org). 9 | 10 | SeaBIOS is the default BIOS for qemu and kvm. 11 | 12 | SeaBIOS may be distributed under the terms of the GNU LGPLv3 license. 13 | Both source code and binaries are available. 14 | 15 | 16 | -------------------------------------------- 17 | | coreboot (http://www.coreboot.org) | 18 | -------------------------------------------- 19 | 20 | coreboot is a Free Software project aimed at replacing the proprietary BIOS 21 | (firmware) found in most computers. coreboot performs a little bit of 22 | hardware initialization and then executes additional boot logic, called a 23 | payload. 24 | 25 | With the separation of hardware initialization and later boot logic, 26 | coreboot can scale from specialized applications that run directly from 27 | firmware, run operating systems in flash, load custom bootloaders, or 28 | implement firmware standards, like PC BIOS services or UEFI. This allows 29 | for systems to only include the features necessary in the target 30 | application, reducing the amount of code and flash space required. 31 | 32 | coreboot currently supports over 230 different mainboards. Check the 33 | Support page to see if your system is supported. 34 | 35 | coreboot was formerly known as LinuxBIOS. 36 | -------------------------------------------------------------------------------- /bochs/bios/VGABIOS-elpin-2.40: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/gamozolabs/applepie/d261bda376b8046ef0d4664cd20c83e3dfc104a6/bochs/bios/VGABIOS-elpin-2.40 -------------------------------------------------------------------------------- /bochs/bios/VGABIOS-elpin-LICENSE: -------------------------------------------------------------------------------- 1 | The VGA BIOS from Elpin Systems, Inc. (http://www.elpin.com/) 2 | is now permanently licensed for use with bochs, courtesy 3 | of MandrakeSoft, creators of the leading "Linux-Mandrake" 4 | distribution (http://www.linux-mandrake.com/). You may 5 | freely use/distribute it with bochs, as long as it is used 6 | in bochs for the intended use as a VGA BIOS. 7 | 8 | Please check out Elpin Systems. They make cool software games, 9 | educational software, and VGA development products. 10 | -------------------------------------------------------------------------------- /bochs/bios/VGABIOS-lgpl-latest: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/gamozolabs/applepie/d261bda376b8046ef0d4664cd20c83e3dfc104a6/bochs/bios/VGABIOS-lgpl-latest -------------------------------------------------------------------------------- /bochs/bios/VGABIOS-lgpl-latest-cirrus: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/gamozolabs/applepie/d261bda376b8046ef0d4664cd20c83e3dfc104a6/bochs/bios/VGABIOS-lgpl-latest-cirrus -------------------------------------------------------------------------------- /bochs/bios/VGABIOS-lgpl-latest-cirrus-debug: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/gamozolabs/applepie/d261bda376b8046ef0d4664cd20c83e3dfc104a6/bochs/bios/VGABIOS-lgpl-latest-cirrus-debug -------------------------------------------------------------------------------- /bochs/bios/VGABIOS-lgpl-latest-debug: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/gamozolabs/applepie/d261bda376b8046ef0d4664cd20c83e3dfc104a6/bochs/bios/VGABIOS-lgpl-latest-debug -------------------------------------------------------------------------------- /bochs/bios/bios.bin-1.7.5: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/gamozolabs/applepie/d261bda376b8046ef0d4664cd20c83e3dfc104a6/bochs/bios/bios.bin-1.7.5 -------------------------------------------------------------------------------- /bochs/bios/bios_usage: -------------------------------------------------------------------------------- 1 | #!/bin/csh -f 2 | gcc -E rombios.c | grep "^\.org" | sed -e 's/\.org //' | sed -e 's/ .*//' | sort >! temp.usage 3 | usage rombios.bin temp.usage 4 | /bin/rm temp.usage 5 | -------------------------------------------------------------------------------- /bochs/bios/makesym.perl: -------------------------------------------------------------------------------- 1 | #!/usr/bin/perl 2 | # 3 | # $Id: makesym.perl,v 1.3 2009-12-30 20:28:23 sshwarts Exp $ 4 | # 5 | # Read output file from as86 (e.g. rombios.txt) and write out a symbol 6 | # table suitable for the Bochs debugger. 7 | # 8 | 9 | use strict; 10 | use warnings; 11 | 12 | my $WHERE_BEFORE_SYM_TABLE = 0; 13 | my $WHERE_IN_SYM_TABLE = 1; 14 | my $WHERE_AFTER_SYM_TABLE = 2; 15 | 16 | my $where = $WHERE_BEFORE_SYM_TABLE; 17 | while () { 18 | chop; 19 | if ($where == $WHERE_BEFORE_SYM_TABLE && /^Symbols:/) { 20 | $where = $WHERE_IN_SYM_TABLE; 21 | } elsif ($where == $WHERE_IN_SYM_TABLE && /^$/) { 22 | $where = $WHERE_AFTER_SYM_TABLE; 23 | } 24 | if ($where == $WHERE_IN_SYM_TABLE) { 25 | my $name; 26 | my $junk; 27 | foreach my $f (split(/\s+/)) { 28 | if ($f =~ /^[[:xdigit:]]{4,}$/) { 29 | if (defined($name)) { 30 | print '000f', lc($f), ' ', $name, "\n"; 31 | undef($name); 32 | undef($junk); 33 | next; 34 | } 35 | } 36 | $name = $junk 37 | if (defined($junk)); 38 | $junk = $f; 39 | } 40 | } 41 | } 42 | 43 | exit(0); 44 | -------------------------------------------------------------------------------- /bochs/bios/rombios32.ld: -------------------------------------------------------------------------------- 1 | OUTPUT_FORMAT("elf32-i386", "elf32-i386", "elf32-i386") 2 | OUTPUT_ARCH(i386) 3 | ENTRY(_start); 4 | SECTIONS 5 | { 6 | . = 0x000e0000; 7 | .text : { *(.text) } 8 | .rodata : { *(.rodata*) } 9 | _end = . ; 10 | .data 0x700 : AT (_end) { __data_start = .; *(.data); __data_end = .;} 11 | .bss : { __bss_start = .; *(.bss) *(COMMON); __bss_end = .;} 12 | /DISCARD/ : { *(.stab) 13 | *(.stabstr) 14 | *(.comment) 15 | *(.eh_frame) 16 | *(.note) 17 | } 18 | } 19 | -------------------------------------------------------------------------------- /bochs/build/android/bochs/AndroidBuild.sh: -------------------------------------------------------------------------------- 1 | #!/bin/sh 2 | 3 | LOCAL_PATH=`dirname $0` 4 | LOCAL_PATH=`cd $LOCAL_PATH && pwd` 5 | 6 | export PATH=$LOCAL_PATH/..:$PATH # For our custom sdl-config 7 | 8 | if [ \! -f bochs/configure ] ; then 9 | sh -c "cd bochs && ./bootstrap.sh" 10 | fi 11 | 12 | mkdir -p bin-$1 13 | 14 | if [ \! -f bin-$1/Makefile ] ; then 15 | # env CLANG=1 16 | 17 | if [ "$1" = arm64-v8a ]; then 18 | env CFLAGS="-O2 -ffast-math" \ 19 | env LIBS="-lgnustl_static" \ 20 | ../setEnvironment-$1.sh sh -c "cd bin-$1 && ../bochs/configure \ 21 | --build=x86_64-unknown-linux-gnu --host=$2 --with-sdl \ 22 | --enable-cpu-level=6 --enable-x86-64 \ 23 | --enable-sb16 --enable-es1370 \ 24 | --enable-ne2000 --enable-e1000 \ 25 | --enable-clgd54xx --enable-voodoo \ 26 | --enable-all-optimizations \ 27 | --enable-usb --enable-usb-ohci \ 28 | --disable-gameport --disable-disasm --disable-docbook" || exit 1 29 | else 30 | env CFLAGS="-Ofast" \ 31 | env LIBS="-lgnustl_static" \ 32 | ../setEnvironment-$1.sh sh -c "cd bin-$1 && ../bochs/configure \ 33 | --build=x86_64-unknown-linux-gnu --host=$2 --with-sdl \ 34 | --enable-cpu-level=6 --enable-x86-64 \ 35 | --enable-sb16 --enable-es1370 \ 36 | --enable-ne2000 --enable-e1000 \ 37 | --enable-clgd54xx --enable-voodoo \ 38 | --enable-all-optimizations \ 39 | --enable-usb --enable-usb-ohci \ 40 | --disable-gameport --disable-disasm --disable-docbook" || exit 1 41 | fi 42 | fi 43 | 44 | 45 | # Fix a compilation error 46 | mkdir -p bin-$1/iodev/network/slirp 47 | mkdir -p bin-$1/cpu/decoder 48 | 49 | 50 | make -j4 -C bin-$1 && mv -f bin-$1/bochs libapplication-$1.so 51 | -------------------------------------------------------------------------------- /bochs/build/linux/README.linux-binary: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/gamozolabs/applepie/d261bda376b8046ef0d4664cd20c83e3dfc104a6/bochs/build/linux/README.linux-binary -------------------------------------------------------------------------------- /bochs/build/macos/CWPro3_project.sit: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/gamozolabs/applepie/d261bda376b8046ef0d4664cd20c83e3dfc104a6/bochs/build/macos/CWPro3_project.sit -------------------------------------------------------------------------------- /bochs/build/macos/bochsico.bmp: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/gamozolabs/applepie/d261bda376b8046ef0d4664cd20c83e3dfc104a6/bochs/build/macos/bochsico.bmp -------------------------------------------------------------------------------- /bochs/build/macos/macos_defines.h: -------------------------------------------------------------------------------- 1 | #define NO_ASSEMBLER 2 | #define USE_WITH_CPU_SIM 3 | #define PARANOID 4 | 5 | #define fileno(A) 0 6 | #ifdef __cplusplus 7 | #include 8 | inline long read(int fd, void *buf, std::size_t nbytes); 9 | long read(int fd, void *buf, std::size_t nbytes) {return read(fd, (char*)buf, nbytes);} 10 | inline long write(int fd, const void *buf, std::size_t nbytes); 11 | long write(int fd, const void *buf, std::size_t nbytes) {return write(fd, (const char*)buf, nbytes);} 12 | #endif 13 | -------------------------------------------------------------------------------- /bochs/build/macosx/Info.plist.in: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | CFBundleDevelopmentRegion 6 | English 7 | CFBundleExecutable 8 | bochs 9 | CFBundleGetInfoString 10 | @VERSION@ Carbon 11 | CFBundleIconFile 12 | bochs-icn 13 | CFBundleIdentifier 14 | net.sourceforge.bochs.bochs 15 | CFBundleInfoDictionaryVersion 16 | 6.0 17 | CFBundleName 18 | Bochs Carbon @VERSION@ 19 | CFBundlePackageType 20 | APPL 21 | CFBundleShortVersionString 22 | Bochs Carbon (@VERSION@) 23 | CFBundleSignature 24 | BOCHS 25 | CFBundleVersion 26 | @VERSION@ 27 | CSResourcesFileMapped 28 | 29 | 30 | 31 | -------------------------------------------------------------------------------- /bochs/build/macosx/README.macosx-binary: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/gamozolabs/applepie/d261bda376b8046ef0d4664cd20c83e3dfc104a6/bochs/build/macosx/README.macosx-binary -------------------------------------------------------------------------------- /bochs/build/macosx/bochs-icn.icns: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/gamozolabs/applepie/d261bda376b8046ef0d4664cd20c83e3dfc104a6/bochs/build/macosx/bochs-icn.icns -------------------------------------------------------------------------------- /bochs/build/macosx/bochs.r: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/gamozolabs/applepie/d261bda376b8046ef0d4664cd20c83e3dfc104a6/bochs/build/macosx/bochs.r -------------------------------------------------------------------------------- /bochs/build/macosx/pbdevelopment.plist: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | PBXProjectSourcePath 6 | /Users/bryce/bochs/bochs/bochs.pbproj 7 | 8 | 9 | -------------------------------------------------------------------------------- /bochs/build/macosx/script.data: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/gamozolabs/applepie/d261bda376b8046ef0d4664cd20c83e3dfc104a6/bochs/build/macosx/script.data -------------------------------------------------------------------------------- /bochs/build/macosx/script.r: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/gamozolabs/applepie/d261bda376b8046ef0d4664cd20c83e3dfc104a6/bochs/build/macosx/script.r -------------------------------------------------------------------------------- /bochs/build/makeall.sh: -------------------------------------------------------------------------------- 1 | #!/bin/bash 2 | 3 | for i in build-*; do 4 | echo "*** Starting make in $i ***" 5 | make -C $i 6 | echo "*** make done in $i ***" 7 | echo "" 8 | echo "" 9 | echo "" 10 | done 11 | -------------------------------------------------------------------------------- /bochs/build/redhat/NOTES: -------------------------------------------------------------------------------- 1 | Here's a useful usenet article that shows how to build a filelist 2 | instead of having to specify each one. 3 | ----------------------------------------------------------------- 4 | 5 | From: John Ross Hunt (bigboote@mediaone.net) 6 | Subject: RE: Newbie to build spec files 7 | Newsgroups: linux.redhat.rpm 8 | Date: 2000/07/27 9 | 10 | 11 | > So, is there a better way, in RPM 3, to populate %files? 12 | > Because I know 13 | > 'buildroot' and it has nothing to do with %files. 14 | 15 | I found this bit of code in a .spec file to build a %files list on the fly 16 | and have been using it ever since. I've always thought RPM should be able 17 | to provide a default %files list in the event one isn't present in the .spec 18 | file. 19 | 20 | -- 21 | John Ross Hunt 22 | bigboote@mediaone.net 23 | 24 | 25 | 26 | %define pkg_name foo 27 | 28 | %install 29 | rm -rf $RPM_BUILD_ROOT 30 | make install DESTDIR=$RPM_BUILD_ROOT 31 | 32 | cd $RPM_BUILD_ROOT 33 | find . -type d | sed '1,2d;s,^\.,\%attr(-\,root\,root) \%dir ,' > \ 34 | $RPM_BUILD_DIR/file.list.%{pkg_name} 35 | 36 | find . -type f | sed -e 's,^\.,\%attr(-\,root\,root) ,' \ 37 | -e '/\/etc\//s|^|%config|' >> \ 38 | $RPM_BUILD_DIR/file.list.%{pkg_name} 39 | 40 | find . -type l | sed 's,^\.,\%attr(-\,root\,root) ,' >> \ 41 | $RPM_BUILD_DIR/file.list.%{pkg_name} 42 | 43 | %clean 44 | rm -rf $RPM_BUILD_ROOT $RPM_BUILD_DIR/file.list.%{pkg_name} 45 | 46 | %files -f ../file.list.%{pkg_name} 47 | %doc README TODO example 48 | ----------------------------------------------------------------- 49 | -------------------------------------------------------------------------------- /bochs/build/win32/README.win32-binary: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/gamozolabs/applepie/d261bda376b8046ef0d4664cd20c83e3dfc104a6/bochs/build/win32/README.win32-binary -------------------------------------------------------------------------------- /bochs/build/win32/bochs.manifest: -------------------------------------------------------------------------------- 1 | 2 | 3 | 9 | Quartus 10 | 11 | 12 | 20 | 21 | 22 | 23 | -------------------------------------------------------------------------------- /bochs/build/win32/cc2cpp: -------------------------------------------------------------------------------- 1 | #!/bin/sh 2 | 3 | list=`find . -name '*.cc' | sed 's/\.cc$//'` 4 | for i in $list; do 5 | mv ${i}.cc ${i}.cpp 6 | done 7 | -------------------------------------------------------------------------------- /bochs/build/win32/cpp2cc: -------------------------------------------------------------------------------- 1 | #!/bin/sh 2 | 3 | list=`find . -name '*.cpp' | sed 's/\.cpp$//'` 4 | for i in $list; do 5 | mv ${i}.cpp ${i}.cc 6 | done 7 | -------------------------------------------------------------------------------- /bochs/build/win32/diffcc2cpp: -------------------------------------------------------------------------------- 1 | #!/bin/sh 2 | 3 | list=`find . -name '*.cpp' | sed 's/\.cpp$//'` 4 | for i in $list; do 5 | diff -u ${i}.cc ${i}.cpp 6 | done 7 | -------------------------------------------------------------------------------- /bochs/build/win32/nsis/Makefile.in: -------------------------------------------------------------------------------- 1 | # To build an NSIS installer, get NSIS version 2.44 or newer from 2 | # http://sourceforge.net/projects/nsis 3 | # Fix the MAKENSIS variable so that you have the correct path. 4 | # Unzip the windows binary release into a subdirectory of this 5 | # directory, for example "2.6.5". Make sure the VERSION 6 | # variable has the same name as the directory. 7 | # 8 | # Type make, and it should build an installer called Bochs-${VERSION}.exe 9 | 10 | # MAKENSIS='c:/Program Files/NSIS/makensis' 11 | MAKENSIS='/c/Program Files (x86)/NSIS/makensis' 12 | 13 | VERSION=@VERSION@ 14 | TARGET=Bochs-${VERSION}.exe 15 | DLXDIR=bochs-${VERSION}/dlxlinux 16 | 17 | all: ${TARGET} 18 | 19 | fixups:: 20 | if test -f ${DLXDIR}/bochsrc.txt; then mv ${DLXDIR}/bochsrc.txt ${DLXDIR}/bochsrc.bxrc; fi 21 | rm -f ${DLXDIR}/*.bat 22 | 23 | ${TARGET}: fixups bochs.nsi 24 | rm -rf ${TARGET} 25 | ${MAKENSIS} bochs.nsi 26 | test -f ${TARGET} 27 | ls -l ${TARGET} 28 | 29 | clean:: 30 | rm -rf ${TARGET} 31 | -------------------------------------------------------------------------------- /bochs/build/win32/nsis/bochs.ico: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/gamozolabs/applepie/d261bda376b8046ef0d4664cd20c83e3dfc104a6/bochs/build/win32/nsis/bochs.ico -------------------------------------------------------------------------------- /bochs/build/win32/nsis/lgban.ico: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/gamozolabs/applepie/d261bda376b8046ef0d4664cd20c83e3dfc104a6/bochs/build/win32/nsis/lgban.ico -------------------------------------------------------------------------------- /bochs/build/win32/nsis/logo.ico: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/gamozolabs/applepie/d261bda376b8046ef0d4664cd20c83e3dfc104a6/bochs/build/win32/nsis/logo.ico -------------------------------------------------------------------------------- /bochs/build/win32/nsis/penguin.ico: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/gamozolabs/applepie/d261bda376b8046ef0d4664cd20c83e3dfc104a6/bochs/build/win32/nsis/penguin.ico -------------------------------------------------------------------------------- /bochs/build/win32/nsis/unbochs.ico: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/gamozolabs/applepie/d261bda376b8046ef0d4664cd20c83e3dfc104a6/bochs/build/win32/nsis/unbochs.ico -------------------------------------------------------------------------------- /bochs/build/win32/vs2013ex-plugins-workspace.zip: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/gamozolabs/applepie/d261bda376b8046ef0d4664cd20c83e3dfc104a6/bochs/build/win32/vs2013ex-plugins-workspace.zip -------------------------------------------------------------------------------- /bochs/build/win32/vs2013ex-workspace.zip: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/gamozolabs/applepie/d261bda376b8046ef0d4664cd20c83e3dfc104a6/bochs/build/win32/vs2013ex-workspace.zip -------------------------------------------------------------------------------- /bochs/bx_debug/make-syscalls-linux.pl: -------------------------------------------------------------------------------- 1 | #!/usr/bin/perl 2 | # 3 | # tested with linux 2.2.14 4 | # reads , outputs syscalls-linux.h 5 | 6 | $date = `date`; 7 | print < syscalls-linux.h 17 | // 18 | EOF 19 | 20 | $max = 0; 21 | while () { 22 | $line = $_; 23 | next unless /#define __NR_[a-z]/; 24 | s/.*NR_//; 25 | undef $number; 26 | ($name, $number) = split (/[\s]+/); 27 | if ((length $number) < 1) { 28 | die "bad line: $line"; 29 | } 30 | if ($number > $max) { $max = $number; } 31 | print "DEF_SYSCALL($number, \"$name\")\n"; 32 | } 33 | 34 | print "#define N_SYSCALLS $max\n"; 35 | -------------------------------------------------------------------------------- /bochs/bxversion.h.in: -------------------------------------------------------------------------------- 1 | ///////////////////////////////////////////////////////////////////////// 2 | // This file is checked in as bxversion.h.in. The configure script 3 | // substitutes variables and creates bxversion.h. 4 | ///////////////////////////////////////////////////////////////////////// 5 | 6 | #define VER_STRING "@VER_STRING@" 7 | #define REL_STRING "@REL_STRING@" 8 | -------------------------------------------------------------------------------- /bochs/bxversion.rc.in: -------------------------------------------------------------------------------- 1 | 1 VERSIONINFO 2 | FILEVERSION @WIN_VER_STRING@ 3 | { 4 | BLOCK "StringFileInfo" 5 | { 6 | BLOCK "040904B0" 7 | { 8 | VALUE "FileDescription", "The cross platform IA-32 emulator" 9 | VALUE "FileVersion", "@VER_STRING@" 10 | VALUE "LegalCopyright", "Copyright \251 2001-2014 The Bochs Project" 11 | VALUE "ProductName", "Bochs" 12 | VALUE "ProductVersion", "@REL_STRING@" 13 | VALUE "OriginalFilename", "BOCHS.EXE" 14 | } 15 | } 16 | BLOCK "VarFileInfo" 17 | { 18 | VALUE "Translation", 1033, 1300 19 | } 20 | } 21 | -------------------------------------------------------------------------------- /bochs/cpu/cpudb/amd/amd_k6_2_chomper.txt: -------------------------------------------------------------------------------- 1 | ------[ Versions ]------ 2 | 3 | Program Version : EVEREST v4.60.1629 Beta 4 | BenchDLL Version: 2.4.257.0 5 | 6 | ------[ CPU Info ]------ 7 | 8 | CPU Type : AMD K6-2, 333 MHz 9 | CPU Alias : Chomper, K6 3D, 6k86 3D 10 | CPU Platform : Socket 7 11 | CPU Stepping : A 12 | Instruction Set : x86, MMX, 3DNow! 13 | CPUID Manufacturer : AuthenticAMD 14 | CPUID CPU Name : AMD-K6(tm) 3D processor 15 | CPUID Revision : 00000580h 16 | Platform ID : CBh (Socket 7) 17 | 18 | ------[ Logical CPU #0 ]------ 19 | 20 | allcpu: Valid 21 | 22 | CPUID 00000000: 00000001-68747541-444D4163-69746E65 23 | CPUID 00000001: 00000580-00000000-00000000-008001BF 24 | CPUID 80000000: 80000005-00000000-00000000-00000000 25 | CPUID 80000001: 00000680-00000000-00000000-808009BF 26 | CPUID 80000002: 2D444D41-7428364B-3320296D-72702044 27 | CPUID 80000003: 7365636F-00726F73-00000000-00000000 28 | CPUID 80000004: 00000000-00000000-00000000-00000000 29 | CPUID 80000005: 00000000-02800140-20020220-20020220 30 | CPUID 8FFFFFFF: 4778654E-72656E65-6F697461-444D416E 31 | 32 | ------[ MSR Registers ]------ 33 | -------------------------------------------------------------------------------- /bochs/cpu/cpudb/intel/p2_klamath.txt: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/gamozolabs/applepie/d261bda376b8046ef0d4664cd20c83e3dfc104a6/bochs/cpu/cpudb/intel/p2_klamath.txt -------------------------------------------------------------------------------- /bochs/cpu/cpudb/intel/pentium.txt: -------------------------------------------------------------------------------- 1 | ------[ Versions ]------ 2 | 3 | Program Version : EVEREST v5.30.1900 4 | BenchDLL Version: 2.4.273.0 5 | 6 | ------[ CPU Info ]------ 7 | 8 | CPU Type : Intel Pentium, 100 MHz 9 | CPU Alias : P54C 10 | CPU Stepping : C2 11 | Instruction Set : x86 12 | CPUID Manufacturer : GenuineIntel 13 | CPUID Revision : 00000525h 14 | Platform ID : FFh (Unknown) 15 | 16 | ------[ Logical CPU #0 ]------ 17 | 18 | allcpu: Valid 19 | 20 | CPUID 00000000: 00000001-756E6547-6C65746E-49656E69 21 | CPUID 00000001: 00000525-00000000-00000000-000001BF 22 | 23 | ------[ MSR Registers ]------ 24 | -------------------------------------------------------------------------------- /bochs/cpu/cpudb/intel/pentium_mmx.txt: -------------------------------------------------------------------------------- 1 | CPU-Z TXT Report 2 | ------------------------------------------------------------------------- 3 | 4 | Binaries 5 | ------------------------------------------------------------------------- 6 | 7 | CPU-Z version 1.53.1 8 | 9 | Processors 10 | ------------------------------------------------------------------------- 11 | 12 | Number of processors 1 13 | Number of threads 1 14 | 15 | APICs 16 | ------------------------------------------------------------------------- 17 | 18 | Processor 0 19 | -- Core 0 20 | -- Thread 0 0 21 | 22 | Processors Information 23 | ------------------------------------------------------------------------- 24 | 25 | Processor 1 ID = 0 26 | Number of cores 1 (max 1) 27 | Number of threads 1 (max 1) 28 | Name Intel Pentium MMX 29 | Codename P55 30 | Specification 31 | Package Socket 7 (321) 32 | CPUID 5.4.3 33 | Extended CPUID 5.4 34 | Core Stepping MXB1 35 | Technology 0.35 um 36 | Core Speed 167.1 MHz 37 | Instructions sets MMX 38 | L1 Data cache 16 KBytes, 4-way set associative, 32-byte line size 39 | L1 Instruction cache 16 KBytes, 4-way set associative, 32-byte line size 40 | FID/VID Control no 41 | 42 | 43 | 44 | Thread dumps 45 | ------------------------------------------------------------------------- 46 | 47 | CPU Thread 0 48 | APIC ID 0 49 | Topology Processor ID 0, Core ID 0, Thread ID 0 50 | Type 01000402h 51 | Max CPUID level 00000001h 52 | Cache descriptor Level 1, I, 16 KB, 1 thread(s) 53 | Cache descriptor Level 1, D, 16 KB, 1 thread(s) 54 | 55 | CPUID 56 | 0x00000000 0x00000001 0x756E6547 0x6C65746E 0x49656E69 57 | 0x00000001 0x00000543 0x00000000 0x00000000 0x008001BF 58 | -------------------------------------------------------------------------------- /bochs/cpu/decoder/ia_opcodes.h: -------------------------------------------------------------------------------- 1 | ///////////////////////////////////////////////////////////////////////// 2 | // $Id$ 3 | ///////////////////////////////////////////////////////////////////////// 4 | // 5 | // Copyright (c) 2017 Stanislav Shwartsman 6 | // Written by Stanislav Shwartsman [sshwarts at sourceforge net] 7 | // 8 | // This library is free software; you can redistribute it and/or 9 | // modify it under the terms of the GNU Lesser General Public 10 | // License as published by the Free Software Foundation; either 11 | // version 2 of the License, or (at your option) any later version. 12 | // 13 | // This library is distributed in the hope that it will be useful, 14 | // but WITHOUT ANY WARRANTY; without even the implied warranty of 15 | // MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU 16 | // Lesser General Public License for more details. 17 | // 18 | // You should have received a copy of the GNU Lesser General Public 19 | // License along with this library; if not, write to the Free Software 20 | // Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA B 02110-1301 USA 21 | // 22 | ///////////////////////////////////////////////////////////////////////// 23 | 24 | #ifndef BX_OPCODES_ENUM 25 | #define BX_OPCODES_ENUM 26 | 27 | enum { 28 | #define bx_define_opcode(a, b, c, d, s1, s2, s3, s4, e) a, 29 | #include "ia_opcodes.def" 30 | BX_IA_LAST 31 | }; 32 | #undef bx_define_opcode 33 | 34 | #endif 35 | -------------------------------------------------------------------------------- /bochs/cpu/fpu/tag_w.h: -------------------------------------------------------------------------------- 1 | ///////////////////////////////////////////////////////////////////////// 2 | // $Id$ 3 | ///////////////////////////////////////////////////////////////////////// 4 | // 5 | // Copyright (c) 2003-2015 Stanislav Shwartsman 6 | // Written by Stanislav Shwartsman [sshwarts at sourceforge net] 7 | // 8 | // This library is free software; you can redistribute it and/or 9 | // modify it under the terms of the GNU Lesser General Public 10 | // License as published by the Free Software Foundation; either 11 | // version 2 of the License, or (at your option) any later version. 12 | // 13 | // This library is distributed in the hope that it will be useful, 14 | // but WITHOUT ANY WARRANTY; without even the implied warranty of 15 | // MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU 16 | // Lesser General Public License for more details. 17 | // 18 | // You should have received a copy of the GNU Lesser General Public 19 | // License along with this library; if not, write to the Free Software 20 | // Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA 21 | // 22 | ///////////////////////////////////////////////////////////////////////// 23 | 24 | #ifndef _TAG_W_H 25 | #define _TAG_W_H 26 | 27 | /* Tag Word */ 28 | enum { 29 | FPU_Tag_Valid = 0x00, 30 | FPU_Tag_Zero = 0x01, 31 | FPU_Tag_Special = 0x02, 32 | FPU_Tag_Empty = 0x03 33 | }; 34 | 35 | #endif 36 | -------------------------------------------------------------------------------- /bochs/cpu/fpu/todo: -------------------------------------------------------------------------------- 1 | TODO: 2 | ---- 3 | 4 | Elliminate floa128 use, Intel uses only 67-bit precision calculations 5 | when float128 has at least 112-bit. Replacement of float128 with for 6 | example 96-bit precision number could significantly speed up 7 | calculations. 8 | -------------------------------------------------------------------------------- /bochs/cpu/vmx.h: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/gamozolabs/applepie/d261bda376b8046ef0d4664cd20c83e3dfc104a6/bochs/cpu/vmx.h -------------------------------------------------------------------------------- /bochs/doc/docbook/README: -------------------------------------------------------------------------------- 1 | This is the base directory for the DocBook documents for the Bochs project. 2 | It has been broken down into the following directories: 3 | 4 | user - The Bochs User Guide - describes how to setup and use Bochs 5 | 6 | development - The Bochs Development Guide - contains development information and 7 | how to contribute to the Bochs project 8 | 9 | documentation - The Bochs Documentation Guide - contains information on how to 10 | contribute to the documentation of the the Bochs project 11 | 12 | images - pictures that may be reused in any of the three books. They can 13 | be referenced using "../images/FILENAME". 14 | 15 | include - files to be included from other docbook files 16 | -------------------------------------------------------------------------------- /bochs/doc/docbook/fixtitles.pl: -------------------------------------------------------------------------------- 1 | #!/bin/sh 2 | exec perl -x $0 $*; echo "Could not exec perl!"; exit 1 3 | # The line above allows perl to be anywhere, as long as it's in your 4 | # PATH environment variable. 5 | 6 | #!perl 7 | # 8 | # fix-titles.pl 9 | # $Id$ 10 | # 11 | # The HTML stylesheet likes to print html has the ends of tags on a different 12 | # line, like this: 13 | # FreeBSD 18 | # 19 | # Glimpse, which is indexing our website, finds this very confusing and 20 | # it cannot pick out the title from this mess. This script takes a list 21 | # of HTML files on the command line and attempts to make the tag 22 | # look more normal so that glimpse can understand it. 23 | # 24 | # WARNING: This is a hack. It's made to work on docbook generated html, but 25 | # may do strange things on anything else. 26 | 27 | use strict; 28 | 29 | foreach my $file (@ARGV) { 30 | print "Fixing $file\n"; 31 | rename $file, "$file.orig"; 32 | open (IN, "$file.orig") || die "open $file.orig"; 33 | open (OUT, ">$file") || die "open $file for writing"; 34 | while (<IN>) { 35 | if (/^<HTML$/) { 36 | print OUT "<HTML>\n"; 37 | } elsif (/^><HEAD$/) { 38 | print OUT "<HEAD>\n"; 39 | } elsif (/^><TITLE$/) { 40 | print OUT "<TITLE>"; 41 | } elsif (/^>(.*)<\/TITLE$/) { 42 | print OUT "$1\n"; 43 | # next line has one extra >, so read it and remove it. 44 | $_ = ; 45 | s/^>//; 46 | print OUT; 47 | } else { 48 | print OUT; 49 | } 50 | } 51 | close IN; 52 | close OUT; 53 | unlink "$file.orig"; 54 | } 55 | -------------------------------------------------------------------------------- /bochs/doc/docbook/images/dlxlinux-in-linux.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/gamozolabs/applepie/d261bda376b8046ef0d4664cd20c83e3dfc104a6/bochs/doc/docbook/images/dlxlinux-in-linux.png -------------------------------------------------------------------------------- /bochs/doc/docbook/images/headerbar.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/gamozolabs/applepie/d261bda376b8046ef0d4664cd20c83e3dfc104a6/bochs/doc/docbook/images/headerbar.png -------------------------------------------------------------------------------- /bochs/doc/docbook/images/undercon.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/gamozolabs/applepie/d261bda376b8046ef0d4664cd20c83e3dfc104a6/bochs/doc/docbook/images/undercon.png -------------------------------------------------------------------------------- /bochs/doc/docbook/include/defs.sgm: -------------------------------------------------------------------------------- 1 | 10 | 11 | 19 | '> 20 | '> 21 | 22 | Bochs web site'> 23 | bochs.sourceforge.net'> 24 | bochs-developers mailing list'> 25 | $BOCHS'> 26 | Makefile'> 27 | 28 | 29 | DocBook: The Definitive Guide'> 30 | OASIS'> 31 | 32 | -------------------------------------------------------------------------------- /bochs/doc/docbook/index.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | Bochs Documentation 5 | 21 | 22 | 23 | 24 | 25 |

Bochs Documentation

26 |

27 | 28 | The documentation is divided into three parts: 29 |

34 | 35 | 43 | -------------------------------------------------------------------------------- /bochs/docs-html/00README: -------------------------------------------------------------------------------- 1 | In the past this folder contained the Bochs documentation. After converting 2 | everything to the docbook format, it can be used as a temporary storage for 3 | new stuff before adding it to the official docs. 4 | 5 | -Volker Ruppert 6 | -------------------------------------------------------------------------------- /bochs/docs-html/random.txt: -------------------------------------------------------------------------------- 1 | look at http://www.ao.net/help/software/lps/disktools/INDEX 2 | asbench.zip Benchmark for drives under a ASPI device driver 3 | ataid011.zip ATA Identification. Echos Identify Drive data 4 | atrt4mb.exe AT Regression test 5 | and most interesting of all: 6 | ext2tool.zip Mount and use Ext2 filesystems from DOS 7 | 8 | 9 | From: Gregg Eshelman 10 | Sounds good. :) Some Windows disk imaging apps 11 | are WinImage and SH (Schenk and Horne) Copy Star. 12 | 13 | -------------------------------------------------------------------------------- /bochs/extplugin.h: -------------------------------------------------------------------------------- 1 | ///////////////////////////////////////////////////////////////////////// 2 | // $Id$ 3 | ///////////////////////////////////////////////////////////////////////// 4 | // 5 | // Copyright (C) 2002-2017 The Bochs Project 6 | // 7 | // extplugin.h 8 | // 9 | // This header file defines the types necessary to make a Bochs plugin, 10 | // but without mentioning all the details of Bochs internals (bochs.h). 11 | // It is included by the configuration interfaces and possibly other 12 | // things which are intentionally isolated from other parts of the program. 13 | // 14 | // The original plugin_t struct comes from the plugin.h file from plex86. 15 | // Plex86 is Copyright (C) 1999-2000 The plex86 developers team 16 | // 17 | ///////////////////////////////////////////////////////////////////////// 18 | 19 | #ifndef __EXTPLUGIN_H 20 | #define __EXTPLUGIN_H 21 | 22 | #if BX_PLUGINS && !defined(WIN32) 23 | #if BX_HAVE_LTDL 24 | #include 25 | #else 26 | #include "ltdl-bochs.h" 27 | #endif 28 | #endif 29 | 30 | enum plugintype_t { 31 | PLUGTYPE_GUI=100, 32 | PLUGTYPE_CORE, 33 | PLUGTYPE_STANDARD, 34 | PLUGTYPE_OPTIONAL, 35 | PLUGTYPE_SOUND, 36 | PLUGTYPE_NETWORK, 37 | PLUGTYPE_USBDEV, 38 | PLUGTYPE_VGA, 39 | PLUGTYPE_USER 40 | }; 41 | 42 | typedef int (CDECL *plugin_init_t)(struct _plugin_t *plugin, plugintype_t type); 43 | typedef void (CDECL *plugin_fini_t)(void); 44 | 45 | typedef struct _plugin_t 46 | { 47 | plugintype_t type; 48 | int initialized; 49 | #if BX_PLUGINS 50 | #if defined(WIN32) 51 | HINSTANCE handle; 52 | #else 53 | lt_dlhandle handle; 54 | #endif 55 | #endif 56 | char *name; 57 | plugin_init_t plugin_init; 58 | plugin_fini_t plugin_fini; 59 | 60 | struct _plugin_t *next; 61 | } plugin_t; 62 | 63 | 64 | 65 | #endif /* __EXTPLUGIN_H */ 66 | -------------------------------------------------------------------------------- /bochs/gdbstub.cc: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/gamozolabs/applepie/d261bda376b8046ef0d4664cd20c83e3dfc104a6/bochs/gdbstub.cc -------------------------------------------------------------------------------- /bochs/gui/bitmaps/cdromd.xpm: -------------------------------------------------------------------------------- 1 | /* XPM */ 2 | static const char *cdromd_xpm[] = { 3 | /* width height num_colors chars_per_pixel */ 4 | " 32 32 2 1", 5 | /* colors */ 6 | ". c None", 7 | "# c #000000", 8 | /* pixels */ 9 | "................................", 10 | ".............##..###............", 11 | "............#....#..#...........", 12 | "............#....#..#...........", 13 | "............#....#..#...........", 14 | ".............##..###............", 15 | "................................", 16 | "............########............", 17 | "..........##........##..........", 18 | ".........#...######...#.........", 19 | "........#..##......##..#........", 20 | ".......#.##..######..##.#.......", 21 | "......#.#..##......##..#.#......", 22 | ".....#..#.#..######..#.#..#.....", 23 | ".....#.#.#..#......#..#.#.#.....", 24 | "....#..#.#.#..####..#.#.#..#....", 25 | "....#.#.#.#..#....#..#.#.#.#....", 26 | "....#.#.#.#.#......#.#.#.#.#....", 27 | "....#.#.#.#.#......#.#.#.#.#....", 28 | "....#.#.#.#.#......#.#.#.#.#....", 29 | "....#.#.#.#.#......#.#.#.#.#....", 30 | "....#.#.#.#..#....#..#.#.#.#....", 31 | "....#..#.#.#..####..#.#.#..#....", 32 | ".....#.#.#..#......#..#.#.#.....", 33 | ".....#..#.#..######..#.#..#.....", 34 | "......#.#..##......##..#.#......", 35 | ".......#.##..######..##.#.......", 36 | "........#..##......##..#........", 37 | ".........#...######...#.........", 38 | "..........##........##..........", 39 | "............########............", 40 | "................................" 41 | }; 42 | -------------------------------------------------------------------------------- /bochs/gui/bitmaps/configbutton.h: -------------------------------------------------------------------------------- 1 | #define BX_CONFIG_BMAP_X 32 2 | #define BX_CONFIG_BMAP_Y 32 3 | 4 | static const unsigned char bx_config_bmap[(BX_CONFIG_BMAP_X * BX_CONFIG_BMAP_Y)/8] = { 5 | 0x00, 0x00, 0x00, 0x00, 0x04, 0x00, 0x80, 0x01, 0xfc, 0x7f, 0xc0, 0x03, 6 | 0xfc, 0xff, 0xc1, 0x03, 0xfc, 0xff, 0xc1, 0x03, 0xfc, 0x7f, 0xc0, 0x03, 7 | 0x84, 0x07, 0xc0, 0x03, 0x80, 0x07, 0xc0, 0x03, 0x80, 0x07, 0xc0, 0x03, 8 | 0x80, 0x07, 0xc0, 0x03, 0x80, 0x07, 0xc0, 0x03, 0x80, 0x07, 0xc0, 0x03, 9 | 0x80, 0x07, 0xc0, 0x03, 0x80, 0x07, 0xc0, 0x03, 0x80, 0x07, 0xc0, 0x03, 10 | 0x80, 0x07, 0xc0, 0x03, 0x80, 0x07, 0xc0, 0x03, 0x80, 0x07, 0xc0, 0x03, 11 | 0x80, 0x07, 0xc0, 0x03, 0x80, 0x07, 0xe0, 0x07, 0x80, 0x07, 0xf0, 0x0f, 12 | 0x80, 0x07, 0x70, 0x0e, 0x80, 0x07, 0x30, 0x0c, 0x80, 0x07, 0x30, 0x0c, 13 | 0x80, 0x07, 0x20, 0x04, 0x00, 0x00, 0x00, 0x00, 0x38, 0x27, 0xba, 0x1c, 14 | 0x84, 0x68, 0x8a, 0x02, 0x84, 0xa8, 0xba, 0x32, 0x84, 0x28, 0x8b, 0x22, 15 | 0x38, 0x27, 0x8a, 0x1c, 0x00, 0x00, 0x00, 0x00 16 | }; 17 | -------------------------------------------------------------------------------- /bochs/gui/bitmaps/configbutton.xpm: -------------------------------------------------------------------------------- 1 | /* XPM */ 2 | static const char *configbutton_xpm[] = { 3 | /* width height num_colors chars_per_pixel */ 4 | " 32 32 2 1", 5 | /* colors */ 6 | ". c None", 7 | "# c #000000", 8 | /* pixels */ 9 | "................................", 10 | "..#....................##.......", 11 | "..#############.......####......", 12 | "..###############.....####......", 13 | "..###############.....####......", 14 | "..#############.......####......", 15 | "..#....####...........####......", 16 | ".......####...........####......", 17 | ".......####...........####......", 18 | ".......####...........####......", 19 | ".......####...........####......", 20 | ".......####...........####......", 21 | ".......####...........####......", 22 | ".......####...........####......", 23 | ".......####...........####......", 24 | ".......####...........####......", 25 | ".......####...........####......", 26 | ".......####...........####......", 27 | ".......####...........####......", 28 | ".......####..........######.....", 29 | ".......####.........########....", 30 | ".......####.........###..###....", 31 | ".......####.........##....##....", 32 | ".......####.........##....##....", 33 | ".......####..........#....#.....", 34 | "................................", 35 | "...###..###..#...#.###.#..###...", 36 | "..#....#...#.##..#.#...#.#......", 37 | "..#....#...#.#.#.#.###.#.#..##..", 38 | "..#....#...#.#..##.#...#.#...#..", 39 | "...###..###..#...#.#...#..###...", 40 | "................................" 41 | }; 42 | -------------------------------------------------------------------------------- /bochs/gui/bitmaps/copy.h: -------------------------------------------------------------------------------- 1 | ///////////////////////////////////////////////////////////////////////// 2 | // $Id$ 3 | ///////////////////////////////////////////////////////////////////////// 4 | 5 | #define BX_COPY_BMAP_X 32 6 | #define BX_COPY_BMAP_Y 32 7 | 8 | static unsigned char bx_copy_bmap[(BX_COPY_BMAP_X*BX_COPY_BMAP_Y)] = { 9 | 0x00, 0x00, 0x00, 0x00, 0x00, 0x0f, 0x00, 0x00, 0x80, 0x00, 0x00, 0x00, 10 | 0x80, 0x60, 0x4e, 0x02, 0x80, 0x90, 0x52, 0x02, 0x80, 0x90, 0x52, 0x02, 11 | 0x00, 0x6f, 0x8e, 0x03, 0x00, 0x00, 0x02, 0x02, 0xf8, 0x3f, 0x02, 0x02, 12 | 0x08, 0x20, 0xc0, 0x01, 0xe8, 0x2b, 0x00, 0x00, 0x08, 0x20, 0x00, 0x00, 13 | 0xe8, 0x2e, 0x00, 0x00, 0x08, 0x20, 0x00, 0x00, 0xe8, 0x39, 0x00, 0x00, 14 | 0x08, 0x24, 0x00, 0x00, 0x88, 0x20, 0x00, 0x00, 0xe8, 0xaf, 0xff, 0x03, 15 | 0x08, 0xa0, 0x00, 0x02, 0xf8, 0xbf, 0xbe, 0x02, 0x00, 0x80, 0x00, 0x02, 16 | 0x80, 0x88, 0xee, 0x02, 0x80, 0x90, 0x00, 0x02, 0x00, 0xbf, 0x9e, 0x03, 17 | 0x00, 0x90, 0x40, 0x02, 0x00, 0x88, 0x08, 0x02, 0x00, 0x80, 0xfe, 0x02, 18 | 0x00, 0x80, 0x00, 0x02, 0x00, 0x80, 0xff, 0x03, 0x00, 0x00, 0x00, 0x00, 19 | 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, }; 20 | -------------------------------------------------------------------------------- /bochs/gui/bitmaps/copy.xpm: -------------------------------------------------------------------------------- 1 | /* XPM */ 2 | static const char *copy_xpm[] = { 3 | /* width height num_colors chars_per_pixel */ 4 | " 32 32 2 1", 5 | /* colors */ 6 | ". c None", 7 | "# c #000000", 8 | /* pixels */ 9 | "................................", 10 | "........####....................", 11 | ".......#........................", 12 | ".......#.....##..###..#..#......", 13 | ".......#....#..#.#..#.#..#......", 14 | ".......#....#..#.#..#.#..#......", 15 | "........####.##..###...###......", 16 | ".................#.......#......", 17 | "...###########...#.......#......", 18 | "...#.........#........###.......", 19 | "...#.#####.#.#..................", 20 | "...#.........#..................", 21 | "...#.###.###.#..................", 22 | "...#.........#..................", 23 | "...#.####..###..................", 24 | "...#......#..#..................", 25 | "...#...#.....#..................", 26 | "...#.#######.#.###########......", 27 | "...#.........#.#.........#......", 28 | "...###########.#.#####.#.#......", 29 | "...............#.........#......", 30 | ".......#...#...#.###.###.#......", 31 | ".......#....#..#.........#......", 32 | "........######.#.####..###......", 33 | "............#..#......#..#......", 34 | "...........#...#...#.....#......", 35 | "...............#.#######.#......", 36 | "...............#.........#......", 37 | "...............###########......", 38 | "................................", 39 | "................................", 40 | "................................" 41 | }; 42 | -------------------------------------------------------------------------------- /bochs/gui/bitmaps/floppya.xpm: -------------------------------------------------------------------------------- 1 | /* XPM */ 2 | static const char *floppya_xpm[] = { 3 | /* width height num_colors chars_per_pixel */ 4 | " 32 32 2 1", 5 | /* colors */ 6 | ". c None", 7 | "# c #000000", 8 | /* pixels */ 9 | "...............#................", 10 | "..............#.#...............", 11 | "..............#.#...#...........", 12 | "..............###...............", 13 | ".............##.##..#...........", 14 | ".............##.##..............", 15 | "................................", 16 | ".....######################.....", 17 | ".....####..............####.....", 18 | ".....#..#.############.#..#.....", 19 | ".....#..#..............#..#.....", 20 | ".....####.############.####.....", 21 | ".....####..............####.....", 22 | ".....####.############.####.....", 23 | ".....####..............####.....", 24 | ".....####.############.####.....", 25 | ".....####..............####.....", 26 | ".....####.############.####.....", 27 | ".....####..............####.....", 28 | ".....####.############.####.....", 29 | ".....####..............####.....", 30 | ".....######################.....", 31 | ".....######################.....", 32 | ".....######################.....", 33 | ".....######################.....", 34 | ".....#######.#.#.#.#.######.....", 35 | ".....######.#####.#.#.#####.....", 36 | ".....#######.###.#.#.######.....", 37 | ".....######.#####.#.#.#####.....", 38 | "......######.###.#.#.######.....", 39 | ".......####.#.#.#.#.#.#####.....", 40 | "........####.#.#.#.#.######....." 41 | }; 42 | -------------------------------------------------------------------------------- /bochs/gui/bitmaps/floppyb.xpm: -------------------------------------------------------------------------------- 1 | /* XPM */ 2 | static const char *floppyb_xpm[] = { 3 | /* width height num_colors chars_per_pixel */ 4 | " 32 32 2 1", 5 | /* colors */ 6 | ". c None", 7 | "# c #000000", 8 | /* pixels */ 9 | ".............###................", 10 | ".............#..#...............", 11 | ".............###...#............", 12 | ".............#..#...............", 13 | ".............#..#..#............", 14 | ".............###................", 15 | "................................", 16 | ".....######################.....", 17 | ".....####..............####.....", 18 | ".....#..#.############.#..#.....", 19 | ".....#..#..............#..#.....", 20 | ".....####.############.####.....", 21 | ".....####..............####.....", 22 | ".....####.############.####.....", 23 | ".....####..............####.....", 24 | ".....####.############.####.....", 25 | ".....####..............####.....", 26 | ".....####.############.####.....", 27 | ".....####..............####.....", 28 | ".....####.############.####.....", 29 | ".....####..............####.....", 30 | ".....######################.....", 31 | ".....######################.....", 32 | ".....######################.....", 33 | ".....######################.....", 34 | ".....#######.#.#.#.#.######.....", 35 | ".....######.#####.#.#.#####.....", 36 | ".....#######.###.#.#.######.....", 37 | ".....######.#####.#.#.#####.....", 38 | "......######.###.#.#.######.....", 39 | ".......####.#.#.#.#.#.#####.....", 40 | "........####.#.#.#.#.######....." 41 | }; 42 | -------------------------------------------------------------------------------- /bochs/gui/bitmaps/mouse.xpm: -------------------------------------------------------------------------------- 1 | /* XPM */ 2 | static const char *mouse_xpm[] = { 3 | /* width height num_colors chars_per_pixel */ 4 | " 32 32 2 1", 5 | /* colors */ 6 | ". c None", 7 | "# c #000000", 8 | /* pixels */ 9 | "................................", 10 | ".............######.............", 11 | "...........##########...........", 12 | "..........##........##..........", 13 | ".........##..........##.........", 14 | ".........##...........#.........", 15 | "...#############......##........", 16 | "..##...........##.....##........", 17 | "..#..#...#...#..#.....##........", 18 | "..#.###.###.###.#......#........", 19 | "..#.###.###.###.#......##.......", 20 | "..#.###.###.###.#......##.......", 21 | "..#.###.###.###.#.......#.......", 22 | "..#.###.###.###.#.......##......", 23 | "..#.###.###.###.#........##.....", 24 | "..#..#...#...#..#.........##....", 25 | "..##...........##..........###..", 26 | "..#.............#...............", 27 | "..##...........##...............", 28 | "..#.............#...............", 29 | "..##...........##...............", 30 | "..#.............#...............", 31 | "..##...........##...............", 32 | "..#.............#...............", 33 | "..##...........##...............", 34 | "..#.#.........#.#...............", 35 | "..##.#.......#.##...............", 36 | "..#.#.#.#.#.#.#.#...............", 37 | "..##.#.#.#.#.#.##...............", 38 | "...#############................", 39 | "................................", 40 | "................................" 41 | }; 42 | -------------------------------------------------------------------------------- /bochs/gui/bitmaps/paste.h: -------------------------------------------------------------------------------- 1 | ///////////////////////////////////////////////////////////////////////// 2 | // $Id$ 3 | ///////////////////////////////////////////////////////////////////////// 4 | 5 | #define BX_PASTE_BMAP_X 32 6 | #define BX_PASTE_BMAP_Y 32 7 | 8 | static unsigned char bx_paste_bmap[(BX_PASTE_BMAP_X*BX_PASTE_BMAP_Y)] = { 9 | 0x00, 0x00, 0x00, 0x00, 0xe0, 0x01, 0x10, 0x00, 0x20, 0x9a, 0x93, 0x03, 10 | 0x20, 0x66, 0x78, 0x04, 0xe0, 0xa5, 0xd3, 0x07, 0x20, 0x24, 0x54, 0x00, 11 | 0x20, 0xd8, 0x93, 0x03, 0x00, 0x80, 0x01, 0x00, 0x00, 0xc0, 0x02, 0x00, 12 | 0x00, 0x7c, 0x3f, 0x00, 0xc0, 0x83, 0xc1, 0x03, 0x20, 0x02, 0x40, 0x04, 13 | 0x20, 0x01, 0x80, 0x04, 0x20, 0x01, 0x80, 0x04, 0xa0, 0xff, 0xff, 0x05, 14 | 0x20, 0x00, 0x00, 0x04, 0x20, 0x00, 0x00, 0x04, 0x20, 0xf8, 0x3f, 0x04, 15 | 0x20, 0x08, 0x20, 0x04, 0x20, 0xe8, 0x2b, 0x04, 0x20, 0x08, 0x20, 0x04, 16 | 0x20, 0xe8, 0x2e, 0x04, 0x20, 0x08, 0x20, 0x04, 0x20, 0xe8, 0x39, 0x04, 17 | 0x20, 0x08, 0x24, 0x04, 0x20, 0x88, 0x20, 0x04, 0x20, 0xe8, 0x2f, 0x04, 18 | 0x20, 0x08, 0x20, 0x04, 0x20, 0xf8, 0x3f, 0x04, 0x20, 0x00, 0x00, 0x04, 19 | 0xc0, 0xff, 0xff, 0x03, 0x00, 0x00, 0x00, 0x00, }; 20 | -------------------------------------------------------------------------------- /bochs/gui/bitmaps/paste.xpm: -------------------------------------------------------------------------------- 1 | /* XPM */ 2 | static const char *paste_xpm[] = { 3 | /* width height num_colors chars_per_pixel */ 4 | " 32 32 2 1", 5 | /* colors */ 6 | ". c None", 7 | "# c #000000", 8 | /* pixels */ 9 | "................................", 10 | ".....####...........#...........", 11 | ".....#...#.##..###..#..###......", 12 | ".....#...##..##....####...#.....", 13 | ".....####.#..#.###..#.#####.....", 14 | ".....#....#..#....#.#.#.........", 15 | ".....#.....##.####..#..###......", 16 | "...............##...............", 17 | "..............##.#..............", 18 | "..........#####.######..........", 19 | "......####.....##.....####......", 20 | ".....#...#............#...#.....", 21 | ".....#..#..............#..#.....", 22 | ".....#..#..............#..#.....", 23 | ".....#.##################.#.....", 24 | ".....#....................#.....", 25 | ".....#....................#.....", 26 | ".....#.....###########....#.....", 27 | ".....#.....#.........#....#.....", 28 | ".....#.....#.#####.#.#....#.....", 29 | ".....#.....#.........#....#.....", 30 | ".....#.....#.###.###.#....#.....", 31 | ".....#.....#.........#....#.....", 32 | ".....#.....#.####..###....#.....", 33 | ".....#.....#......#..#....#.....", 34 | ".....#.....#...#.....#....#.....", 35 | ".....#.....#.#######.#....#.....", 36 | ".....#.....#.........#....#.....", 37 | ".....#.....###########....#.....", 38 | ".....#....................#.....", 39 | "......####################......", 40 | "................................" 41 | }; 42 | -------------------------------------------------------------------------------- /bochs/gui/bitmaps/power.h: -------------------------------------------------------------------------------- 1 | ///////////////////////////////////////////////////////////////////////// 2 | // $Id$ 3 | ///////////////////////////////////////////////////////////////////////// 4 | 5 | #define BX_POWER_BMAP_X 32 6 | #define BX_POWER_BMAP_Y 32 7 | 8 | static const unsigned char bx_power_bmap[(BX_POWER_BMAP_X * BX_POWER_BMAP_Y)/8] = { 9 | 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x1e, 0x00, 0x00, 0x00, 10 | 0x24, 0x67, 0x66, 0x34, 0xa4, 0x28, 0x92, 0x48, 0x9a, 0xa8, 0xfa, 0x04, 11 | 0x82, 0x64, 0x09, 0x04, 0x07, 0xa3, 0x70, 0x0e, 0x00, 0x00, 0x00, 0x00, 12 | 0x00, 0xf8, 0x03, 0x00, 0x00, 0xfe, 0x0f, 0x00, 0x00, 0x0f, 0x1e, 0x00, 13 | 0x80, 0x03, 0x38, 0x00, 0xc0, 0x00, 0x60, 0x00, 0xe0, 0xe0, 0xe0, 0x00, 14 | 0x60, 0xe0, 0xc0, 0x00, 0x70, 0xe0, 0xc0, 0x01, 0x30, 0xe0, 0x80, 0x01, 15 | 0x30, 0xe0, 0x80, 0x01, 0x30, 0xe0, 0x80, 0x01, 0x30, 0xe0, 0x80, 0x01, 16 | 0x30, 0xe0, 0x80, 0x01, 0x70, 0xe0, 0xc0, 0x01, 0x60, 0xe0, 0xc0, 0x00, 17 | 0xe0, 0xe0, 0xe0, 0x00, 0xc0, 0x00, 0x60, 0x00, 0x80, 0x03, 0x38, 0x00, 18 | 0x00, 0x0f, 0x1e, 0x00, 0x00, 0xfe, 0x0f, 0x00, 0x00, 0xf8, 0x03, 0x00, 19 | 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00 20 | }; 21 | -------------------------------------------------------------------------------- /bochs/gui/bitmaps/power.xpm: -------------------------------------------------------------------------------- 1 | /* XPM */ 2 | static const char *power_xpm[] = { 3 | /* width height num_colors chars_per_pixel */ 4 | " 32 32 2 1", 5 | /* colors */ 6 | ". c None", 7 | "# c #000000", 8 | /* pixels */ 9 | "................................", 10 | "................................", 11 | ".####...........................", 12 | "..#..#..###..##..##..##...#.##..", 13 | "..#..#.#...#.#...#..#..#...#..#.", 14 | ".#.##..#...#.#.#.#.#####..#.....", 15 | ".#.....#..#..##.#..#......#.....", 16 | "###.....##...#.#....###..###....", 17 | "................................", 18 | "...........#######..............", 19 | ".........###########............", 20 | "........####.....####...........", 21 | ".......###.........###..........", 22 | "......##.............##.........", 23 | ".....###.....###.....###........", 24 | ".....##......###......##........", 25 | "....###......###......###.......", 26 | "....##.......###.......##.......", 27 | "....##.......###.......##.......", 28 | "....##.......###.......##.......", 29 | "....##.......###.......##.......", 30 | "....##.......###.......##.......", 31 | "....###......###......###.......", 32 | ".....##......###......##........", 33 | ".....###.....###.....###........", 34 | "......##.............##.........", 35 | ".......###.........###..........", 36 | "........####.....####...........", 37 | ".........###########............", 38 | "...........#######..............", 39 | "................................", 40 | "................................" 41 | }; 42 | -------------------------------------------------------------------------------- /bochs/gui/bitmaps/reset.h: -------------------------------------------------------------------------------- 1 | ///////////////////////////////////////////////////////////////////////// 2 | // $Id$ 3 | ///////////////////////////////////////////////////////////////////////// 4 | 5 | #define BX_RESET_BMAP_X 32 6 | #define BX_RESET_BMAP_Y 32 7 | 8 | static const unsigned char bx_reset_bmap[(BX_RESET_BMAP_X * BX_RESET_BMAP_Y)/8] = { 9 | 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x20, 0x3c, 0x00, 0x00, 0x10, 10 | 0x48, 0x0c, 0xc7, 0x7c, 0x48, 0x92, 0x20, 0x11, 0x34, 0x1f, 0xf3, 0x09, 11 | 0x24, 0x41, 0x12, 0x48, 0x6e, 0xce, 0xe1, 0x30, 0x00, 0x00, 0x00, 0x00, 12 | 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 13 | 0x00, 0x00, 0x00, 0x00, 0x00, 0x80, 0x00, 0x00, 0x00, 0xc0, 0x00, 0x00, 14 | 0x00, 0xe0, 0x0f, 0x00, 0x00, 0xf0, 0x1f, 0x00, 0x00, 0xe0, 0x3f, 0x00, 15 | 0x00, 0xc7, 0x38, 0x00, 0x00, 0x87, 0x38, 0x00, 0x00, 0x07, 0x38, 0x00, 16 | 0x00, 0x07, 0x38, 0x00, 0x00, 0x07, 0x38, 0x00, 0x00, 0x07, 0x38, 0x00, 17 | 0x00, 0x07, 0x38, 0x00, 0x00, 0xff, 0x3f, 0x00, 0x00, 0xfe, 0x1f, 0x00, 18 | 0x00, 0xfc, 0x0f, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 19 | 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00 20 | }; 21 | -------------------------------------------------------------------------------- /bochs/gui/bitmaps/reset.xpm: -------------------------------------------------------------------------------- 1 | /* XPM */ 2 | static const char *reset_xpm[] = { 3 | /* width height num_colors chars_per_pixel */ 4 | " 32 32 2 1", 5 | /* colors */ 6 | ". c None", 7 | "# c #000000", 8 | /* pixels */ 9 | "................................", 10 | ".............................#..", 11 | "..####......................#...", 12 | "...#..#...##....###...##..#####.", 13 | "...#..#..#..#..#.....#..#...#...", 14 | "..#.##..#####...##..#####..#....", 15 | "..#..#..#.....#..#..#......#..#.", 16 | ".###.##..###..###....###....##..", 17 | "................................", 18 | "................................", 19 | "................................", 20 | "................................", 21 | "................................", 22 | "...............#................", 23 | "..............##................", 24 | ".............#######............", 25 | "............#########...........", 26 | ".............#########..........", 27 | "........###...##...###..........", 28 | "........###....#...###..........", 29 | "........###........###..........", 30 | "........###........###..........", 31 | "........###........###..........", 32 | "........###........###..........", 33 | "........###........###..........", 34 | "........##############..........", 35 | ".........############...........", 36 | "..........##########............", 37 | "................................", 38 | "................................", 39 | "................................", 40 | "................................" 41 | }; 42 | -------------------------------------------------------------------------------- /bochs/gui/bitmaps/saverestore.h: -------------------------------------------------------------------------------- 1 | ///////////////////////////////////////////////////////////////////////// 2 | // $Id$ 3 | ///////////////////////////////////////////////////////////////////////// 4 | 5 | #define BX_SAVE_RESTORE_BMAP_X 32 6 | #define BX_SAVE_RESTORE_BMAP_Y 32 7 | 8 | static const unsigned char bx_save_restore_bmap[(BX_SAVE_RESTORE_BMAP_X * BX_SAVE_RESTORE_BMAP_Y)/8] = 9 | { 10 | 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 11 | 0x00, 0x00, 0x00, 0x00, 0x2e, 0xdd, 0x9d, 0x3b, 12 | 0x22, 0x45, 0x45, 0x4a, 0x2c, 0xd9, 0x5d, 0x4a, 13 | 0x28, 0x51, 0x44, 0x4a, 0xee, 0x5d, 0x5c, 0x3a, 14 | 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 15 | 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 16 | 0x00, 0xe0, 0x01, 0x00, 0x00, 0xe0, 0x01, 0x00, 17 | 0x00, 0xe0, 0x01, 0x00, 0x00, 0xe0, 0x01, 0x00, 18 | 0x00, 0xec, 0x0d, 0x00, 0x00, 0xee, 0x1d, 0x00, 19 | 0x00, 0xef, 0x3d, 0x00, 0x00, 0xe7, 0x39, 0x00, 20 | 0x00, 0xe7, 0x39, 0x00, 0x00, 0x07, 0x38, 0x00, 21 | 0x00, 0x07, 0x38, 0x00, 0x00, 0x07, 0x38, 0x00, 22 | 0x00, 0x07, 0x38, 0x00, 0x00, 0x07, 0x38, 0x00, 23 | 0x00, 0xff, 0x3f, 0x00, 0x00, 0xfe, 0x1f, 0x00, 24 | 0x00, 0xfc, 0x0f, 0x00, 0x00, 0x00, 0x00, 0x00, 25 | 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00 26 | }; 27 | -------------------------------------------------------------------------------- /bochs/gui/bitmaps/saverestore.xpm: -------------------------------------------------------------------------------- 1 | /* XPM */ 2 | static const char *saverestore_xpm[] = { 3 | /* width height num_colors chars_per_pixel */ 4 | " 32 32 2 1", 5 | /* colors */ 6 | ". c None", 7 | "# c #000000", 8 | /* pixels */ 9 | "................................", 10 | "................................", 11 | "................................", 12 | ".###.#..#.###.###.###..###.###..", 13 | ".#...#..#.#...#.#.#...#..#.#..#.", 14 | "..##.#..#..##.###.###.#..#.#..#.", 15 | "...#.#..#...#.#...#...#..#.#..#.", 16 | ".###.####.###.#...###.#..#.###..", 17 | "................................", 18 | "................................", 19 | "................................", 20 | "................................", 21 | ".............####...............", 22 | ".............####...............", 23 | ".............####...............", 24 | ".............####...............", 25 | "..........##.####.##............", 26 | ".........###.####.###...........", 27 | "........####.####.####..........", 28 | "........###..####..###..........", 29 | "........###..####..###..........", 30 | "........###........###..........", 31 | "........###........###..........", 32 | "........###........###..........", 33 | "........###........###..........", 34 | "........###........###..........", 35 | "........##############..........", 36 | ".........############...........", 37 | "..........##########............", 38 | "................................", 39 | "................................", 40 | "................................", 41 | }; 42 | -------------------------------------------------------------------------------- /bochs/gui/bitmaps/snapshot.h: -------------------------------------------------------------------------------- 1 | ///////////////////////////////////////////////////////////////////////// 2 | // $Id$ 3 | ///////////////////////////////////////////////////////////////////////// 4 | 5 | #define BX_SNAPSHOT_BMAP_X 32 6 | #define BX_SNAPSHOT_BMAP_Y 32 7 | 8 | static const unsigned char bx_snapshot_bmap[(BX_SNAPSHOT_BMAP_X * BX_SNAPSHOT_BMAP_Y)/8] = { 9 | 0x00, 0x00, 0x20, 0x40, 0x77, 0xe6, 0xee, 0xec, 0x91, 0xa8, 0xa2, 0x52, 10 | 0x96, 0xac, 0xac, 0x52, 0x94, 0xaa, 0xa8, 0x52, 0xb7, 0xee, 0xae, 0xcc, 11 | 0x00, 0x20, 0x00, 0x00, 0x00, 0xf0, 0x0f, 0x00, 0x00, 0x08, 0x10, 0x00, 12 | 0x7c, 0x0f, 0x10, 0x1f, 0xfa, 0x07, 0xa0, 0x2e, 0x42, 0x07, 0xa0, 0x50, 13 | 0xa3, 0x03, 0xc0, 0xe0, 0xff, 0xee, 0x77, 0xbf, 0x01, 0xf9, 0x9f, 0x40, 14 | 0x01, 0x1d, 0xb8, 0xa0, 0xff, 0xe5, 0xa7, 0xff, 0xff, 0xba, 0x5a, 0xff, 15 | 0xff, 0x55, 0xb5, 0xff, 0xff, 0x8d, 0xaa, 0xff, 0xff, 0x16, 0x55, 0xff, 16 | 0xff, 0xa2, 0x6a, 0xff, 0xff, 0x46, 0x55, 0xff, 0xff, 0xaa, 0x6a, 0xff, 17 | 0xff, 0x56, 0x55, 0xff, 0xfe, 0xae, 0x6a, 0x7f, 0x00, 0x55, 0xb5, 0x00, 18 | 0x00, 0xbd, 0xba, 0x00, 0x00, 0xfa, 0x5f, 0x00, 0x00, 0xe4, 0x27, 0x00, 19 | 0x00, 0x18, 0x18, 0x00, 0x00, 0xe0, 0x07, 0x00 20 | }; 21 | -------------------------------------------------------------------------------- /bochs/gui/bitmaps/snapshot.xpm: -------------------------------------------------------------------------------- 1 | /* XPM */ 2 | static const char *snapshot_xpm[] = { 3 | /* width height num_colors chars_per_pixel */ 4 | " 32 32 2 1", 5 | /* colors */ 6 | ". c None", 7 | "# c #000000", 8 | /* pixels */ 9 | ".....................#........#.", 10 | "###.###..##..###.###.###..##.###", 11 | "#...#..#...#.#.#.#...#.#.#..#.#.", 12 | ".##.#..#..##.#.#..##.#.#.#..#.#.", 13 | "..#.#..#.#.#.#.#...#.#.#.#..#.#.", 14 | "###.##.#.###.###.###.#.#..##..##", 15 | ".............#..................", 16 | "............########............", 17 | "...........#........#...........", 18 | "..#####.####........#...#####...", 19 | ".#.########..........#.#.###.#..", 20 | ".#....#.###..........#.#....#.#.", 21 | "##...#.###............##.....###", 22 | "########.###.######.###.######.#", 23 | "#.......#..##########..#......#.", 24 | "#.......#.###......###.#.....#.#", 25 | "#########.#..######..#.#########", 26 | "########.#.###.#.#.##.#.########", 27 | "#########.#.#.#.#.#.##.#########", 28 | "#########.##...#.#.#.#.#########", 29 | "########.##.#...#.#.#.#.########", 30 | "########.#...#.#.#.#.##.########", 31 | "########.##...#.#.#.#.#.########", 32 | "########.#.#.#.#.#.#.##.########", 33 | "########.##.#.#.#.#.#.#.########", 34 | ".#######.###.#.#.#.#.##.#######.", 35 | "........#.#.#.#.#.#.##.#........", 36 | "........#.####.#.#.###.#........", 37 | ".........#.##########.#.........", 38 | "..........#..######..#..........", 39 | "...........##......##...........", 40 | ".............######............." 41 | }; 42 | -------------------------------------------------------------------------------- /bochs/gui/bitmaps/userbutton.h: -------------------------------------------------------------------------------- 1 | ///////////////////////////////////////////////////////////////////////// 2 | // $Id$ 3 | ///////////////////////////////////////////////////////////////////////// 4 | 5 | #define BX_USER_BMAP_X 32 6 | #define BX_USER_BMAP_Y 32 7 | 8 | static const unsigned char bx_user_bmap[BX_USER_BMAP_X*BX_USER_BMAP_Y/8] = { 9 | 0x00, 0x00, 0x00, 0x00, 0x84, 0x78, 0x9e, 0x07, 0x84, 0x04, 0x82, 0x08, 10 | 0x84, 0x04, 0x82, 0x08, 0x84, 0x38, 0x9e, 0x07, 0x84, 0x40, 0x82, 0x01, 11 | 0x84, 0x40, 0x82, 0x06, 0x78, 0x3c, 0x9e, 0x08, 0x00, 0x00, 0x00, 0x00, 12 | 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x20, 0x00, 0x00, 0x00, 0x1c, 13 | 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x80, 0x00, 14 | 0x00, 0x00, 0x80, 0x00, 0xfe, 0xff, 0xff, 0x3f, 0x02, 0x00, 0x00, 0x20, 15 | 0xaa, 0xaa, 0x2a, 0x2a, 0x02, 0x00, 0x00, 0x20, 0x02, 0x00, 0x00, 0x20, 16 | 0xaa, 0xaa, 0xaa, 0x2a, 0x52, 0x55, 0x11, 0x25, 0xaa, 0xaa, 0xaa, 0x2a, 17 | 0x52, 0x55, 0x01, 0x25, 0xaa, 0xaa, 0x82, 0x2a, 0x52, 0x55, 0x11, 0x25, 18 | 0xaa, 0xbf, 0xaa, 0x2a, 0x02, 0x00, 0x00, 0x20, 0xfe, 0xff, 0xff, 0x3f, 19 | 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00 20 | }; 21 | -------------------------------------------------------------------------------- /bochs/gui/bitmaps/userbutton.xpm: -------------------------------------------------------------------------------- 1 | /* XPM */ 2 | static const char *userbutton_xpm[] = { 3 | /* columns rows colors chars-per-pixel */ 4 | "32 32 2 1", 5 | ". c None", 6 | "# c #000000", 7 | /* pixels */ 8 | "................................", 9 | "..#....#...####..####..####.....", 10 | "..#....#..#......#.....#...#....", 11 | "..#....#..#......#.....#...#....", 12 | "..#....#...###...####..####.....", 13 | "..#....#......#..#.....##.......", 14 | "..#....#......#..#.....#.##.....", 15 | "...####...####...####..#...#....", 16 | "................................", 17 | "................................", 18 | ".............................#..", 19 | "..........................###...", 20 | ".........................#......", 21 | "........................#.......", 22 | ".......................#........", 23 | ".......................#........", 24 | ".#############################..", 25 | ".#...........................#..", 26 | ".#.#.#.#.#.#.#.#.#.#.#...#.#.#..", 27 | ".#...........................#..", 28 | ".#...........................#..", 29 | ".#.#.#.#.#.#.#.#.#.#.#.#.#.#.#..", 30 | ".#..#.#.#.#.#.#.#...#...#.#..#..", 31 | ".#.#.#.#.#.#.#.#.#.#.#.#.#.#.#..", 32 | ".#..#.#.#.#.#.#.#.......#.#..#..", 33 | ".#.#.#.#.#.#.#.#.#.....#.#.#.#..", 34 | ".#..#.#.#.#.#.#.#...#...#.#..#..", 35 | ".#.#.#.#######.#.#.#.#.#.#.#.#..", 36 | ".#...........................#..", 37 | ".#############################..", 38 | "................................", 39 | "................................" 40 | }; 41 | -------------------------------------------------------------------------------- /bochs/gui/icon_bochs.xpm: -------------------------------------------------------------------------------- 1 | /* XPM */ 2 | static const char *icon_bochs_xpm[] = { 3 | /* columns rows colors chars-per-pixel */ 4 | "32 32 7 1", 5 | " c black", 6 | ". c #800000", 7 | "X c #808000", 8 | "o c yellow", 9 | "O c #808080", 10 | "+ c #c0c0c0", 11 | "@ c None", 12 | /* pixels */ 13 | "@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@", 14 | "@@@@@@@@@@. +@@@+ +@@@@@@@@@", 15 | "@@@@@@@@ Oo @+ .@@@@@@@@", 16 | "@@@@@@ ooooo ooo. @@@@@@@", 17 | "@@@@ oooooo. oooooX @@@@@", 18 | "@+ XoooooO XX ooooooo O@@@", 19 | "+ oooooO XXXX X ooooooo @@", 20 | "@ ooo XXXXXX XX ooooooX ", 21 | "@@. XXXXXXXX XXX Xooooo. ", 22 | "@@@@ OXXXXXXXXX XXXXXO oO .@", 23 | "@@@@ .XXXXXXX XXXXXXX. @@@", 24 | "@+ oo XXXX XXXXXXXX @@@", 25 | "@ ooooo XXXXXX O", 26 | "@@O oooooo OXXXX. XX Oooo ", 27 | "@@@@ .ooooo. XXXXX oooo O@", 28 | "@@@@ Oooooo XX. .ooo @@@", 29 | "@@@@ XX oooooo .oooo. @@@@", 30 | "@@@@ ooXX . ooO o @@@@", 31 | "@@@@ oooXX. .Xo XX XXo @@@@", 32 | "@@@@ ooooXXXXXXXo XXXX.XXoo @@@@", 33 | "@@@+ oooooooooooo XooXXXooo @@@@", 34 | "@@@. oooooooooooo Xooooooo @@@@", 35 | "@@@+ oooooooooo XoooooX .@@@@@", 36 | "@@@@@O XoooooooX ooooo +@@@@@@", 37 | "@@@@@@@ ooooooX oooX @@@@@@@@", 38 | "@@@@@@@@@ ooooX oo @@@@@@@@@", 39 | "@@@@@@@@@@. Ooo. O@@@@@@@@@@", 40 | "@@@@@@@@@@@@ @@@@@@@@@@@@", 41 | "@@@@@@@@@@@@@@O O@@@@@@@@@@@@@", 42 | "@@@@@@@@@@@@@@@@+@@@@@@@@@@@@@@@", 43 | "@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@", 44 | "@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@" 45 | }; 46 | -------------------------------------------------------------------------------- /bochs/gui/keymaps/sdl-pc-de.map: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/gamozolabs/applepie/d261bda376b8046ef0d4664cd20c83e3dfc104a6/bochs/gui/keymaps/sdl-pc-de.map -------------------------------------------------------------------------------- /bochs/gui/keymaps/sdl2-pc-de.map: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/gamozolabs/applepie/d261bda376b8046ef0d4664cd20c83e3dfc104a6/bochs/gui/keymaps/sdl2-pc-de.map -------------------------------------------------------------------------------- /bochs/gui/keymaps/x11-pc-be.map: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/gamozolabs/applepie/d261bda376b8046ef0d4664cd20c83e3dfc104a6/bochs/gui/keymaps/x11-pc-be.map -------------------------------------------------------------------------------- /bochs/gui/keymaps/x11-pc-da.map: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/gamozolabs/applepie/d261bda376b8046ef0d4664cd20c83e3dfc104a6/bochs/gui/keymaps/x11-pc-da.map -------------------------------------------------------------------------------- /bochs/gui/keymaps/x11-pc-de.map: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/gamozolabs/applepie/d261bda376b8046ef0d4664cd20c83e3dfc104a6/bochs/gui/keymaps/x11-pc-de.map -------------------------------------------------------------------------------- /bochs/gui/keymaps/x11-pc-fr.map: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/gamozolabs/applepie/d261bda376b8046ef0d4664cd20c83e3dfc104a6/bochs/gui/keymaps/x11-pc-fr.map -------------------------------------------------------------------------------- /bochs/gui/keymaps/x11-pc-it.map: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/gamozolabs/applepie/d261bda376b8046ef0d4664cd20c83e3dfc104a6/bochs/gui/keymaps/x11-pc-it.map -------------------------------------------------------------------------------- /bochs/gui/keymaps/x11-pc-ru.map: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/gamozolabs/applepie/d261bda376b8046ef0d4664cd20c83e3dfc104a6/bochs/gui/keymaps/x11-pc-ru.map -------------------------------------------------------------------------------- /bochs/gui/keymaps/x11-pc-se.map: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/gamozolabs/applepie/d261bda376b8046ef0d4664cd20c83e3dfc104a6/bochs/gui/keymaps/x11-pc-se.map -------------------------------------------------------------------------------- /bochs/gui/keymaps/x11-pc-uk.map: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/gamozolabs/applepie/d261bda376b8046ef0d4664cd20c83e3dfc104a6/bochs/gui/keymaps/x11-pc-uk.map -------------------------------------------------------------------------------- /bochs/gui/scrollwin.h: -------------------------------------------------------------------------------- 1 | ///////////////////////////////////////////////////////////////////////// 2 | // $Id$ 3 | ///////////////////////////////////////////////////////////////////////// 4 | // 5 | // Copyright (C) 2013 Volker Ruppert 6 | // 7 | // This library is free software; you can redistribute it and/or 8 | // modify it under the terms of the GNU Lesser General Public 9 | // License as published by the Free Software Foundation; either 10 | // version 2 of the License, or (at your option) any later version. 11 | // 12 | // This library is distributed in the hope that it will be useful, 13 | // but WITHOUT ANY WARRANTY; without even the implied warranty of 14 | // MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU 15 | // Lesser General Public License for more details. 16 | // 17 | // You should have received a copy of the GNU Lesser General Public 18 | // License along with this library; if not, write to the Free Software 19 | // Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA 20 | 21 | #ifndef SCROLLWIN_H 22 | 23 | #define SCROLLWIN_H 24 | 25 | BOOL RegisterScrollWindow(HINSTANCE hinst); 26 | 27 | #endif 28 | -------------------------------------------------------------------------------- /bochs/gui/textconfig.h: -------------------------------------------------------------------------------- 1 | ///////////////////////////////////////////////////////////////////////// 2 | // $Id$ 3 | ///////////////////////////////////////////////////////////////////////// 4 | // 5 | // Copyright (C) 2009-2017 The Bochs Project 6 | // 7 | // This library is free software; you can redistribute it and/or 8 | // modify it under the terms of the GNU Lesser General Public 9 | // License as published by the Free Software Foundation; either 10 | // version 2 of the License, or (at your option) any later version. 11 | // 12 | // This library is distributed in the hope that it will be useful, 13 | // but WITHOUT ANY WARRANTY; without even the implied warranty of 14 | // MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU 15 | // Lesser General Public License for more details. 16 | // 17 | // You should have received a copy of the GNU Lesser General Public 18 | // License along with this library; if not, write to the Free Software 19 | // Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA 20 | 21 | #include "config.h" 22 | 23 | #if BX_USE_TEXTCONFIG 24 | 25 | enum { 26 | BX_CI_INIT, 27 | BX_CI_START_MENU, 28 | BX_CI_START_OPTS, 29 | BX_CI_START_SIMULATION, 30 | BX_CI_RUNTIME, 31 | BX_CI_N_MENUS 32 | }; 33 | 34 | enum { 35 | BX_CI_RT_FLOPPYA = 1, 36 | BX_CI_RT_FLOPPYB, 37 | BX_CI_RT_CDROM, 38 | BX_CI_RT_LOGOPTS1, 39 | BX_CI_RT_LOGOPTS2, 40 | BX_CI_RT_USB, 41 | BX_CI_RT_MISC, 42 | BX_CI_RT_SAVE_CFG, 43 | BX_CI_RT_CONT, 44 | BX_CI_RT_QUIT 45 | }; 46 | 47 | int init_text_config_interface(); 48 | int bx_text_config_interface(int menu); 49 | 50 | #endif 51 | -------------------------------------------------------------------------------- /bochs/gui/win32paramdlg.h: -------------------------------------------------------------------------------- 1 | ///////////////////////////////////////////////////////////////////////// 2 | // $Id$ 3 | ///////////////////////////////////////////////////////////////////////// 4 | // 5 | // Copyright (C) 2009-2014 Volker Ruppert 6 | // 7 | // This library is free software; you can redistribute it and/or 8 | // modify it under the terms of the GNU Lesser General Public 9 | // License as published by the Free Software Foundation; either 10 | // version 2 of the License, or (at your option) any later version. 11 | // 12 | // This library is distributed in the hope that it will be useful, 13 | // but WITHOUT ANY WARRANTY; without even the implied warranty of 14 | // MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU 15 | // Lesser General Public License for more details. 16 | // 17 | // You should have received a copy of the GNU Lesser General Public 18 | // License along with this library; if not, write to the Free Software 19 | // Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA 20 | 21 | #ifndef BX_WIN32_PARAMDLG_H 22 | #define BX_WIN32_PARAMDLG_H 23 | 24 | #include "config.h" 25 | 26 | #if BX_USE_WIN32CONFIG 27 | 28 | int AskFilename(HWND hwnd, bx_param_filename_c *param, char *buffer); 29 | INT_PTR win32ParamDialog(HWND parent, const char *menu); 30 | INT_PTR win32FloppyParamDialog(HWND parent, const char *menu); 31 | 32 | #endif 33 | 34 | #endif // BX_WIN32_PARAMDLG_H 35 | -------------------------------------------------------------------------------- /bochs/gui/win32res.h: -------------------------------------------------------------------------------- 1 | #define ICON_BOCHS 1000 2 | #define ICON_BOCHS2 1001 3 | 4 | #define MAINMENU_DLG 1100 5 | #define IDCONFIG 1110 6 | #define IDREADRC 1120 7 | #define IDWRITERC 1130 8 | #define IDEDITCFG 1140 9 | #define IDRESETCFG 1150 10 | #define IDEDITGRP 1160 11 | #define IDEDITBOX 1170 12 | #define IDSIMU 1180 13 | #define IDRESTORE 1190 14 | #define IDQUIT 1195 15 | #define LOGOPT_DLG 1200 16 | #define IDDEVLIST 1210 17 | #define IDLOGLBL1 1221 18 | #define IDLOGLBL2 1222 19 | #define IDLOGLBL3 1223 20 | #define IDLOGLBL4 1224 21 | #define IDLOGLBL5 1225 22 | #define IDLOGEVT1 1231 23 | #define IDLOGEVT2 1232 24 | #define IDLOGEVT3 1233 25 | #define IDLOGEVT4 1234 26 | #define IDLOGEVT5 1235 27 | #define IDADVLOGOPT 1240 28 | #define IDAPPLY 1250 29 | #define PLUGIN_CTRL_DLG 1300 30 | #define IDPLUGLIST 1310 31 | #define IDEDIT 1320 32 | #define IDLOAD 1330 33 | #define IDUNLOAD 1340 34 | #define ASK_DLG 2000 35 | #define IDASKTX1 2010 36 | #define IDASKDEV 2020 37 | #define IDASKTX2 2030 38 | #define IDASKMSG 2040 39 | #define IDASKLIST 2050 40 | #define STRING_DLG 2100 41 | #define IDSTRING 2110 42 | #define PARAM_DLG 3000 43 | #define IDCREATE 3010 44 | -------------------------------------------------------------------------------- /bochs/host/linux/pcidev/Make.kbuild: -------------------------------------------------------------------------------- 1 | obj-m += pcidev.o 2 | 3 | -------------------------------------------------------------------------------- /bochs/iodev/display/ddc.h: -------------------------------------------------------------------------------- 1 | //////////////////////////////////////////////////////////////////////// 2 | // $Id$ 3 | ///////////////////////////////////////////////////////////////////////// 4 | // 5 | // Copyright (C) 2018 The Bochs Project 6 | // 7 | // This library is free software; you can redistribute it and/or 8 | // modify it under the terms of the GNU Lesser General Public 9 | // License as published by the Free Software Foundation; either 10 | // version 2 of the License, or (at your option) any later version. 11 | // 12 | // This library is distributed in the hope that it will be useful, 13 | // but WITHOUT ANY WARRANTY; without even the implied warranty of 14 | // MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU 15 | // Lesser General Public License for more details. 16 | // 17 | // You should have received a copy of the GNU Lesser General Public 18 | // License along with this library; if not, write to the Free Software 19 | // Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA 20 | 21 | 22 | #ifndef BX_DISPLAY_DDC_H 23 | #define BX_DISPLAY_DDC_H 24 | 25 | class bx_ddc_c : public logfunctions { 26 | public: 27 | bx_ddc_c(); 28 | virtual ~bx_ddc_c(); 29 | 30 | Bit8u read(void); 31 | void write(bx_bool dck, bx_bool dda); 32 | 33 | private: 34 | 35 | Bit8u get_edid_byte(void); 36 | 37 | struct { 38 | bx_bool DCKhost; 39 | bx_bool DDAhost; 40 | bx_bool DDAmon; 41 | Bit8u ddc_stage; 42 | Bit8u ddc_bitshift; 43 | bx_bool ddc_ack; 44 | bx_bool ddc_rw; 45 | Bit8u ddc_byte; 46 | Bit8u edid_index; 47 | } s; // state information 48 | }; 49 | 50 | #endif 51 | -------------------------------------------------------------------------------- /bochs/iodev/extfpuirq.h: -------------------------------------------------------------------------------- 1 | ///////////////////////////////////////////////////////////////////////// 2 | // $Id$ 3 | ///////////////////////////////////////////////////////////////////////// 4 | // 5 | // Copyright (C) 2002-2009 The Bochs Project 6 | // 7 | // This library is free software; you can redistribute it and/or 8 | // modify it under the terms of the GNU Lesser General Public 9 | // License as published by the Free Software Foundation; either 10 | // version 2 of the License, or (at your option) any later version. 11 | // 12 | // This library is distributed in the hope that it will be useful, 13 | // but WITHOUT ANY WARRANTY; without even the implied warranty of 14 | // MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU 15 | // Lesser General Public License for more details. 16 | // 17 | // You should have received a copy of the GNU Lesser General Public 18 | // License along with this library; if not, write to the Free Software 19 | // Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA 20 | // 21 | 22 | #ifndef BX_IODEV_EXTFPUIRQ_H 23 | #define BX_IODEV_EXTFPUIRQ_H 24 | 25 | 26 | #if BX_USE_EFI_SMF 27 | # define BX_EXTFPUIRQ_SMF static 28 | # define BX_EXTFPUIRQ_THIS theExternalFpuIrq-> 29 | #else 30 | # define BX_EXTFPUIRQ_SMF 31 | # define BX_EXTFPUIRQ_THIS this-> 32 | #endif 33 | 34 | 35 | class bx_extfpuirq_c : public bx_devmodel_c { 36 | public: 37 | bx_extfpuirq_c(); 38 | virtual ~bx_extfpuirq_c(); 39 | virtual void init(void); 40 | virtual void reset(unsigned type); 41 | 42 | private: 43 | 44 | static void write_handler(void *this_ptr, Bit32u address, Bit32u value, unsigned io_len); 45 | #if !BX_USE_EFI_SMF 46 | void write(Bit32u address, Bit32u value, unsigned io_len); 47 | #endif 48 | }; 49 | 50 | #endif 51 | -------------------------------------------------------------------------------- /bochs/iodev/hdimage/cdrom_amigaos.h: -------------------------------------------------------------------------------- 1 | ///////////////////////////////////////////////////////////////////////// 2 | // $Id$ 3 | ///////////////////////////////////////////////////////////////////////// 4 | // 5 | // Copyright (C) 2002-2013 The Bochs Project 6 | // 7 | // This library is free software; you can redistribute it and/or 8 | // modify it under the terms of the GNU Lesser General Public 9 | // License as published by the Free Software Foundation; either 10 | // version 2 of the License, or (at your option) any later version. 11 | // 12 | // This library is distributed in the hope that it will be useful, 13 | // but WITHOUT ANY WARRANTY; without even the implied warranty of 14 | // MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU 15 | // Lesser General Public License for more details. 16 | // 17 | // You should have received a copy of the GNU Lesser General Public 18 | // License along with this library; if not, write to the Free Software 19 | // Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA 20 | 21 | 22 | // Header file for low-level OS specific CDROM emulation 23 | 24 | #if BX_WITH_AMIGAOS 25 | #include 26 | #endif 27 | 28 | class cdrom_amigaos_c : public cdrom_base_c { 29 | public: 30 | cdrom_amigaos_c(const char *dev); 31 | virtual ~cdrom_amigaos_c(void); 32 | bx_bool insert_cdrom(const char *dev = NULL); 33 | void eject_cdrom(); 34 | bx_bool read_toc(Bit8u* buf, int* length, bx_bool msf, int start_track, int format); 35 | Bit32u capacity(); 36 | bx_bool read_block(Bit8u* buf, Bit32u lba, int blocksize) BX_CPP_AttrRegparmN(3); 37 | private: 38 | #if BX_WITH_AMIGAOS 39 | BPTR fda; 40 | #endif 41 | }; 42 | -------------------------------------------------------------------------------- /bochs/iodev/hdimage/cdrom_misc.h: -------------------------------------------------------------------------------- 1 | ///////////////////////////////////////////////////////////////////////// 2 | // $Id$ 3 | ///////////////////////////////////////////////////////////////////////// 4 | // 5 | // Copyright (C) 2002-2013 The Bochs Project 6 | // 7 | // This library is free software; you can redistribute it and/or 8 | // modify it under the terms of the GNU Lesser General Public 9 | // License as published by the Free Software Foundation; either 10 | // version 2 of the License, or (at your option) any later version. 11 | // 12 | // This library is distributed in the hope that it will be useful, 13 | // but WITHOUT ANY WARRANTY; without even the implied warranty of 14 | // MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU 15 | // Lesser General Public License for more details. 16 | // 17 | // You should have received a copy of the GNU Lesser General Public 18 | // License along with this library; if not, write to the Free Software 19 | // Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA 20 | 21 | 22 | // Header file for low-level OS specific CDROM emulation 23 | 24 | class cdrom_misc_c : public cdrom_base_c { 25 | public: 26 | cdrom_misc_c(const char *dev) : cdrom_base_c(dev) {} 27 | bx_bool start_cdrom(); 28 | void eject_cdrom(); 29 | bx_bool read_toc(Bit8u* buf, int* length, bx_bool msf, int start_track, int format); 30 | Bit32u capacity(); 31 | }; 32 | -------------------------------------------------------------------------------- /bochs/iodev/hdimage/cdrom_osx.h: -------------------------------------------------------------------------------- 1 | ///////////////////////////////////////////////////////////////////////// 2 | // $Id$ 3 | ///////////////////////////////////////////////////////////////////////// 4 | // 5 | // Copyright (C) 2002-2013 The Bochs Project 6 | // 7 | // This library is free software; you can redistribute it and/or 8 | // modify it under the terms of the GNU Lesser General Public 9 | // License as published by the Free Software Foundation; either 10 | // version 2 of the License, or (at your option) any later version. 11 | // 12 | // This library is distributed in the hope that it will be useful, 13 | // but WITHOUT ANY WARRANTY; without even the implied warranty of 14 | // MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU 15 | // Lesser General Public License for more details. 16 | // 17 | // You should have received a copy of the GNU Lesser General Public 18 | // License along with this library; if not, write to the Free Software 19 | // Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA 20 | 21 | 22 | // Header file for low-level OS specific CDROM emulation 23 | 24 | class cdrom_osx_c : public cdrom_base_c { 25 | public: 26 | cdrom_osx_c(const char *dev) : cdrom_base_c(dev) {} 27 | bx_bool insert_cdrom(const char *dev = NULL); 28 | bx_bool read_toc(Bit8u* buf, int* length, bx_bool msf, int start_track, int format); 29 | Bit32u capacity(); 30 | bx_bool read_block(Bit8u* buf, Bit32u lba, int blocksize) BX_CPP_AttrRegparmN(3); 31 | }; 32 | -------------------------------------------------------------------------------- /bochs/iodev/hdimage/cdrom_win32.h: -------------------------------------------------------------------------------- 1 | ///////////////////////////////////////////////////////////////////////// 2 | // $Id$ 3 | ///////////////////////////////////////////////////////////////////////// 4 | // 5 | // Copyright (C) 2002-2013 The Bochs Project 6 | // 7 | // This library is free software; you can redistribute it and/or 8 | // modify it under the terms of the GNU Lesser General Public 9 | // License as published by the Free Software Foundation; either 10 | // version 2 of the License, or (at your option) any later version. 11 | // 12 | // This library is distributed in the hope that it will be useful, 13 | // but WITHOUT ANY WARRANTY; without even the implied warranty of 14 | // MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU 15 | // Lesser General Public License for more details. 16 | // 17 | // You should have received a copy of the GNU Lesser General Public 18 | // License along with this library; if not, write to the Free Software 19 | // Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA 20 | 21 | 22 | // Header file for low-level OS specific CDROM emulation 23 | 24 | class cdrom_win32_c : public cdrom_base_c { 25 | public: 26 | cdrom_win32_c(const char *dev); 27 | virtual ~cdrom_win32_c(void); 28 | bx_bool insert_cdrom(const char *dev = NULL); 29 | void eject_cdrom(); 30 | bx_bool read_toc(Bit8u* buf, int* length, bx_bool msf, int start_track, int format); 31 | Bit32u capacity(); 32 | bx_bool read_block(Bit8u* buf, Bit32u lba, int blocksize) BX_CPP_AttrRegparmN(3); 33 | private: 34 | #ifdef WIN32 35 | HANDLE hFile; 36 | #endif 37 | }; 38 | -------------------------------------------------------------------------------- /bochs/iodev/network/slirp/debug.h: -------------------------------------------------------------------------------- 1 | ///////////////////////////////////////////////////////////////////////// 2 | // $Id$ 3 | ///////////////////////////////////////////////////////////////////////// 4 | /* 5 | * Copyright (c) 1995 Danny Gasparovski. 6 | * 7 | * Please read the file COPYRIGHT for the 8 | * terms and conditions of the copyright. 9 | */ 10 | 11 | //#define DEBUG 1 12 | 13 | #ifdef DEBUG 14 | 15 | #define DBG_CALL 0x1 16 | #define DBG_MISC 0x2 17 | #define DBG_ERROR 0x4 18 | 19 | #define dfd stderr 20 | 21 | extern int slirp_debug; 22 | 23 | #define DEBUG_CALL(x) if (slirp_debug & DBG_CALL) { fprintf(dfd, "%s...\n", x); fflush(dfd); } 24 | #define DEBUG_ARG(x, y) if (slirp_debug & DBG_CALL) { fputc(' ', dfd); fprintf(dfd, x, y); fputc('\n', dfd); fflush(dfd); } 25 | #define DEBUG_ARGS(x) if (slirp_debug & DBG_CALL) { fprintf x ; fflush(dfd); } 26 | #define DEBUG_MISC(x) if (slirp_debug & DBG_MISC) { fprintf x ; fflush(dfd); } 27 | #define DEBUG_ERROR(x) if (slirp_debug & DBG_ERROR) {fprintf x ; fflush(dfd); } 28 | 29 | #else 30 | 31 | #define DEBUG_CALL(x) 32 | #define DEBUG_ARG(x, y) 33 | #define DEBUG_ARGS(x) 34 | #define DEBUG_MISC(x) 35 | #define DEBUG_ERROR(x) 36 | 37 | #endif 38 | -------------------------------------------------------------------------------- /bochs/iodev/network/slirp/if.h: -------------------------------------------------------------------------------- 1 | ///////////////////////////////////////////////////////////////////////// 2 | // $Id$ 3 | ///////////////////////////////////////////////////////////////////////// 4 | /* 5 | * Copyright (c) 1995 Danny Gasparovski. 6 | * 7 | * Please read the file COPYRIGHT for the 8 | * terms and conditions of the copyright. 9 | */ 10 | 11 | #ifndef _IF_H_ 12 | #define _IF_H_ 13 | 14 | #define IF_COMPRESS 0x01 /* We want compression */ 15 | #define IF_NOCOMPRESS 0x02 /* Do not do compression */ 16 | #define IF_AUTOCOMP 0x04 /* Autodetect (default) */ 17 | #define IF_NOCIDCOMP 0x08 /* CID compression */ 18 | 19 | #define IF_MTU 1500 20 | #define IF_MRU 1500 21 | #define IF_COMP IF_AUTOCOMP /* Flags for compression */ 22 | 23 | /* 2 for alignment, 14 for ethernet, 40 for TCP/IP */ 24 | #define IF_MAXLINKHDR (2 + 14 + 40) 25 | 26 | #endif 27 | -------------------------------------------------------------------------------- /bochs/iodev/network/slirp/main.h: -------------------------------------------------------------------------------- 1 | ///////////////////////////////////////////////////////////////////////// 2 | // $Id$ 3 | ///////////////////////////////////////////////////////////////////////// 4 | /* 5 | * Copyright (c) 1995 Danny Gasparovski. 6 | * 7 | * Please read the file COPYRIGHT for the 8 | * terms and conditions of the copyright. 9 | */ 10 | #ifndef SLIRP_MAIN_H 11 | #define SLIRP_MAIN_H 1 12 | 13 | #ifdef HAVE_SYS_SELECT_H 14 | #include 15 | #endif 16 | 17 | #define TOWRITEMAX 512 18 | 19 | extern int slirp_socket; 20 | extern int slirp_socket_unit; 21 | extern int slirp_socket_port; 22 | extern uint32_t slirp_socket_addr; 23 | extern char *slirp_socket_passwd; 24 | extern int ctty_closed; 25 | 26 | /* 27 | * Get the difference in 2 times from updtim() 28 | * Allow for wraparound times, "just in case" 29 | * x is the greater of the 2 (current time) and y is 30 | * what it's being compared against. 31 | */ 32 | #define TIME_DIFF(x,y) (x)-(y) < 0 ? ~0-(y)+(x) : (x)-(y) 33 | 34 | extern char *slirp_tty; 35 | extern char *exec_shell; 36 | extern u_int curtime; 37 | extern fd_set *global_readfds, *global_writefds, *global_xfds; 38 | extern struct in_addr loopback_addr; 39 | extern unsigned long loopback_mask; 40 | extern char *username; 41 | extern char *socket_path; 42 | extern int towrite_max; 43 | extern int ppp_exit; 44 | extern int tcp_keepintvl; 45 | 46 | #define PROTO_SLIP 0x1 47 | #ifdef USE_PPP 48 | #define PROTO_PPP 0x2 49 | #endif 50 | 51 | int if_encap(Slirp *slirp, struct mbuf *ifm); 52 | ssize_t slirp_send(struct socket *so, const void *buf, size_t len, int flags); 53 | 54 | #endif 55 | -------------------------------------------------------------------------------- /bochs/iodev/network/slirp/misc.h: -------------------------------------------------------------------------------- 1 | ///////////////////////////////////////////////////////////////////////// 2 | // $Id$ 3 | ///////////////////////////////////////////////////////////////////////// 4 | /* 5 | * Copyright (c) 1995 Danny Gasparovski. 6 | * 7 | * Please read the file COPYRIGHT for the 8 | * terms and conditions of the copyright. 9 | */ 10 | 11 | #ifndef _MISC_H_ 12 | #define _MISC_H_ 13 | 14 | struct ex_list { 15 | int ex_pty; /* Do we want a pty? */ 16 | struct in_addr ex_addr; /* Server address */ 17 | int ex_fport; /* Port to telnet to */ 18 | const char *ex_exec; /* Command line of what to exec */ 19 | struct ex_list *ex_next; 20 | }; 21 | 22 | #ifndef HAVE_STRDUP 23 | char *strdup(const char *); 24 | #endif 25 | 26 | #define EMU_NONE 0x0 27 | 28 | /* TCP emulations */ 29 | #define EMU_CTL 0x1 30 | #define EMU_FTP 0x2 31 | #define EMU_KSH 0x3 32 | #define EMU_IRC 0x4 33 | #define EMU_REALAUDIO 0x5 34 | #define EMU_RLOGIN 0x6 35 | #define EMU_IDENT 0x7 36 | #define EMU_RSH 0x8 37 | 38 | #define EMU_NOCONNECT 0x10 /* Don't connect */ 39 | 40 | struct tos_t { 41 | uint16_t lport; 42 | uint16_t fport; 43 | uint8_t tos; 44 | uint8_t emu; 45 | }; 46 | 47 | struct emu_t { 48 | uint16_t lport; 49 | uint16_t fport; 50 | uint8_t tos; 51 | uint8_t emu; 52 | struct emu_t *next; 53 | }; 54 | 55 | void slirp_insque(void *, void *); 56 | void slirp_remque(void *); 57 | int add_exec(struct ex_list **, int, char *, struct in_addr, int); 58 | int fork_exec(struct socket *so, const char *ex, int do_pty); 59 | 60 | #endif 61 | -------------------------------------------------------------------------------- /bochs/iodev/network/slirp/sbuf.h: -------------------------------------------------------------------------------- 1 | ///////////////////////////////////////////////////////////////////////// 2 | // $Id$ 3 | ///////////////////////////////////////////////////////////////////////// 4 | /* 5 | * Copyright (c) 1995 Danny Gasparovski. 6 | * 7 | * Please read the file COPYRIGHT for the 8 | * terms and conditions of the copyright. 9 | */ 10 | 11 | #ifndef _SBUF_H_ 12 | #define _SBUF_H_ 13 | 14 | #define sbflush(sb) sbdrop((sb),(sb)->sb_cc) 15 | #define sbspace(sb) ((sb)->sb_datalen - (sb)->sb_cc) 16 | 17 | struct sbuf { 18 | u_int sb_cc; /* actual chars in buffer */ 19 | u_int sb_datalen; /* Length of data */ 20 | char *sb_wptr; /* write pointer. points to where the next 21 | * bytes should be written in the sbuf */ 22 | char *sb_rptr; /* read pointer. points to where the next 23 | * byte should be read from the sbuf */ 24 | char *sb_data; /* Actual data */ 25 | }; 26 | 27 | void sbfree(struct sbuf *); 28 | void sbdrop(struct sbuf *, int); 29 | void sbreserve(struct sbuf *, int); 30 | void sbappend(struct socket *, struct mbuf *); 31 | void sbcopy(struct sbuf *, int, int, char *); 32 | 33 | #endif 34 | -------------------------------------------------------------------------------- /bochs/iodev/network/slirp/tftp.h: -------------------------------------------------------------------------------- 1 | ///////////////////////////////////////////////////////////////////////// 2 | // $Id$ 3 | ///////////////////////////////////////////////////////////////////////// 4 | 5 | /* tftp defines */ 6 | #ifndef SLIRP_TFTP_H 7 | #define SLIRP_TFTP_H 1 8 | 9 | #define TFTP_SESSIONS_MAX 3 10 | 11 | #define TFTP_SERVER 69 12 | 13 | #define TFTP_BUFFER_SIZE 1024 14 | 15 | struct tftp_t { 16 | struct ip ip; 17 | struct udphdr udp; 18 | uint16_t tp_op; 19 | union { 20 | struct { 21 | uint16_t tp_block_nr; 22 | uint8_t tp_buf[TFTP_BUFFER_SIZE]; 23 | } tp_data; 24 | struct { 25 | uint16_t tp_error_code; 26 | uint8_t tp_msg[TFTP_BUFFER_SIZE]; 27 | } tp_error; 28 | char tp_buf[TFTP_BUFFER_SIZE + 2]; 29 | } x; 30 | }; 31 | 32 | struct tftp_session { 33 | Slirp *slirp; 34 | char *filename; 35 | int fd; 36 | 37 | struct in_addr client_ip; 38 | uint16_t client_port; 39 | uint32_t block_nr; 40 | bx_bool write; 41 | unsigned options; 42 | size_t tsize_val; 43 | unsigned blksize_val; 44 | unsigned timeout_val; 45 | 46 | int timestamp; 47 | }; 48 | 49 | void tftp_input(struct mbuf *m); 50 | 51 | #endif 52 | -------------------------------------------------------------------------------- /bochs/iodev/scancodes.h: -------------------------------------------------------------------------------- 1 | ///////////////////////////////////////////////////////////////////////// 2 | // $Id$ 3 | ///////////////////////////////////////////////////////////////////////// 4 | // 5 | // Copyright (C) 2002-2009 The Bochs Project 6 | // 7 | // This library is free software; you can redistribute it and/or 8 | // modify it under the terms of the GNU Lesser General Public 9 | // License as published by the Free Software Foundation; either 10 | // version 2 of the License, or (at your option) any later version. 11 | // 12 | // This library is distributed in the hope that it will be useful, 13 | // but WITHOUT ANY WARRANTY; without even the implied warranty of 14 | // MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU 15 | // Lesser General Public License for more details. 16 | // 17 | // You should have received a copy of the GNU Lesser General Public 18 | // License along with this library; if not, write to the Free Software 19 | // Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA 20 | 21 | #ifndef BX_SCANCODES_H 22 | #define BX_SCANCODES_H 23 | 24 | // Translation table of the 8042 25 | extern unsigned char translation8042[256]; 26 | 27 | typedef struct { 28 | const char *make; 29 | const char *brek; 30 | } scancode; 31 | 32 | // Scancodes table 33 | extern scancode scancodes[BX_KEY_NBKEYS][3]; 34 | 35 | #endif 36 | -------------------------------------------------------------------------------- /bochs/iodev/slowdown_timer.h: -------------------------------------------------------------------------------- 1 | ///////////////////////////////////////////////////////////////////////// 2 | // $Id$ 3 | ///////////////////////////////////////////////////////////////////////// 4 | // 5 | // Copyright (C) 2002-2009 The Bochs Project 6 | // 7 | // This library is free software; you can redistribute it and/or 8 | // modify it under the terms of the GNU Lesser General Public 9 | // License as published by the Free Software Foundation; either 10 | // version 2 of the License, or (at your option) any later version. 11 | // 12 | // This library is distributed in the hope that it will be useful, 13 | // but WITHOUT ANY WARRANTY; without even the implied warranty of 14 | // MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU 15 | // Lesser General Public License for more details. 16 | // 17 | // You should have received a copy of the GNU Lesser General Public 18 | // License along with this library; if not, write to the Free Software 19 | // Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA 20 | // 21 | 22 | #ifndef BX_IODEV_SLOWDOWN_TIMER_H 23 | #define BX_IODEV_SLOWDOWN_TIMER_H 24 | 25 | class bx_slowdown_timer_c : public logfunctions { 26 | private: 27 | struct { 28 | Bit64u start_time; 29 | Bit64u start_emulated_time; 30 | Bit64u lasttime; 31 | 32 | int timer_handle; 33 | 34 | float MAXmultiplier; 35 | Bit64u Q; // sleep rate in usec 36 | } s; 37 | 38 | public: 39 | bx_slowdown_timer_c(); 40 | 41 | void init(void); 42 | void exit(void); 43 | void after_restore_state(void); 44 | 45 | static void timer_handler(void * this_ptr); 46 | 47 | void handle_timer(); 48 | 49 | }; 50 | 51 | extern bx_slowdown_timer_c bx_slowdown_timer; 52 | 53 | #endif 54 | -------------------------------------------------------------------------------- /bochs/misc/Makefile.in: -------------------------------------------------------------------------------- 1 | # Copyright (C) 2001-2013 The Bochs Project 2 | # 3 | # This library is free software; you can redistribute it and/or 4 | # modify it under the terms of the GNU Lesser General Public 5 | # License as published by the Free Software Foundation; either 6 | # version 2 of the License, or (at your option) any later version. 7 | # 8 | # This library is distributed in the hope that it will be useful, 9 | # but WITHOUT ANY WARRANTY; without even the implied warranty of 10 | # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU 11 | # Lesser General Public License for more details. 12 | # 13 | # You should have received a copy of the GNU Lesser General Public 14 | # License along with this library; if not, write to the Free Software 15 | # Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA 16 | 17 | 18 | @SUFFIX_LINE@ 19 | 20 | 21 | top_builddir = .. 22 | 23 | SHELL = @SHELL@ 24 | 25 | @SET_MAKE@ 26 | 27 | CC = @CC@ 28 | CXX = @CXX@ 29 | CFLAGS = @CFLAGS@ @GUI_CFLAGS@ 30 | CXXFLAGS = @CXXFLAGS@ @GUI_CXXFLAGS@ 31 | 32 | LDFLAGS = @LDFLAGS@ 33 | LIBS = @LIBS@ 34 | RANLIB = @RANLIB@ 35 | LIBTOOL=@LIBTOOL@ 36 | 37 | 38 | .@CPP_SUFFIX@.o: 39 | $(CXX) @DASH@c $(CXXFLAGS) @CXXFP@$< @OFP@$@ 40 | 41 | 42 | all: make_cmos_image 43 | 44 | make_cmos_image@EXE@: make_cmos_image.o 45 | @LINK_CONSOLE@ make_cmos_image.o 46 | 47 | clean: 48 | @RMCOMMAND@ *.o 49 | @RMCOMMAND@ make_cmos_image@EXE@ 50 | 51 | dist-clean: clean 52 | @RMCOMMAND@ Makefile 53 | -------------------------------------------------------------------------------- /bochs/misc/sb16/sb16ctrl.example: -------------------------------------------------------------------------------- 1 | # 2 | # example for an sb16ctrl file 3 | # 4 | # comments start with hash character '#' (obviously...) 5 | # Numbers can be octal (0...) or hex (0x...) or decimal. 6 | # 7 | # 8 | # first, reset the translation table with command 'r' 9 | r 10 | 11 | # then load a few translations. 12 | # The format is: 13 | # t OldBankMSB OldBankLSB OldProgram NewBankMSB NewBankLSB NewProgram 14 | # 15 | # All values are in the range of 0-127 or 255. 16 | # For old values, 255 means "match any". 17 | # For new values, 255 means "don't change". 18 | # 19 | # When deciding whether a program change is to be remapped, these 20 | # remappings are checked first to last, and the first applicable remap 21 | # is used. 22 | 23 | # This would map all bank changes to bank 0/0 24 | # t 255 255 255 0 0 255 25 | # it's commented out, otherwise none of the below changes would 26 | # be checked, as this one matches anything. 27 | 28 | t 255 255 0 0 0 19 # remap piano to church organ 29 | t 255 255 255 0 0 0 # everything remaining -> piano 30 | 31 | # now show the number of translations that have been loaded 32 | i 3 33 | 34 | # and enable GS/GM mode 35 | m 0xF0,0x41,0x10,0x42,0x12,0x40,0x00,0x7F,0x00,0x41,0xF7 36 | 37 | -------------------------------------------------------------------------------- /bochs/misc/sb16/sb16ctrl.exe: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/gamozolabs/applepie/d261bda376b8046ef0d4664cd20c83e3dfc104a6/bochs/misc/sb16/sb16ctrl.exe -------------------------------------------------------------------------------- /bochs/misc/slirp.conf: -------------------------------------------------------------------------------- 1 | # slirp config 2 | # The line above is mandatory 3 | 4 | # Supported options: 5 | # 6 | # RESTRICTED if set to 1, only built-in services are available 7 | # NET base IP address of the virtual network 8 | # MASK netmask of the virtual network 9 | # HOST IP address of the DHCP and TFTP server 10 | # HOSTNAME DHCP client hostname 11 | # DHCPSTART start address of DHCP pool 12 | # DNS IP address of the virtual DNS server 13 | # BOOTFILE boot filename returned by DHCP 14 | # DNSSEARCH comma-separated list of DNS suffixes to search (DHCP extension) 15 | # SMB_EXPORT absolute path to the shared folder (non-Windows SMB support) 16 | # SMB_SRV alternative IP address of the SMB server (default is 10.0.2.4) 17 | # HOSTFWD map guest port to host port for host-to-guest access 18 | # (format: protocol:hostaddr:hostport-guestaddr:guestport) 19 | 20 | # This is the default (classic slirp) setup 21 | # restricted = 0 22 | # net = 10.0.2.0 23 | # mask = 255.255.255.0 24 | # host = 10.0.2.2 25 | # dhcpstart = 10.0.2.15 26 | # dns = 10.0.2.3 27 | 28 | # This is the vnet setup 29 | # restricted = 1 30 | # net = 192.168.10.0 31 | # mask = 255.255.255.0 32 | # host = 192.168.10.1 33 | # dhcpstart = 192.168.10.2 34 | # dns = 0.0.0.0 35 | # bootfile = pxelinux.0 36 | 37 | # Host forwarding example (access guest SSH server from host port 12345) 38 | # hostfwd = tcp::12345-:22 39 | -------------------------------------------------------------------------------- /bochs/msrs.def: -------------------------------------------------------------------------------- 1 | # 2 | # ---------------------------------- 3 | # Bochs CPU MSRs configuration 4 | # ---------------------------------- 5 | # 6 | # LEGEND: 7 | # ------ 8 | # 9 | # MSR ADDRESS - MSR address in hex (supplied in ECX register for RDMSR/WRMSR) 10 | # MSR TYPE - MSR type, see below 11 | # 12 | # The following fields have any meaning for MSRs with no type only: 13 | # 14 | # RESET_HI - reset value of the MSR (bits 63:32) 15 | # RESET_LO - reset value of the MSR (bits 31:00) 16 | # 17 | # NOTE: the value of the MSR doesn't change on INIT (software reset). 18 | # 19 | # RSRVD_HI - mask of reserved bits (bits 63:32) 20 | # RSRVD_LO - mask of reserved bits (bits 31:00) 21 | # 22 | # NOTE: #GP fault will be generated when trying to modify any of MSR 23 | # reserved bits. 24 | # 25 | # IGNRD_HI - mask of ignored bits (bits 63:32) 26 | # IGNRD_LO - mask of ignored bits (bits 31:00) 27 | # 28 | # NOTE: Ignored bits will keep their reset value, all writes to these 29 | # bits are ignored. 30 | # 31 | # MSR TYPES: 32 | # --------- 33 | # 34 | # 0 - No type. 35 | # 1 - MSR contains linear address, 36 | # #GP if writing non-canonical address in 64-bit mode. 37 | # 2 - MSR contains physical address, 38 | # #GP if writing a value which exceeds emulated physical address size. 39 | # 40 | 41 | 42 | # ADDRESS TYPE RESET_HI RESET_LO RSRVD_HI RSRVD_LO IGNRD_HI IGNRD_LO 43 | # --------------------------------------------------------------------------------- 44 | 0x02c 0 00000000 00000000 00000000 00000000 00000000 00000000 45 | -------------------------------------------------------------------------------- /bochs/patches/HEADER: -------------------------------------------------------------------------------- 1 | ---------------------------------------------------------------------- 2 | Patch name: 3 | Author: 4 | Date: 5 | Status: 6 | 7 | Detailed description: 8 | 9 | Patch was created with: 10 | diff -up VER1 VER2 11 | Apply patch to what version: 12 | svn revision [REVISION] 13 | Instructions: 14 | To patch, go to main bochs directory. 15 | Type "patch -p0 < THIS_PATCH_FILE". 16 | ---------------------------------------------------------------------- 17 | -------------------------------------------------------------------------------- /bochs/patches/NOTES: -------------------------------------------------------------------------------- 1 | This directory contains patches that are under consideration or being 2 | tested. 3 | 4 | The file HEADER is a nice template for the top of a patch. 5 | Use it if you want. 6 | -------------------------------------------------------------------------------- /bochs/patches/patch.decode-interrupts.gz: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/gamozolabs/applepie/d261bda376b8046ef0d4664cd20c83e3dfc104a6/bochs/patches/patch.decode-interrupts.gz -------------------------------------------------------------------------------- /bochs/wxbochs.rc: -------------------------------------------------------------------------------- 1 | #include "config.h" 2 | icon_bochs ICON build/win32/nsis/bochs.ico 3 | #include "wx/msw/wx.rc" 4 | #if BX_WITH_WIN32 5 | #include "win32res.rc" 6 | #else 7 | #if BX_DEBUGGER_GUI 8 | #include "win32_enh_dbg.rc" 9 | #endif 10 | #include "bxversion.rc" 11 | #endif 12 | -------------------------------------------------------------------------------- /bochs_config: -------------------------------------------------------------------------------- 1 | #!/bin/sh 2 | 3 | set echo 4 | 5 | ../bochs/configure --target=x86_64-pc-windows \ 6 | --enable-all-optimizations \ 7 | --enable-alignment-check \ 8 | --enable-configurable-msrs \ 9 | --enable-long-phy-address \ 10 | --enable-a20-pin \ 11 | --enable-memtype \ 12 | --enable-perfmon \ 13 | --enable-fpu \ 14 | --enable-monitor-mwait \ 15 | --enable-protection-keys \ 16 | --enable-memtype \ 17 | --enable-avx \ 18 | --enable-3dnow \ 19 | --enable-svm \ 20 | --enable-sb16 \ 21 | --enable-cpu-level=6 \ 22 | --enable-x86-64 \ 23 | --enable-vmx=2 \ 24 | --enable-pci \ 25 | --enable-usb \ 26 | --enable-usb-ohci \ 27 | --enable-usb-ehci \ 28 | --enable-usb-xhci \ 29 | --enable-busmouse \ 30 | --enable-e1000 \ 31 | --enable-show-ips \ 32 | --disable-readline \ 33 | --without-x \ 34 | --disable-large-ramfile \ 35 | --with-win32 --with-rfb --with-nogui 36 | 37 | unset echo 38 | -------------------------------------------------------------------------------- /bochservisor/.gitignore: -------------------------------------------------------------------------------- 1 | /target 2 | **/*.rs.bk 3 | Cargo.lock 4 | -------------------------------------------------------------------------------- /bochservisor/Cargo.toml: -------------------------------------------------------------------------------- 1 | [package] 2 | name = "bochservisor" 3 | version = "0.1.0" 4 | authors = ["Brandon Falk "] 5 | edition = "2018" 6 | 7 | [dependencies] 8 | whvp_bindings = { path="../whvp_bindings" } 9 | 10 | [lib] 11 | crate-type = ["cdylib"] 12 | 13 | [profile.release] 14 | debug = true 15 | -------------------------------------------------------------------------------- /bochservisor/src/time.rs: -------------------------------------------------------------------------------- 1 | /// Misc timing routines often used for benchmarking 2 | 3 | use std::time::Instant; 4 | 5 | /// Performs a rdtsc instruction, returns 64-bit TSC value 6 | pub fn rdtsc() -> u64 { 7 | let high: u32; 8 | let low: u32; 9 | 10 | unsafe { 11 | asm!("rdtsc" : 12 | "={edx}"(high), "={eax}"(low) ::: 13 | "volatile", "intel"); 14 | } 15 | 16 | ((high as u64) << 32) | (low as u64) 17 | } 18 | 19 | pub fn calibrate_tsc() -> f64 { 20 | let start = rdtsc(); 21 | let start_time = Instant::now(); 22 | loop { 23 | let ef = elapsed_from(&start_time); 24 | if ef >= 0.1 { 25 | return (rdtsc() - start) as f64 / ef; 26 | } 27 | } 28 | } 29 | 30 | /// Get elapsed time in seconds 31 | pub fn elapsed_from(start: &Instant) -> f64 { 32 | let dur = start.elapsed(); 33 | dur.as_secs() as f64 + dur.subsec_nanos() as f64 / 1_000_000_000.0 34 | } 35 | -------------------------------------------------------------------------------- /bochservisor_test/.gitignore: -------------------------------------------------------------------------------- 1 | bochsout.txt -------------------------------------------------------------------------------- /bochservisor_test/run.bat: -------------------------------------------------------------------------------- 1 | set BXSHARE=..\bochs\bios 2 | nasm -f bin test.asm -o test.bin 3 | ..\bochs_build\bochs.exe -q -f bochsrc.bxrc 4 | -------------------------------------------------------------------------------- /bochservisor_test/test.asm: -------------------------------------------------------------------------------- 1 | [bits 16] 2 | [org 0x7c00] 3 | 4 | loop: 5 | mov dx, 0x1337 6 | out dx, al 7 | 8 | mov ax, 0 9 | mov es, ax 10 | mov di, ax 11 | 12 | mov di, 0xb800 13 | mov es, di 14 | xor di, di 15 | mov ax, 0x0530 16 | mov cx, 80 17 | rep stosw 18 | 19 | mov byte [0x8000], 0x12 20 | mov byte [0x8001], 0x34 21 | mov byte [0x8002], 0x56 22 | mov byte [0x8003], 0x78 23 | mov byte [0x8004], 0x9a 24 | mov byte [0x8005], 0xbc 25 | mov byte [0x8006], 0xde 26 | mov byte [0x8007], 0xf0 27 | mov byte [0x8008], 0x99 28 | 29 | .halt: 30 | hlt 31 | jmp short .halt 32 | 33 | times 510-($-$$) db 0 34 | dw 0xaa55 35 | -------------------------------------------------------------------------------- /bochservisor_test/test.bin: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/gamozolabs/applepie/d261bda376b8046ef0d4664cd20c83e3dfc104a6/bochservisor_test/test.bin -------------------------------------------------------------------------------- /bochservisor_test_real/.gitignore: -------------------------------------------------------------------------------- 1 | * 2 | 3 | !.gitignore 4 | !bochsrc.bxrc 5 | !run.bat 6 | -------------------------------------------------------------------------------- /bochservisor_test_real/run.bat: -------------------------------------------------------------------------------- 1 | set BXSHARE=..\bochs\bios 2 | ..\bochs_build\bochs.exe -q -unlock -f bochsrc.bxrc 3 | -------------------------------------------------------------------------------- /sfsite/.htaccess: -------------------------------------------------------------------------------- 1 | AddHandler server-parsed .html 2 | AddHandler server-parsed .txt 3 | -------------------------------------------------------------------------------- /sfsite/How the Bochs works under the hood 2nd edition.pdf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/gamozolabs/applepie/d261bda376b8046ef0d4664cd20c83e3dfc104a6/sfsite/How the Bochs works under the hood 2nd edition.pdf -------------------------------------------------------------------------------- /sfsite/Makefile: -------------------------------------------------------------------------------- 1 | ################################################################### 2 | # Makefile 3 | # $Id: Makefile,v 1.10 2004-01-12 21:33:23 cbothamy Exp $ 4 | # 5 | # Runs a cvs update on the source forge shell account. 6 | # This will only work if you are a developer on the Bochs 7 | # project, and have set up secure shell correctly. 8 | # 9 | ################################################################### 10 | 11 | SSH=ssh -x 12 | REMOTE_HOST=shell.sf.net 13 | BOCHS_PATH=/home/groups/b/bo/bochs 14 | HTDOCS=$(BOCHS_PATH)/htdocs 15 | 16 | remote_update:: 17 | sfuser=`whoami`; \ 18 | if test "`whoami`" = bryce; then sfuser=bdenney; fi; \ 19 | if test "`whoami`" = tbutler; then sfuser=uninet; fi; \ 20 | if test "`whoami`" = chris; then sfuser=cbothamy; fi; \ 21 | $(SSH) $$sfuser@$(REMOTE_HOST) "cd $(HTDOCS) && cvs update -Ad" 22 | 23 | do_commit:: 24 | cvs commit 25 | 26 | commit:: update do_commit remote_update 27 | 28 | update:: 29 | cvs update -A -d 30 | 31 | diff: 32 | cvs diff 33 | -------------------------------------------------------------------------------- /sfsite/README: -------------------------------------------------------------------------------- 1 | Sun Jun 17 00:30:54 EDT 2001 2 | 3 | I checked in most parts of the Bochs web site. Some subdirs are omitted 4 | for various reasons. For example the "data" directory (collection of 5 | tech specs) and guestos directory (disk images) are not checked into 6 | CVS because they are so large. If the files are big, binary, and 7 | are hardly ever revised, what's the point of version control on them? 8 | It will just clog up SF server and make updates take longer! 9 | 10 | Directories included in CVS: 11 | - docs-html (actually a checkout of bochs/docs-html) 12 | - images 13 | - includes 14 | - networking 15 | - testing-forms 16 | 17 | 18 | Directories not included in CVS: 19 | - xcf (what's that) 20 | - doc (updated by Michael when he does make webinst) 21 | - screenshot (contains screen shots) 22 | - tmp (misc stuff) 23 | - data (tech spcs) 24 | - images/.pics (not sure) 25 | - images/.xvpics (not sure) 26 | -------------------------------------------------------------------------------- /sfsite/VirtNoJit.pdf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/gamozolabs/applepie/d261bda376b8046ef0d4664cd20c83e3dfc104a6/sfsite/VirtNoJit.pdf -------------------------------------------------------------------------------- /sfsite/Virtualization_Without_Hardware_Final.pdf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/gamozolabs/applepie/d261bda376b8046ef0d4664cd20c83e3dfc104a6/sfsite/Virtualization_Without_Hardware_Final.pdf -------------------------------------------------------------------------------- /sfsite/default_page.php: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/gamozolabs/applepie/d261bda376b8046ef0d4664cd20c83e3dfc104a6/sfsite/default_page.php -------------------------------------------------------------------------------- /sfsite/favicon.ico: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/gamozolabs/applepie/d261bda376b8046ef0d4664cd20c83e3dfc104a6/sfsite/favicon.ico -------------------------------------------------------------------------------- /sfsite/images/bochs-ad.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/gamozolabs/applepie/d261bda376b8046ef0d4664cd20c83e3dfc104a6/sfsite/images/bochs-ad.gif -------------------------------------------------------------------------------- /sfsite/images/bochs-banner-community.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/gamozolabs/applepie/d261bda376b8046ef0d4664cd20c83e3dfc104a6/sfsite/images/bochs-banner-community.gif -------------------------------------------------------------------------------- /sfsite/images/bochs2_0.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/gamozolabs/applepie/d261bda376b8046ef0d4664cd20c83e3dfc104a6/sfsite/images/bochs2_0.gif -------------------------------------------------------------------------------- /sfsite/images/bochs2_0.psd: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/gamozolabs/applepie/d261bda376b8046ef0d4664cd20c83e3dfc104a6/sfsite/images/bochs2_0.psd -------------------------------------------------------------------------------- /sfsite/images/bochs2_1.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/gamozolabs/applepie/d261bda376b8046ef0d4664cd20c83e3dfc104a6/sfsite/images/bochs2_1.jpg -------------------------------------------------------------------------------- /sfsite/images/bochs2_1.psd: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/gamozolabs/applepie/d261bda376b8046ef0d4664cd20c83e3dfc104a6/sfsite/images/bochs2_1.psd -------------------------------------------------------------------------------- /sfsite/images/bochs2_2.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/gamozolabs/applepie/d261bda376b8046ef0d4664cd20c83e3dfc104a6/sfsite/images/bochs2_2.jpg -------------------------------------------------------------------------------- /sfsite/images/bochs2_3.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/gamozolabs/applepie/d261bda376b8046ef0d4664cd20c83e3dfc104a6/sfsite/images/bochs2_3.png -------------------------------------------------------------------------------- /sfsite/images/bochs2_4.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/gamozolabs/applepie/d261bda376b8046ef0d4664cd20c83e3dfc104a6/sfsite/images/bochs2_4.png -------------------------------------------------------------------------------- /sfsite/images/bochs2_5.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/gamozolabs/applepie/d261bda376b8046ef0d4664cd20c83e3dfc104a6/sfsite/images/bochs2_5.png -------------------------------------------------------------------------------- /sfsite/images/bochs2_6.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/gamozolabs/applepie/d261bda376b8046ef0d4664cd20c83e3dfc104a6/sfsite/images/bochs2_6.png -------------------------------------------------------------------------------- /sfsite/images/favicon.bmp: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/gamozolabs/applepie/d261bda376b8046ef0d4664cd20c83e3dfc104a6/sfsite/images/favicon.bmp -------------------------------------------------------------------------------- /sfsite/images/lgban-bg.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/gamozolabs/applepie/d261bda376b8046ef0d4664cd20c83e3dfc104a6/sfsite/images/lgban-bg.gif -------------------------------------------------------------------------------- /sfsite/images/lgban.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/gamozolabs/applepie/d261bda376b8046ef0d4664cd20c83e3dfc104a6/sfsite/images/lgban.gif -------------------------------------------------------------------------------- /sfsite/images/logo-ragged.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/gamozolabs/applepie/d261bda376b8046ef0d4664cd20c83e3dfc104a6/sfsite/images/logo-ragged.gif -------------------------------------------------------------------------------- /sfsite/images/logo.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/gamozolabs/applepie/d261bda376b8046ef0d4664cd20c83e3dfc104a6/sfsite/images/logo.gif -------------------------------------------------------------------------------- /sfsite/images/sm.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/gamozolabs/applepie/d261bda376b8046ef0d4664cd20c83e3dfc104a6/sfsite/images/sm.gif -------------------------------------------------------------------------------- /sfsite/images/smban.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/gamozolabs/applepie/d261bda376b8046ef0d4664cd20c83e3dfc104a6/sfsite/images/smban.gif -------------------------------------------------------------------------------- /sfsite/images/smblue.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/gamozolabs/applepie/d261bda376b8046ef0d4664cd20c83e3dfc104a6/sfsite/images/smblue.gif -------------------------------------------------------------------------------- /sfsite/includes/cright.txt: -------------------------------------------------------------------------------- 1 | © 2001-2017 The Bochs Project. See the project statistics here. 2 | 3 | -------------------------------------------------------------------------------- /sfsite/includes/footer.txt: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 |   
  
5 | 6 |
7 | 8 | SourceForge Logo 9 | 10 |
11 | 12 | Please send comments and questions concerning the site to Volker Ruppert.
13 | Web site feature requests and bug reports should be added to the Web site tracker.
14 | -------------------------------------------------------------------------------- /sfsite/includes/release.txt: -------------------------------------------------------------------------------- 1 | http://bochs.sourceforge.net/getcurrent.html 2 | -------------------------------------------------------------------------------- /sfsite/irc-20020407.html: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/gamozolabs/applepie/d261bda376b8046ef0d4664cd20c83e3dfc104a6/sfsite/irc-20020407.html -------------------------------------------------------------------------------- /sfsite/links.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | bochs: The Open Source IA-32 Emulation Project (Bochs Links) 4 | 5 | 6 | 7 | A Window, Tux, and the BSD Daemon 8 |
Bochs-related Links
9 | 10 |
    11 |
  • 12 | Ben Lunt's MTOOLS for win32. Mtools allows you to read and write files inside a DOS/Windows 13 | disk image file. For other platforms, visit the Mtools main site for source code. 14 |
  • 15 | Don Becker's Bochs-Win32 page 16 | contains binaries for Windows platforms. 17 |
  • 18 | Bochs-RFB, also by Don Becker, 19 | allows you to access the emulated system via the VNC Viewer from AT&T. 20 | Don's Bochs-RFB code is now integrated into Bochs as of version 1.2.pre1. 21 |
  • 22 | Christophe Bothamy has written an Open Source VGA BIOS, distributed under the LGPL. 23 |
  • 24 | BFE is a graphical debugger interface for 25 | Bochs by Brand Huntsman. 26 |
  • Georg Potthast has written a guide and tutorial for running Bochs on Windows. 27 |
28 | 29 | 30 | 31 | 32 | 33 | Last Modified on .
34 | 35 | 36 | 37 | 38 | 39 | -------------------------------------------------------------------------------- /sfsite/networking/README: -------------------------------------------------------------------------------- 1 | README was last updated Thu Jun 14 08:03:50 PDT 2001 2 | 3 | This directory contains information about Bochs networking, and our plans 4 | to improve it. 5 | 6 | A summary of the different networking plans under consideration: 7 | bochs-network-planning.txt 8 | 9 | Conversation between Peter and Bryce from 6/14/2001 with more details: 10 | peter_bryce_20010614.html 11 | 12 | Diagrams that Peter sketched to describe some possibile plans. 13 | host_only.gif describes plan #1 14 | pkt_filter.gif describes plan #2 15 | bridge.gif describes plan #5 16 | -------------------------------------------------------------------------------- /sfsite/networking/bridge.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/gamozolabs/applepie/d261bda376b8046ef0d4664cd20c83e3dfc104a6/sfsite/networking/bridge.gif -------------------------------------------------------------------------------- /sfsite/networking/host_only.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/gamozolabs/applepie/d261bda376b8046ef0d4664cd20c83e3dfc104a6/sfsite/networking/host_only.gif -------------------------------------------------------------------------------- /sfsite/networking/index.html: -------------------------------------------------------------------------------- 1 | 2 |
 3 | This file was last modified Thu Jun 14 08:11:43 PDT 2001
 4 | 
 5 | This directory contains information about Bochs networking, and our plans
 6 | to improve it.
 7 | 
 8 | A summary of the different networking plans under consideration:
 9 | bochs-network-planning.txt
10 | 
11 | Conversation between Peter and Bryce from 6/14/2001 with more details:
12 | peter_bryce_20010614.html
13 | 
14 | Diagrams that Peter sketched to describe some possibile plans.
15 | - host_only.gif     describes plan #1
16 | - pkt_filter.gif    describes plan #2
17 | - bridge.gif        describes plan #5
18 | 
19 | Other links to check out:
20 | User mode linux, networking page
21 | 
22 | Slirp which allows users with only a shell account to have PPP/(C)SLIP 
23 | access.  This might be used as one way to get bochs talking to the rest 
24 | of the world.
25 | 
26 | 
27 | 28 | -------------------------------------------------------------------------------- /sfsite/networking/pkt_filter.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/gamozolabs/applepie/d261bda376b8046ef0d4664cd20c83e3dfc104a6/sfsite/networking/pkt_filter.gif -------------------------------------------------------------------------------- /sfsite/searchresults.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 |
Bochs Site and Bug Search Bochs Developers Mailing List Search Bochs LXR Search
11 | 12 | RESULTS GO HERE. 13 | 14 |
15 | 16 | -------------------------------------------------------------------------------- /sfsite/testing-forms/form-00002.txt: -------------------------------------------------------------------------------- 1 | What is your name? 2 | [Danilo Paliani] 3 | 4 | What is your email address? 5 | [lab.village1@saritel.it] 6 | 7 | What type of hardware are you using, e.g. 500MHz Intel Celeron. 8 | [x86] 9 | 10 | What operating system are you using? Please be specific, e.g. 11 | Redhat Linux 6.2 with 2.2.16 kernel. 12 | [Solaris 7] 13 | 14 | What version of bochs are you using? 15 | [ ] I compiled it from 03/25/2000 snapshot 16 | [ ] I compiled it from 04/06/2001 bugfix snapshot 17 | [ ] I compiled it from 04/09/2001 bugfix snapshot 18 | [X] other source distribution from URL: [990708a] 19 | [ ] binary distribution from URL: [__] 20 | 21 | What guest operating system are you using inside bochs? 22 | [win95] 23 | 24 | Did the guest operating system boot successfully? 25 | [X] Yes 26 | [ ] No 27 | -------------------------------------------------------------------------------- /sfsite/testing-forms/form-00005.txt: -------------------------------------------------------------------------------- 1 | What is your name? 2 | [Kevin Lawton] 3 | 4 | What is your email address? 5 | [kevin@bochs.com] 6 | 7 | What type of hardware are you using, e.g. 500MHz Intel Celeron. 8 | [BeBox PPC] 9 | 10 | What operating system are you using? Please be specific, e.g. 11 | Redhat Linux 6.2 with 2.2.16 kernel. 12 | [BeOS PR2] 13 | 14 | What version of bochs are you using? 15 | [ ] I compiled it from 03/25/2000 snapshot 16 | [ ] I compiled it from 04/06/2001 bugfix snapshot 17 | [ ] I compiled it from 04/09/2001 bugfix snapshot 18 | [X] other source distribution from URL: [971118a] 19 | [ ] binary distribution from URL: [__] 20 | 21 | What compiler did you use? (Please include version.) 22 | [CodeWarrior] 23 | 24 | What guest operating system are you using inside bochs? 25 | [win95] 26 | 27 | Did the guest operating system boot successfully? 28 | [X] Yes 29 | [ ] No 30 | 31 | -------------------------------------------------------------------------------- /sfsite/testing-forms/form-00018.txt: -------------------------------------------------------------------------------- 1 | Date: 5/16/2001 2 | Tester: Chris Schmidt 3 | 4 | Version of Bochs: bochs-20010515 CVS snapshot 5 | Computer/Hardware/OS Used: 6 | AMD K-7 Athlon 650mhz, 384mb RAM. Slackware Linux 2.2.19 7 | OS Installed on Bochs: DOS 6.22 w/ Windows 3.1 8 | 9 | Settings in .bochsrc: 10 | megs: 128 11 | boot: c 12 | diskc: file=win31.img, cyl=900, heads=15, spt=17 (112MB Image) 13 | keyboard_serial_delay: 200 14 | floppy_command_delay: 500 15 | ips: 1500000 16 | vga_update_interval: 300000 17 | 18 | Bochs compiling information: No problems 19 | 20 | Installation Information: 21 | Giving bochs 128megs of RAM at it's disposal DOS 6.22 started up from boot 22 | disk and installed just fine, like any normal installation. When I went to 23 | install Windows 3.1 it copied all the files from the first and second disk, 24 | then said it was going into windows mode, and bochs died. The second time I 25 | tried it, it worked fine and Windows installed as normal. 26 | 27 | Type of mouse: PS/2 28 | 29 | Problems: 30 | The mouse is VERY jerky and tends to go to the top or bottom of the screen 31 | as you try to move it around. It's almost impossible to use the mouse. 32 | 33 | Usage details: 34 | Did not get much use out of it due to the mouse trouble and slowness of the 35 | OS itself. 36 | 37 | -------------------------------------------------------------------------------- /sfsite/testing-forms/plat-table.html: -------------------------------------------------------------------------------- 1 | The table entry you clicked comes from the 2 | supported platforms table 3 | in the Bochs documentation. A more detailed report is not available. 4 | -------------------------------------------------------------------------------- /sfsite/update-sites.txt: -------------------------------------------------------------------------------- 1 | This is a catalog of sites where we have submitted bochs. 2 | All in this list have Bryce's standard bochs password, which 3 | is written as 4 | 5 | -------------------------------------------------------------------------- 6 | winsite.com 7 | updated to bochs 1.2.1, jun 15 2001 8 | 9 | - Go to uploads.winsite.com 10 | - click on "if you already have a winsite software submission account" 11 | - email is "bryce.denney@bigfoot.com" password is 12 | - click on "replace existing program with new version" 13 | - update information and submit 14 | -------------------------------------------------------------------------- 15 | nonags.com 16 | I submitted 1.2 but I they haven't updated yet 17 | can't remember the password, but I have a few guesses :) 18 | -------------------------------------------------------------------------- 19 | www.icewalkers.com 20 | updated to 1.2.1, june 15 2001 21 | 22 | - At the top of the home page, find the Name and Password fields. 23 | - Type name "Bryce Denney" and password , then Login. 24 | - in the upper left corner, find the search text box and type bochs return. 25 | - click on update 26 | - update the download and redhat package URL 27 | - press submit 28 | -------------------------------------------------------------------------- 29 | tucows.com 30 | 31 | For 1.2.1 they updated for us! 32 | Go to tucows.com 33 | in the "Search Software library" blank type bochs return. 34 | This brings up bochs and also macbochs 35 | Click bochs 1.* 36 | Choose on a mirror site from list. 37 | You should see bochs on there. 38 | Down in the choices at bottom, choose "Submit Software" 39 | 40 | -------------------------------------------------------------------------------- /whvp_bindings/.gitignore: -------------------------------------------------------------------------------- 1 | /target 2 | **/*.rs.bk 3 | Cargo.lock 4 | -------------------------------------------------------------------------------- /whvp_bindings/Cargo.toml: -------------------------------------------------------------------------------- 1 | [package] 2 | name = "whvp_bindings" 3 | version = "0.1.0" 4 | authors = ["Brandon Falk "] 5 | edition = "2018" 6 | 7 | [dependencies] 8 | -------------------------------------------------------------------------------- /whvp_bindings/src/lib.rs: -------------------------------------------------------------------------------- 1 | #![allow(non_upper_case_globals, non_camel_case_types, non_snake_case)] 2 | 3 | pub mod winhvplatform; 4 | pub mod winhvemulation; 5 | --------------------------------------------------------------------------------