Started the port for MSVC native support.

This commit is contained in:
xorstream 2017-01-16 17:21:12 +11:00
parent 3095e5c510
commit 940c857987
5 changed files with 1788 additions and 0 deletions

View File

@ -0,0 +1,17 @@
/* This is a hand made version for MSVC support */
#define CONFIG_QEMU_CONFDIR "c:/Program Files/QEMU"
#define CONFIG_QEMU_DATADIR ""
#define CONFIG_QEMU_DOCDIR "c:/Program Files/QEMU"
#define CONFIG_QEMU_MODDIR "c:/Program Files/QEMU/lib"
#define CONFIG_QEMU_HELPERDIR "c:/Program Files/QEMU/libexec"
#define HOST_I386 1
#define CONFIG_WIN32 1
#define CONFIG_FILEVERSION 2,2,1,0
#define CONFIG_PRODUCTVERSION 2,2,1,0
#define QEMU_VERSION "2.2.1"
#define QEMU_PKGVERSION ""
#define CONFIG_ZERO_MALLOC 1
#define CONFIG_CPUID_H 1
#define CONFIG_THREAD_SETNAME_BYTHREAD 1
#define CONFIG_PTHREAD_SETNAME_NP 1
#define HOST_DSOSUF ".dll"

View File

@ -0,0 +1,20 @@

Microsoft Visual Studio Solution File, Format Version 12.00
# Visual Studio 2012
Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "unicorn", "unicorn\unicorn.vcxproj", "{B6EFD6D7-C2D4-4FBB-B363-2E08CE09CC96}"
EndProject
Global
GlobalSection(SolutionConfigurationPlatforms) = preSolution
Debug|Win32 = Debug|Win32
Release|Win32 = Release|Win32
EndGlobalSection
GlobalSection(ProjectConfigurationPlatforms) = postSolution
{B6EFD6D7-C2D4-4FBB-B363-2E08CE09CC96}.Debug|Win32.ActiveCfg = Debug|Win32
{B6EFD6D7-C2D4-4FBB-B363-2E08CE09CC96}.Debug|Win32.Build.0 = Debug|Win32
{B6EFD6D7-C2D4-4FBB-B363-2E08CE09CC96}.Release|Win32.ActiveCfg = Release|Win32
{B6EFD6D7-C2D4-4FBB-B363-2E08CE09CC96}.Release|Win32.Build.0 = Release|Win32
EndGlobalSection
GlobalSection(SolutionProperties) = preSolution
HideSolutionNode = FALSE
EndGlobalSection
EndGlobal

View File

@ -0,0 +1,398 @@
<?xml version="1.0" encoding="utf-8"?>
<Project DefaultTargets="Build" ToolsVersion="4.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
<ItemGroup Label="ProjectConfigurations">
<ProjectConfiguration Include="Debug|Win32">
<Configuration>Debug</Configuration>
<Platform>Win32</Platform>
</ProjectConfiguration>
<ProjectConfiguration Include="Release|Win32">
<Configuration>Release</Configuration>
<Platform>Win32</Platform>
</ProjectConfiguration>
</ItemGroup>
<ItemGroup>
<ClCompile Include="..\..\..\list.c" />
<ClCompile Include="..\..\..\qemu\accel.c" />
<ClCompile Include="..\..\..\qemu\cpu-exec.c" />
<ClCompile Include="..\..\..\qemu\cpus.c" />
<ClCompile Include="..\..\..\qemu\cputlb.c" />
<ClCompile Include="..\..\..\qemu\exec.c" />
<ClCompile Include="..\..\..\qemu\fpu\softfloat.c" />
<ClCompile Include="..\..\..\qemu\glib_compat.c" />
<ClCompile Include="..\..\..\qemu\hw\arm\tosa.c" />
<ClCompile Include="..\..\..\qemu\hw\arm\virt.c" />
<ClCompile Include="..\..\..\qemu\hw\core\machine.c" />
<ClCompile Include="..\..\..\qemu\hw\core\qdev.c" />
<ClCompile Include="..\..\..\qemu\hw\i386\pc.c" />
<ClCompile Include="..\..\..\qemu\hw\i386\pc_piix.c" />
<ClCompile Include="..\..\..\qemu\hw\intc\apic.c" />
<ClCompile Include="..\..\..\qemu\hw\intc\apic_common.c" />
<ClCompile Include="..\..\..\qemu\hw\m68k\dummy_m68k.c" />
<ClCompile Include="..\..\..\qemu\hw\mips\addr.c" />
<ClCompile Include="..\..\..\qemu\hw\mips\cputimer.c" />
<ClCompile Include="..\..\..\qemu\hw\mips\mips_int.c" />
<ClCompile Include="..\..\..\qemu\hw\mips\mips_r4k.c" />
<ClCompile Include="..\..\..\qemu\hw\sparc64\sun4u.c" />
<ClCompile Include="..\..\..\qemu\hw\sparc\leon3.c" />
<ClCompile Include="..\..\..\qemu\hw\sparc\sun4m.c" />
<ClCompile Include="..\..\..\qemu\ioport.c" />
<ClCompile Include="..\..\..\qemu\memory.c" />
<ClCompile Include="..\..\..\qemu\memory_mapping.c" />
<ClCompile Include="..\..\..\qemu\qapi-types.c" />
<ClCompile Include="..\..\..\qemu\qapi-visit.c" />
<ClCompile Include="..\..\..\qemu\qapi\qapi-dealloc-visitor.c" />
<ClCompile Include="..\..\..\qemu\qapi\qapi-visit-core.c" />
<ClCompile Include="..\..\..\qemu\qapi\qmp-input-visitor.c" />
<ClCompile Include="..\..\..\qemu\qapi\qmp-output-visitor.c" />
<ClCompile Include="..\..\..\qemu\qapi\string-input-visitor.c" />
<ClCompile Include="..\..\..\qemu\qemu-log.c" />
<ClCompile Include="..\..\..\qemu\qemu-timer.c" />
<ClCompile Include="..\..\..\qemu\qobject\qbool.c" />
<ClCompile Include="..\..\..\qemu\qobject\qdict.c" />
<ClCompile Include="..\..\..\qemu\qobject\qerror.c" />
<ClCompile Include="..\..\..\qemu\qobject\qfloat.c" />
<ClCompile Include="..\..\..\qemu\qobject\qint.c" />
<ClCompile Include="..\..\..\qemu\qobject\qlist.c" />
<ClCompile Include="..\..\..\qemu\qobject\qstring.c" />
<ClCompile Include="..\..\..\qemu\qom\container.c" />
<ClCompile Include="..\..\..\qemu\qom\cpu.c" />
<ClCompile Include="..\..\..\qemu\qom\object.c" />
<ClCompile Include="..\..\..\qemu\qom\qom-qobject.c" />
<ClCompile Include="..\..\..\qemu\target-arm\arm-semi.c" />
<ClCompile Include="..\..\..\qemu\target-arm\cpu.c" />
<ClCompile Include="..\..\..\qemu\target-arm\cpu64.c" />
<ClCompile Include="..\..\..\qemu\target-arm\crypto_helper.c" />
<ClCompile Include="..\..\..\qemu\target-arm\helper-a64.c" />
<ClCompile Include="..\..\..\qemu\target-arm\helper.c" />
<ClCompile Include="..\..\..\qemu\target-arm\iwmmxt_helper.c" />
<ClCompile Include="..\..\..\qemu\target-arm\kvm-stub.c" />
<ClCompile Include="..\..\..\qemu\target-arm\neon_helper.c" />
<ClCompile Include="..\..\..\qemu\target-arm\op_helper.c" />
<ClCompile Include="..\..\..\qemu\target-arm\psci.c" />
<ClCompile Include="..\..\..\qemu\target-arm\translate-a64.c" />
<ClCompile Include="..\..\..\qemu\target-arm\translate.c" />
<ClCompile Include="..\..\..\qemu\target-arm\unicorn_aarch64.c" />
<ClCompile Include="..\..\..\qemu\target-arm\unicorn_arm.c" />
<ClCompile Include="..\..\..\qemu\target-i386\arch_memory_mapping.c" />
<ClCompile Include="..\..\..\qemu\target-i386\cc_helper.c" />
<ClCompile Include="..\..\..\qemu\target-i386\cpu.c" />
<ClCompile Include="..\..\..\qemu\target-i386\excp_helper.c" />
<ClCompile Include="..\..\..\qemu\target-i386\fpu_helper.c" />
<ClCompile Include="..\..\..\qemu\target-i386\helper.c" />
<ClCompile Include="..\..\..\qemu\target-i386\int_helper.c" />
<ClCompile Include="..\..\..\qemu\target-i386\mem_helper.c" />
<ClCompile Include="..\..\..\qemu\target-i386\misc_helper.c" />
<ClCompile Include="..\..\..\qemu\target-i386\seg_helper.c" />
<ClCompile Include="..\..\..\qemu\target-i386\smm_helper.c" />
<ClCompile Include="..\..\..\qemu\target-i386\svm_helper.c" />
<ClCompile Include="..\..\..\qemu\target-i386\translate.c" />
<ClCompile Include="..\..\..\qemu\target-i386\unicorn.c" />
<ClCompile Include="..\..\..\qemu\target-m68k\cpu.c" />
<ClCompile Include="..\..\..\qemu\target-m68k\helper.c" />
<ClCompile Include="..\..\..\qemu\target-m68k\m68k-semi.c" />
<ClCompile Include="..\..\..\qemu\target-m68k\op_helper.c" />
<ClCompile Include="..\..\..\qemu\target-m68k\translate.c" />
<ClCompile Include="..\..\..\qemu\target-m68k\unicorn.c" />
<ClCompile Include="..\..\..\qemu\target-mips\cpu.c" />
<ClCompile Include="..\..\..\qemu\target-mips\dsp_helper.c" />
<ClCompile Include="..\..\..\qemu\target-mips\helper.c" />
<ClCompile Include="..\..\..\qemu\target-mips\lmi_helper.c" />
<ClCompile Include="..\..\..\qemu\target-mips\msa_helper.c" />
<ClCompile Include="..\..\..\qemu\target-mips\op_helper.c" />
<ClCompile Include="..\..\..\qemu\target-mips\translate.c" />
<ClCompile Include="..\..\..\qemu\target-mips\translate_init.c" />
<ClCompile Include="..\..\..\qemu\target-mips\unicorn.c" />
<ClCompile Include="..\..\..\qemu\target-sparc\cc_helper.c" />
<ClCompile Include="..\..\..\qemu\target-sparc\cpu.c" />
<ClCompile Include="..\..\..\qemu\target-sparc\fop_helper.c" />
<ClCompile Include="..\..\..\qemu\target-sparc\gdbstub.c" />
<ClCompile Include="..\..\..\qemu\target-sparc\helper.c" />
<ClCompile Include="..\..\..\qemu\target-sparc\int32_helper.c" />
<ClCompile Include="..\..\..\qemu\target-sparc\int64_helper.c" />
<ClCompile Include="..\..\..\qemu\target-sparc\ldst_helper.c" />
<ClCompile Include="..\..\..\qemu\target-sparc\machine.c" />
<ClCompile Include="..\..\..\qemu\target-sparc\mmu_helper.c" />
<ClCompile Include="..\..\..\qemu\target-sparc\translate.c" />
<ClCompile Include="..\..\..\qemu\target-sparc\unicorn.c" />
<ClCompile Include="..\..\..\qemu\target-sparc\unicorn64.c" />
<ClCompile Include="..\..\..\qemu\target-sparc\vis_helper.c" />
<ClCompile Include="..\..\..\qemu\target-sparc\win_helper.c" />
<ClCompile Include="..\..\..\qemu\tcg-runtime.c" />
<ClCompile Include="..\..\..\qemu\tcg\aarch64\tcg-target.c" />
<ClCompile Include="..\..\..\qemu\tcg\arm\tcg-target.c" />
<ClCompile Include="..\..\..\qemu\tcg\i386\tcg-target.c" />
<ClCompile Include="..\..\..\qemu\tcg\ia64\tcg-target.c" />
<ClCompile Include="..\..\..\qemu\tcg\mips\tcg-target.c" />
<ClCompile Include="..\..\..\qemu\tcg\optimize.c" />
<ClCompile Include="..\..\..\qemu\tcg\ppc\tcg-target.c" />
<ClCompile Include="..\..\..\qemu\tcg\s390\tcg-target.c" />
<ClCompile Include="..\..\..\qemu\tcg\sparc\tcg-target.c" />
<ClCompile Include="..\..\..\qemu\tcg\tcg.c" />
<ClCompile Include="..\..\..\qemu\translate-all.c" />
<ClCompile Include="..\..\..\qemu\util\aes.c" />
<ClCompile Include="..\..\..\qemu\util\bitmap.c" />
<ClCompile Include="..\..\..\qemu\util\bitops.c" />
<ClCompile Include="..\..\..\qemu\util\crc32c.c" />
<ClCompile Include="..\..\..\qemu\util\cutils.c" />
<ClCompile Include="..\..\..\qemu\util\error.c" />
<ClCompile Include="..\..\..\qemu\util\getauxval.c" />
<ClCompile Include="..\..\..\qemu\util\host-utils.c" />
<ClCompile Include="..\..\..\qemu\util\module.c" />
<ClCompile Include="..\..\..\qemu\util\oslib-win32.c" />
<ClCompile Include="..\..\..\qemu\util\qemu-error.c" />
<ClCompile Include="..\..\..\qemu\util\qemu-thread-win32.c" />
<ClCompile Include="..\..\..\qemu\util\qemu-timer-common.c" />
<ClCompile Include="..\..\..\qemu\vl.c" />
<ClCompile Include="..\..\..\uc.c" />
</ItemGroup>
<ItemGroup>
<ClInclude Include="..\..\..\include\list.h" />
<ClInclude Include="..\..\..\include\platform.h" />
<ClInclude Include="..\..\..\include\qemu.h" />
<ClInclude Include="..\..\..\include\uc_priv.h" />
<ClInclude Include="..\..\..\include\unicorn\arm.h" />
<ClInclude Include="..\..\..\include\unicorn\arm64.h" />
<ClInclude Include="..\..\..\include\unicorn\m68k.h" />
<ClInclude Include="..\..\..\include\unicorn\mips.h" />
<ClInclude Include="..\..\..\include\unicorn\sparc.h" />
<ClInclude Include="..\..\..\include\unicorn\unicorn.h" />
<ClInclude Include="..\..\..\include\unicorn\x86.h" />
<ClInclude Include="..\..\..\qemu\aarch64-softmmu\config-target.h" />
<ClInclude Include="..\..\..\qemu\aarch64.h" />
<ClInclude Include="..\..\..\qemu\arm-softmmu\config-target.h" />
<ClInclude Include="..\..\..\qemu\arm.h" />
<ClInclude Include="..\..\..\qemu\config-host.h" />
<ClInclude Include="..\..\..\qemu\fpu\softfloat-macros.h" />
<ClInclude Include="..\..\..\qemu\fpu\softfloat-specialize.h" />
<ClInclude Include="..\..\..\qemu\include\config.h" />
<ClInclude Include="..\..\..\qemu\include\elf.h" />
<ClInclude Include="..\..\..\qemu\include\exec\address-spaces.h" />
<ClInclude Include="..\..\..\qemu\include\exec\cpu-all.h" />
<ClInclude Include="..\..\..\qemu\include\exec\cpu-common.h" />
<ClInclude Include="..\..\..\qemu\include\exec\cpu-defs.h" />
<ClInclude Include="..\..\..\qemu\include\exec\cputlb.h" />
<ClInclude Include="..\..\..\qemu\include\exec\cpu_ldst.h" />
<ClInclude Include="..\..\..\qemu\include\exec\cpu_ldst_template.h" />
<ClInclude Include="..\..\..\qemu\include\exec\exec-all.h" />
<ClInclude Include="..\..\..\qemu\include\exec\gen-icount.h" />
<ClInclude Include="..\..\..\qemu\include\exec\helper-gen.h" />
<ClInclude Include="..\..\..\qemu\include\exec\helper-head.h" />
<ClInclude Include="..\..\..\qemu\include\exec\helper-proto.h" />
<ClInclude Include="..\..\..\qemu\include\exec\helper-tcg.h" />
<ClInclude Include="..\..\..\qemu\include\exec\hwaddr.h" />
<ClInclude Include="..\..\..\qemu\include\exec\ioport.h" />
<ClInclude Include="..\..\..\qemu\include\exec\memory-internal.h" />
<ClInclude Include="..\..\..\qemu\include\exec\memory.h" />
<ClInclude Include="..\..\..\qemu\include\exec\poison.h" />
<ClInclude Include="..\..\..\qemu\include\exec\ram_addr.h" />
<ClInclude Include="..\..\..\qemu\include\exec\softmmu-semi.h" />
<ClInclude Include="..\..\..\qemu\include\exec\spinlock.h" />
<ClInclude Include="..\..\..\qemu\include\fpu\softfloat.h" />
<ClInclude Include="..\..\..\qemu\include\glib_compat.h" />
<ClInclude Include="..\..\..\qemu\include\hw\arm\arm.h" />
<ClInclude Include="..\..\..\qemu\include\hw\boards.h" />
<ClInclude Include="..\..\..\qemu\include\hw\cpu\icc_bus.h" />
<ClInclude Include="..\..\..\qemu\include\hw\hw.h" />
<ClInclude Include="..\..\..\qemu\include\hw\i386\apic.h" />
<ClInclude Include="..\..\..\qemu\include\hw\i386\apic_internal.h" />
<ClInclude Include="..\..\..\qemu\include\hw\i386\pc.h" />
<ClInclude Include="..\..\..\qemu\include\hw\irq.h" />
<ClInclude Include="..\..\..\qemu\include\hw\m68k\m68k.h" />
<ClInclude Include="..\..\..\qemu\include\hw\m68k\mcf.h" />
<ClInclude Include="..\..\..\qemu\include\hw\mips\bios.h" />
<ClInclude Include="..\..\..\qemu\include\hw\mips\cpudevs.h" />
<ClInclude Include="..\..\..\qemu\include\hw\mips\mips.h" />
<ClInclude Include="..\..\..\qemu\include\hw\qdev-core.h" />
<ClInclude Include="..\..\..\qemu\include\hw\qdev.h" />
<ClInclude Include="..\..\..\qemu\include\hw\sparc\grlib.h" />
<ClInclude Include="..\..\..\qemu\include\hw\sparc\sparc.h" />
<ClInclude Include="..\..\..\qemu\include\hw\sparc\sparc32_dma.h" />
<ClInclude Include="..\..\..\qemu\include\hw\sparc\sun4m.h" />
<ClInclude Include="..\..\..\qemu\include\qapi\dealloc-visitor.h" />
<ClInclude Include="..\..\..\qemu\include\qapi\error.h" />
<ClInclude Include="..\..\..\qemu\include\qapi\opts-visitor.h" />
<ClInclude Include="..\..\..\qemu\include\qapi\qmp-input-visitor.h" />
<ClInclude Include="..\..\..\qemu\include\qapi\qmp-output-visitor.h" />
<ClInclude Include="..\..\..\qemu\include\qapi\qmp\qbool.h" />
<ClInclude Include="..\..\..\qemu\include\qapi\qmp\qdict.h" />
<ClInclude Include="..\..\..\qemu\include\qapi\qmp\qerror.h" />
<ClInclude Include="..\..\..\qemu\include\qapi\qmp\qfloat.h" />
<ClInclude Include="..\..\..\qemu\include\qapi\qmp\qint.h" />
<ClInclude Include="..\..\..\qemu\include\qapi\qmp\qjson.h" />
<ClInclude Include="..\..\..\qemu\include\qapi\qmp\qlist.h" />
<ClInclude Include="..\..\..\qemu\include\qapi\qmp\qobject.h" />
<ClInclude Include="..\..\..\qemu\include\qapi\qmp\qstring.h" />
<ClInclude Include="..\..\..\qemu\include\qapi\qmp\types.h" />
<ClInclude Include="..\..\..\qemu\include\qapi\string-input-visitor.h" />
<ClInclude Include="..\..\..\qemu\include\qapi\visitor-impl.h" />
<ClInclude Include="..\..\..\qemu\include\qapi\visitor.h" />
<ClInclude Include="..\..\..\qemu\include\qemu-common.h" />
<ClInclude Include="..\..\..\qemu\include\qemu\aes.h" />
<ClInclude Include="..\..\..\qemu\include\qemu\atomic.h" />
<ClInclude Include="..\..\..\qemu\include\qemu\bitmap.h" />
<ClInclude Include="..\..\..\qemu\include\qemu\bitops.h" />
<ClInclude Include="..\..\..\qemu\include\qemu\bswap.h" />
<ClInclude Include="..\..\..\qemu\include\qemu\compiler.h" />
<ClInclude Include="..\..\..\qemu\include\qemu\crc32c.h" />
<ClInclude Include="..\..\..\qemu\include\qemu\host-utils.h" />
<ClInclude Include="..\..\..\qemu\include\qemu\int128.h" />
<ClInclude Include="..\..\..\qemu\include\qemu\log.h" />
<ClInclude Include="..\..\..\qemu\include\qemu\module.h" />
<ClInclude Include="..\..\..\qemu\include\qemu\notify.h" />
<ClInclude Include="..\..\..\qemu\include\qemu\osdep.h" />
<ClInclude Include="..\..\..\qemu\include\qemu\queue.h" />
<ClInclude Include="..\..\..\qemu\include\qemu\range.h" />
<ClInclude Include="..\..\..\qemu\include\qemu\thread-posix.h" />
<ClInclude Include="..\..\..\qemu\include\qemu\thread-win32.h" />
<ClInclude Include="..\..\..\qemu\include\qemu\thread.h" />
<ClInclude Include="..\..\..\qemu\include\qemu\timer.h" />
<ClInclude Include="..\..\..\qemu\include\qemu\typedefs.h" />
<ClInclude Include="..\..\..\qemu\include\qom\cpu.h" />
<ClInclude Include="..\..\..\qemu\include\qom\object.h" />
<ClInclude Include="..\..\..\qemu\include\qom\qom-qobject.h" />
<ClInclude Include="..\..\..\qemu\include\sysemu\accel.h" />
<ClInclude Include="..\..\..\qemu\include\sysemu\cpus.h" />
<ClInclude Include="..\..\..\qemu\include\sysemu\memory_mapping.h" />
<ClInclude Include="..\..\..\qemu\include\sysemu\os-win32.h" />
<ClInclude Include="..\..\..\qemu\include\sysemu\sysemu.h" />
<ClInclude Include="..\..\..\qemu\m68k-softmmu\config-target.h" />
<ClInclude Include="..\..\..\qemu\m68k.h" />
<ClInclude Include="..\..\..\qemu\mips-softmmu\config-target.h" />
<ClInclude Include="..\..\..\qemu\mips.h" />
<ClInclude Include="..\..\..\qemu\mips64-softmmu\config-target.h" />
<ClInclude Include="..\..\..\qemu\mips64.h" />
<ClInclude Include="..\..\..\qemu\mips64el-softmmu\config-target.h" />
<ClInclude Include="..\..\..\qemu\mips64el.h" />
<ClInclude Include="..\..\..\qemu\mipsel-softmmu\config-target.h" />
<ClInclude Include="..\..\..\qemu\mipsel.h" />
<ClInclude Include="..\..\..\qemu\powerpc.h" />
<ClInclude Include="..\..\..\qemu\qapi-types.h" />
<ClInclude Include="..\..\..\qemu\qapi-visit.h" />
<ClInclude Include="..\..\..\qemu\softmmu_template.h" />
<ClInclude Include="..\..\..\qemu\sparc-softmmu\config-target.h" />
<ClInclude Include="..\..\..\qemu\sparc.h" />
<ClInclude Include="..\..\..\qemu\sparc64-softmmu\config-target.h" />
<ClInclude Include="..\..\..\qemu\sparc64.h" />
<ClInclude Include="..\..\..\qemu\target-arm\arm_ldst.h" />
<ClInclude Include="..\..\..\qemu\target-arm\cpu-qom.h" />
<ClInclude Include="..\..\..\qemu\target-arm\cpu.h" />
<ClInclude Include="..\..\..\qemu\target-arm\helper-a64.h" />
<ClInclude Include="..\..\..\qemu\target-arm\helper.h" />
<ClInclude Include="..\..\..\qemu\target-arm\internals.h" />
<ClInclude Include="..\..\..\qemu\target-arm\kvm-consts.h" />
<ClInclude Include="..\..\..\qemu\target-arm\kvm_arm.h" />
<ClInclude Include="..\..\..\qemu\target-arm\op_addsub.h" />
<ClInclude Include="..\..\..\qemu\target-arm\translate.h" />
<ClInclude Include="..\..\..\qemu\target-arm\unicorn.h" />
<ClInclude Include="..\..\..\qemu\target-i386\cc_helper_template.h" />
<ClInclude Include="..\..\..\qemu\target-i386\cpu-qom.h" />
<ClInclude Include="..\..\..\qemu\target-i386\cpu.h" />
<ClInclude Include="..\..\..\qemu\target-i386\helper.h" />
<ClInclude Include="..\..\..\qemu\target-i386\ops_sse.h" />
<ClInclude Include="..\..\..\qemu\target-i386\ops_sse_header.h" />
<ClInclude Include="..\..\..\qemu\target-i386\shift_helper_template.h" />
<ClInclude Include="..\..\..\qemu\target-i386\svm.h" />
<ClInclude Include="..\..\..\qemu\target-i386\topology.h" />
<ClInclude Include="..\..\..\qemu\target-i386\unicorn.h" />
<ClInclude Include="..\..\..\qemu\target-m68k\cpu-qom.h" />
<ClInclude Include="..\..\..\qemu\target-m68k\cpu.h" />
<ClInclude Include="..\..\..\qemu\target-m68k\helper.h" />
<ClInclude Include="..\..\..\qemu\target-m68k\m68k-qreg.h" />
<ClInclude Include="..\..\..\qemu\target-m68k\unicorn.h" />
<ClInclude Include="..\..\..\qemu\target-mips\cpu-qom.h" />
<ClInclude Include="..\..\..\qemu\target-mips\cpu.h" />
<ClInclude Include="..\..\..\qemu\target-mips\helper.h" />
<ClInclude Include="..\..\..\qemu\target-mips\kvm_mips.h" />
<ClInclude Include="..\..\..\qemu\target-mips\mips-defs.h" />
<ClInclude Include="..\..\..\qemu\target-mips\unicorn.h" />
<ClInclude Include="..\..\..\qemu\target-sparc\cpu-qom.h" />
<ClInclude Include="..\..\..\qemu\target-sparc\cpu.h" />
<ClInclude Include="..\..\..\qemu\target-sparc\helper.h" />
<ClInclude Include="..\..\..\qemu\target-sparc\unicorn.h" />
<ClInclude Include="..\..\..\qemu\tcg\aarch64\tcg-target.h" />
<ClInclude Include="..\..\..\qemu\tcg\arm\tcg-target.h" />
<ClInclude Include="..\..\..\qemu\tcg\i386\tcg-target.h" />
<ClInclude Include="..\..\..\qemu\tcg\ia64\tcg-target.h" />
<ClInclude Include="..\..\..\qemu\tcg\mips\tcg-target.h" />
<ClInclude Include="..\..\..\qemu\tcg\ppc\tcg-target.h" />
<ClInclude Include="..\..\..\qemu\tcg\s390\tcg-target.h" />
<ClInclude Include="..\..\..\qemu\tcg\sparc\tcg-target.h" />
<ClInclude Include="..\..\..\qemu\tcg\tcg-be-ldst.h" />
<ClInclude Include="..\..\..\qemu\tcg\tcg-be-null.h" />
<ClInclude Include="..\..\..\qemu\tcg\tcg-op.h" />
<ClInclude Include="..\..\..\qemu\tcg\tcg-opc.h" />
<ClInclude Include="..\..\..\qemu\tcg\tcg-runtime.h" />
<ClInclude Include="..\..\..\qemu\tcg\tcg.h" />
<ClInclude Include="..\..\..\qemu\translate-all.h" />
<ClInclude Include="..\..\..\qemu\unicorn_common.h" />
<ClInclude Include="..\..\..\qemu\vl.h" />
<ClInclude Include="..\..\..\qemu\x86_64-softmmu\config-target.h" />
<ClInclude Include="..\..\..\qemu\x86_64.h" />
</ItemGroup>
<PropertyGroup Label="Globals">
<ProjectGuid>{B6EFD6D7-C2D4-4FBB-B363-2E08CE09CC96}</ProjectGuid>
<Keyword>Win32Proj</Keyword>
<RootNamespace>unicorn</RootNamespace>
</PropertyGroup>
<Import Project="$(VCTargetsPath)\Microsoft.Cpp.Default.props" />
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'" Label="Configuration">
<ConfigurationType>StaticLibrary</ConfigurationType>
<UseDebugLibraries>true</UseDebugLibraries>
<PlatformToolset>v110_xp</PlatformToolset>
<CharacterSet>MultiByte</CharacterSet>
</PropertyGroup>
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|Win32'" Label="Configuration">
<ConfigurationType>StaticLibrary</ConfigurationType>
<UseDebugLibraries>false</UseDebugLibraries>
<PlatformToolset>v110_xp</PlatformToolset>
<WholeProgramOptimization>true</WholeProgramOptimization>
<CharacterSet>MultiByte</CharacterSet>
</PropertyGroup>
<Import Project="$(VCTargetsPath)\Microsoft.Cpp.props" />
<ImportGroup Label="ExtensionSettings">
</ImportGroup>
<ImportGroup Label="PropertySheets" Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">
<Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />
</ImportGroup>
<ImportGroup Label="PropertySheets" Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">
<Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />
</ImportGroup>
<PropertyGroup Label="UserMacros" />
<PropertyGroup />
<ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">
<ClCompile>
<PrecompiledHeader>
</PrecompiledHeader>
<WarningLevel>Level3</WarningLevel>
<Optimization>Disabled</Optimization>
<PreprocessorDefinitions>WIN32;_DEBUG;_LIB;%(PreprocessorDefinitions);_CRT_SECURE_NO_WARNINGS;inline=__inline;__func__=__FUNCTION__</PreprocessorDefinitions>
<RuntimeLibrary>MultiThreadedDebug</RuntimeLibrary>
<AdditionalIncludeDirectories>../../..;../../../include;../../../qemu;../../../qemu/include;../../../qemu/tcg;</AdditionalIncludeDirectories>
</ClCompile>
<Link>
<SubSystem>Windows</SubSystem>
<GenerateDebugInformation>true</GenerateDebugInformation>
</Link>
</ItemDefinitionGroup>
<ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">
<ClCompile>
<WarningLevel>Level3</WarningLevel>
<PrecompiledHeader>
</PrecompiledHeader>
<Optimization>MaxSpeed</Optimization>
<FunctionLevelLinking>true</FunctionLevelLinking>
<IntrinsicFunctions>true</IntrinsicFunctions>
<PreprocessorDefinitions>WIN32;NDEBUG;_LIB;%(PreprocessorDefinitions);_CRT_SECURE_NO_WARNINGS;;inline=__inline;__func__=__FUNCTION__</PreprocessorDefinitions>
<RuntimeLibrary>MultiThreadedDebug</RuntimeLibrary>
</ClCompile>
<Link>
<SubSystem>Windows</SubSystem>
<GenerateDebugInformation>true</GenerateDebugInformation>
<EnableCOMDATFolding>true</EnableCOMDATFolding>
<OptimizeReferences>true</OptimizeReferences>
</Link>
</ItemDefinitionGroup>
<Import Project="$(VCTargetsPath)\Microsoft.Cpp.targets" />
<ImportGroup Label="ExtensionTargets">
</ImportGroup>
</Project>

File diff suppressed because it is too large Load Diff

250
include/platform.h Normal file
View File

@ -0,0 +1,250 @@
/*
This file is primarily to support header files that are missing in MSVC and other non-standard compilers.
*/
#ifndef UNICORN_PLATFORM_H
#define UNICORN_PLATFORM_H
/*
These are the various MSVC versions as given by _MSC_VER:
MSVC++ 14.0 _MSC_VER == 1900 (Visual Studio 2015)
MSVC++ 12.0 _MSC_VER == 1800 (Visual Studio 2013)
MSVC++ 11.0 _MSC_VER == 1700 (Visual Studio 2012)
MSVC++ 10.0 _MSC_VER == 1600 (Visual Studio 2010)
MSVC++ 9.0 _MSC_VER == 1500 (Visual Studio 2008)
MSVC++ 8.0 _MSC_VER == 1400 (Visual Studio 2005)
MSVC++ 7.1 _MSC_VER == 1310 (Visual Studio 2003)
MSVC++ 7.0 _MSC_VER == 1300
MSVC++ 6.0 _MSC_VER == 1200
MSVC++ 5.0 _MSC_VER == 1100
*/
#define MSC_VER_VS2003 1310
#define MSC_VER_VS2005 1400
#define MSC_VER_VS2008 1500
#define MSC_VER_VS2010 1600
#define MSC_VER_VS2012 1700
#define MSC_VER_VS2013 1800
#define MSC_VER_VS2015 1900
// handle stdbool.h compatibility
#if !defined(__CYGWIN__) && !defined(__MINGW32__) && !defined(__MINGW64__) && (defined (WIN32) || defined (WIN64) || defined (_WIN32) || defined (_WIN64))
// MSVC
// stdbool.h
#if (_MSC_VER < MSC_VER_VS2013) || defined(_KERNEL_MODE)
// this system does not have stdbool.h
#ifndef __cplusplus
typedef unsigned char bool;
#define false 0
#define true 1
#endif // __cplusplus
#else
// VisualStudio 2013+ -> C99 is supported
#include <stdbool.h>
#endif // (_MSC_VER < MSC_VER_VS2013) || defined(_KERNEL_MODE)
#else
// not MSVC -> C99 is supported
#include <stdbool.h>
#endif // !defined(__CYGWIN__) && !defined(__MINGW32__) && !defined(__MINGW64__) && (defined (WIN32) || defined (WIN64) || defined (_WIN32) || defined (_WIN64))
// handle stdint.h compatibility
#if defined(_WIN32_WCE) && (_WIN32_WCE < 0x800)
#include "windowsce/stdint.h"
#endif // defined(_WIN32_WCE) && (_WIN32_WCE < 0x800)
#if (defined(_MSC_VER) && (_MSC_VER < MSC_VER_VS2010)) || defined(_KERNEL_MODE)
// this system does not have stdint.h
typedef signed char int8_t;
typedef signed short int16_t;
typedef signed int int32_t;
typedef unsigned char uint8_t;
typedef unsigned short uint16_t;
typedef unsigned int uint32_t;
typedef signed long long int64_t;
typedef unsigned long long uint64_t;
#ifndef _INTPTR_T_DEFINED
#define _INTPTR_T_DEFINED
#ifdef _WIN64
typedef long long intptr_t;
#else /* _WIN64 */
typedef _W64 int intptr_t;
#endif /* _WIN64 */
#endif /* _INTPTR_T_DEFINED */
#ifndef _UINTPTR_T_DEFINED
#define _UINTPTR_T_DEFINED
#ifdef _WIN64
typedef unsigned long long uintptr_t;
#else /* _WIN64 */
typedef _W64 unsigned int uintptr_t;
#endif /* _WIN64 */
#endif /* _UINTPTR_T_DEFINED */
#define INT8_MIN (-127i8 - 1)
#define INT16_MIN (-32767i16 - 1)
#define INT32_MIN (-2147483647i32 - 1)
#define INT64_MIN (-9223372036854775807i64 - 1)
#define INT8_MAX 127i8
#define INT16_MAX 32767i16
#define INT32_MAX 2147483647i32
#define INT64_MAX 9223372036854775807i64
#define UINT8_MAX 0xffui8
#define UINT16_MAX 0xffffui16
#define UINT32_MAX 0xffffffffui32
#define UINT64_MAX 0xffffffffffffffffui64
#else
#include <stdint.h>
#endif // (defined(_MSC_VER) && (_MSC_VER < MSC_VER_VS2010)) || defined(_KERNEL_MODE)
// handle inttypes.h compatibility
#if defined(UNICORN_HAS_OSXKERNEL) || (defined(_MSC_VER) && (_MSC_VER < MSC_VER_VS2013)) || defined(_KERNEL_MODE)
// this system does not have inttypes.h
#if (defined(_MSC_VER) && (_MSC_VER < MSC_VER_VS2013)) || defined(_KERNEL_MODE)
#define __PRI_8_LENGTH_MODIFIER__ "hh"
#define __PRI_64_LENGTH_MODIFIER__ "ll"
#define PRId8 __PRI_8_LENGTH_MODIFIER__ "d"
#define PRIi8 __PRI_8_LENGTH_MODIFIER__ "i"
#define PRIo8 __PRI_8_LENGTH_MODIFIER__ "o"
#define PRIu8 __PRI_8_LENGTH_MODIFIER__ "u"
#define PRIx8 __PRI_8_LENGTH_MODIFIER__ "x"
#define PRIX8 __PRI_8_LENGTH_MODIFIER__ "X"
#define PRId16 "hd"
#define PRIi16 "hi"
#define PRIo16 "ho"
#define PRIu16 "hu"
#define PRIx16 "hx"
#define PRIX16 "hX"
#if defined(_MSC_VER) && (_MSC_VER <= MSC_VER_VS2012)
#define PRId32 "ld"
#define PRIi32 "li"
#define PRIo32 "lo"
#define PRIu32 "lu"
#define PRIx32 "lx"
#define PRIX32 "lX"
#else // OSX
#define PRId32 "d"
#define PRIi32 "i"
#define PRIo32 "o"
#define PRIu32 "u"
#define PRIx32 "x"
#define PRIX32 "X"
#endif // defined(_MSC_VER) && (_MSC_VER <= MSC_VER_VS2012)
#if defined(_MSC_VER) && (_MSC_VER <= MSC_VER_VS2012)
// redefine functions from inttypes.h used in cstool
#define strtoull _strtoui64
#endif
#define PRId64 __PRI_64_LENGTH_MODIFIER__ "d"
#define PRIi64 __PRI_64_LENGTH_MODIFIER__ "i"
#define PRIo64 __PRI_64_LENGTH_MODIFIER__ "o"
#define PRIu64 __PRI_64_LENGTH_MODIFIER__ "u"
#define PRIx64 __PRI_64_LENGTH_MODIFIER__ "x"
#define PRIX64 __PRI_64_LENGTH_MODIFIER__ "X"
#else
// this system has inttypes.h by default
#include <inttypes.h>
#endif // #if defined(_MSC_VER) && (_MSC_VER < MSC_VER_VS2013) || defined(_KERNEL_MODE)
#endif // #if defined(UNICORN_HAS_OSXKERNEL) || (defined(_MSC_VER) && (_MSC_VER < MSC_VER_VS2013)) || defined(_KERNEL_MODE)
// sys/time.h compatibility
#if defined(_MSC_VER)
#include <sys/timeb.h>
#include <winsock2.h>
#include <windows.h>
static int gettimeofday(struct timeval* t, void* timezone)
{
struct _timeb timebuffer;
_ftime( &timebuffer );
t->tv_sec = (long)timebuffer.time;
t->tv_usec = 1000*timebuffer.millitm;
return 0;
}
#else
#include <sys/time.h>
#endif
// unistd.h compatibility
#if defined(_MSC_VER)
// TODO: add unistd stuff here ...
static int usleep(uint32_t t) {
long value = t; // time in microseconds
struct timeval tv;
tv.tv_sec = value / 1000000;
tv.tv_usec = value % 1000000;
return select(0, NULL, NULL, NULL, &tv)==0 ? 0 : -1;
}
/*
#include <chrono>
#include <thread>
static void usleep(const int64_t &t) {
std::this_thread::sleep_for(std::chrono::microseconds(t));
}
*/
#else
#include <unistd.h>
#endif
// termios.h compatibility
#if defined(_MSC_VER)
// TODO: termios stuff here ...
#else
#include <termios.h>
#endif
// strings.h compatibility
#if defined(_MSC_VER)
// TODO: strings stuff here ...
#else
#include <strings.h>
#endif
// misc support
#if defined(_MSC_VER)
#define snprintf _snprintf
#define strcasecmp _stricmp
#if (_MSC_VER <= MSC_VER_VS2013)
#define strtoll _strtoi64
#endif
#endif
#endif // UNICORN_PLATFORM_H