Base Framework
Public Types | Static Public Member Functions | List of all members
Architecture Class Reference

Architecture information. More...

#include <base/Architecture.h>

Public Types

enum  ByteOrder { BE = 0, LE = 1, NATIVE = BE, FLOAT_NATIVE = BE }
 
enum  Technology {
  FPU = 1U << 0, MMX = 1U << 1, SSE = 1U << 2, SSE2 = 1U << 3,
  SSE3 = 1U << 4, NOW3D = 1U << 5, NOW3D2 = 1U << 6, HYPER_THREADING = 1U << 7
}
 
enum  Major {
  ALPHA, X86, X86_64, ITANIUM,
  MIPS, MIPS64, POWER_PC_32, POWER_PC_64,
  S390X, RS, SPARC32, SPARC64,
  S390, PA_RISC32, PA_RISC64, RISCV32,
  RISCV64, ARM32, ARM64, WASM32,
  WASM64, GENERIC32, GENERIC64
}
 
enum  Minor { GENERIC }
 

Static Public Member Functions

static bool isBigEndian () noexcept
 
static bool isLittleEndian () noexcept
 
static bool isFloatWordBigEndian () noexcept
 
static bool isFloatWordLittleEndian () noexcept
 
static unsigned int getTechonologies () noexcept
 
static Major getArchitecture () noexcept
 
static String getArchitectureAsString () noexcept
 
static Minor getMinorArchitecture () noexcept
 

Detailed Description

Architecture information.

Architecture information.

Version
1.0

Member Enumeration Documentation

◆ ByteOrder

Supported byte orders.

Enumerator
BE 

Big endian.

LE 

Little endian.

NATIVE 

Native byte order.

FLOAT_NATIVE 

Native floating-point word order.

◆ Major

The major architecture.

Enumerator
ALPHA 

Alpha.

X86 

Intel 32 bit.

X86_64 

AMD 64-bit.

ITANIUM 

Itanium.

MIPS 

MIPS.

MIPS64 

MIPS 64-bit.

POWER_PC_32 

Power PC 32-bit.

POWER_PC_64 

Power PC 64-bit.

S390X 

IBM subsystem 64-bit.

RS 

RS.

SPARC32 

Sparc 32-bit.

SPARC64 

Sparc 64-bit.

S390 

S390.

PA_RISC32 

PA-RISC 32-bit.

PA_RISC64 

PA-RISC 64-bit.

RISCV32 

RISC-V 32-bit.

RISCV64 

RISC-V 64-bit.

ARM32 

ARM 32-bit.

ARM64 

ARM 64-bit.

WASM32 

WebAssembly 32-bit.

WASM64 

WebAssembly 64-bit.

GENERIC32 

Generic 32-bit.

GENERIC64 

Generic 64-bit.

◆ Minor

The minor architecture.

Enumerator
GENERIC 

Unspecified processor.

◆ Technology

Technology flags.

Enumerator
FPU 

Floating Point Unit (FPU).

MMX 

Multi-Media Extentions (MMX)

SSE 

Streaming SIMD Extensions (SSE).

SSE2 

Streaming SIMD Extensions (SSE) 2.

SSE3 

Streaming SIMD Extensions (SSE) 3.

NOW3D 

3DNow.

NOW3D2 

3DNow 2.

HYPER_THREADING 

Hyper-threading.

Member Function Documentation

◆ getArchitecture()

static Major Architecture::getArchitecture ( )
staticnoexcept

Returns the major architecture.

◆ getArchitectureAsString()

static String Architecture::getArchitectureAsString ( )
staticnoexcept

Returns the major architecture as a string.

◆ getMinorArchitecture()

static Minor Architecture::getMinorArchitecture ( )
staticnoexcept

Returns the processor (lowest common denominator is multiple are present).

◆ getTechonologies()

static unsigned int Architecture::getTechonologies ( )
staticnoexcept

Returns the supported technologies.

◆ isBigEndian()

static bool Architecture::isBigEndian ( )
inlinestaticnoexcept

Returns true if the native byte order is big endian.

◆ isFloatWordBigEndian()

static bool Architecture::isFloatWordBigEndian ( )
inlinestaticnoexcept

Returns true if the native word order is big endian.

◆ isFloatWordLittleEndian()

static bool Architecture::isFloatWordLittleEndian ( )
inlinestaticnoexcept

Returns true if the native word order is little endian.

◆ isLittleEndian()

static bool Architecture::isLittleEndian ( )
inlinestaticnoexcept

Returns true if the native byte order is little endian.