Add MachineType enum

This commit is contained in:
Alexander Karatarakis 2016-10-14 16:49:44 -07:00
parent b2585bba5d
commit aa35c41aa6
4 changed files with 85 additions and 0 deletions

41
toolsrc/MachineType.cpp Normal file
View File

@ -0,0 +1,41 @@
#include "MachineType.h"
#include "vcpkg_Checks.h"
namespace vcpkg
{
MachineType getMachineType(const uint16_t value)
{
MachineType t = static_cast<MachineType>(value);
switch (t)
{
case MachineType::UNKNOWN:
case MachineType::AM33:
case MachineType::AMD64:
case MachineType::ARM:
case MachineType::ARM64:
case MachineType::ARMNT:
case MachineType::EBC:
case MachineType::I386:
case MachineType::IA64:
case MachineType::M32R:
case MachineType::MIPS16:
case MachineType::MIPSFPU:
case MachineType::MIPSFPU16:
case MachineType::POWERPC:
case MachineType::POWERPCFP:
case MachineType::R4000:
case MachineType::RISCV32:
case MachineType::RISCV64:
case MachineType::RISCV128:
case MachineType::SH3:
case MachineType::SH3DSP:
case MachineType::SH4:
case MachineType::SH5:
case MachineType::THUMB:
case MachineType::WCEMIPSV2:
return t;
default:
Checks::exit_with_message("Unknown machine type code 0x%x", value);
}
}
}

View File

@ -0,0 +1,36 @@
#pragma once
#include <cstdint>
namespace vcpkg
{
enum class MachineType : uint16_t
{
UNKNOWN = 0x0, // The contents of this field are assumed to be applicable to any machine type
AM33=0x1d3,//Matsushita AM33
AMD64=0x8664,//x64
ARM=0x1c0,//ARM little endian
ARM64=0xaa64,//ARM64 little endian
ARMNT=0x1c4,//ARM Thumb-2 little endian
EBC=0xebc,//EFI byte code
I386=0x14c,//Intel 386 or later processors and compatible processors
IA64=0x200,//Intel Itanium processor family
M32R=0x9041,//Mitsubishi M32R little endian
MIPS16=0x266,//MIPS16
MIPSFPU=0x366,//MIPS with FPU
MIPSFPU16=0x466,//MIPS16 with FPU
POWERPC=0x1f0,//Power PC little endian
POWERPCFP=0x1f1,//Power PC with floating point support
R4000=0x166,//MIPS little endian
RISCV32=0x5032,//RISC-V 32-bit address space
RISCV64=0x5064,//RISC-V 64-bit address space
RISCV128=0x5128,//RISC-V 128-bit address space
SH3=0x1a2,//Hitachi SH3
SH3DSP=0x1a3,//Hitachi SH3 DSP
SH4=0x1a6,//Hitachi SH4
SH5=0x1a8,//Hitachi SH5
THUMB=0x1c2,//Thumb
WCEMIPSV2=0x169,//MIPS little-endian WCE v2
};
MachineType getMachineType(const uint16_t value);
}

View File

@ -128,6 +128,7 @@
</Link>
</ItemDefinitionGroup>
<ItemGroup>
<ClCompile Include="..\MachineType.cpp" />
<ClCompile Include="..\src\commands_cache.cpp" />
<ClCompile Include="..\src\commands_create.cpp" />
<ClCompile Include="..\src\commands_edit.cpp" />
@ -149,6 +150,7 @@
<ClCompile Include="..\src\vcpkg_Input.cpp" />
</ItemGroup>
<ItemGroup>
<ClInclude Include="..\include\MachineType.h" />
<ClInclude Include="..\include\vcpkg_cmd_arguments.h" />
<ClInclude Include="..\include\vcpkg_Commands.h" />
<ClInclude Include="..\include\vcpkg_Dependencies.h" />

View File

@ -72,6 +72,9 @@
<ClCompile Include="..\src\vcpkg_Input.cpp">
<Filter>Source Files</Filter>
</ClCompile>
<ClCompile Include="..\MachineType.cpp">
<Filter>Source Files</Filter>
</ClCompile>
</ItemGroup>
<ItemGroup>
<ClInclude Include="..\include\post_build_lint.h">
@ -92,5 +95,8 @@
<ClInclude Include="..\include\vcpkg_Input.h">
<Filter>Header Files</Filter>
</ClInclude>
<ClInclude Include="..\include\MachineType.h">
<Filter>Header Files</Filter>
</ClInclude>
</ItemGroup>
</Project>