panda/
arch.rs

1use crate::enums::Endian;
2
3// ================ ARCH_NAME ================
4
5/// The name of the architecture as used by PANDA
6///
7/// This can be one of:
8///
9/// * x86_64
10/// * i386
11/// * arm
12/// * ppc
13/// * mips
14/// * mipsel
15/// * mips64
16/// * aarch64
17pub const ARCH_NAME: &str = ARCH;
18
19#[cfg(feature = "x86_64")]
20const ARCH: &str = "x86_64";
21
22#[cfg(feature = "i386")]
23const ARCH: &str = "i386";
24
25#[cfg(feature = "arm")]
26const ARCH: &str = "arm";
27
28#[cfg(feature = "ppc")]
29const ARCH: &str = "ppc";
30
31#[cfg(feature = "mips")]
32const ARCH: &str = "mips";
33
34#[cfg(feature = "mipsel")]
35const ARCH: &str = "mipsel";
36
37#[cfg(feature = "aarch64")]
38const ARCH: &str = "aarch64";
39
40#[cfg(feature = "mips64")]
41const ARCH: &str = "mips64";
42
43#[cfg(feature = "mips64el")]
44const ARCH: &str = "mips64el";
45
46// ================ ARCH_ENDIAN ================
47
48/// The byte order of the guest architecture being targetted by PANDA
49pub const ARCH_ENDIAN: Endian = ENDIAN;
50
51#[cfg(feature = "x86_64")]
52const ENDIAN: Endian = Endian::Little;
53
54#[cfg(feature = "i386")]
55const ENDIAN: Endian = Endian::Little;
56
57#[cfg(feature = "arm")]
58const ENDIAN: Endian = Endian::Little;
59
60#[cfg(feature = "ppc")]
61const ENDIAN: Endian = Endian::Big;
62
63#[cfg(feature = "mips")]
64const ENDIAN: Endian = Endian::Big;
65
66#[cfg(feature = "mipsel")]
67const ENDIAN: Endian = Endian::Little;
68
69#[cfg(feature = "aarch64")]
70const ENDIAN: Endian = Endian::Little;
71
72#[cfg(feature = "mips64")]
73const ENDIAN: Endian = Endian::Big;
74
75#[cfg(feature = "mips64el")]
76const ENDIAN: Endian = Endian::Little;