Wolfgang Thallergcc16 merge934c3885 months agoHistory
169 lines · 7.4 KB · D
RawDownload
// Written in the D programming language.//// NOTE: This must be kept in sync with phobos/sys/system.d /** * Information about the target operating system, environment, and CPU. * *  Copyright: Copyright The D Language Foundation 2000 - 2011 *  License:   $(HTTP www.boost.org/LICENSE_1_0.txt, Boost License 1.0). *  Authors:   $(HTTP digitalmars.com, Walter Bright) and               $(HTTP jmdavisprog.com, Jonathan M Davis) *  Source:    $(PHOBOSSRC std/system.d) */module std.system; immutable{    /++        Operating system.         Note:            This is for cases where you need a value representing the OS at            runtime. If you're doing something which should compile differently            on different OSes, then please use `version (Windows)`,            `version (linux)`, etc.         See_Also:            $(DDSUBLINK spec/version,PredefinedVersions, Predefined Versions)      +/    enum OS    {        win32 = 1, /// Microsoft 32 bit Windows systems        win64,     /// Microsoft 64 bit Windows systems        linux,     /// All Linux Systems, except for Android        osx,       /// Mac OS X        iOS,       /// iOS        tvOS,      /// tvOS        watchOS,   /// watchOS        freeBSD,   /// FreeBSD        netBSD,    /// NetBSD        openBSD,   /// OpenBSD        dragonFlyBSD, /// DragonFlyBSD        solaris,   /// Solaris        haiku,     /// HaikuOS        android,   /// Android        otherPosix, /// Other Posix Systems        unknown,   /// Unknown    }     /// The OS that the program was compiled for.    version (Win32)        OS os = OS.win32;    else version (Win64)   OS os = OS.win64;    else version (Android) OS os = OS.android;    else version (linux)   OS os = OS.linux;    else version (OSX)     OS os = OS.osx;    else version (iOS)     OS os = OS.iOS;    else version (tvOS)    OS os = OS.tvOS;    else version (watchOS) OS os = OS.watchOS;    else version (FreeBSD) OS os = OS.freeBSD;    else version (NetBSD)  OS os = OS.netBSD;    else version (OpenBSD) OS os = OS.openBSD;    else version (DragonFlyBSD) OS os = OS.dragonFlyBSD;    else version (Solaris) OS os = OS.solaris;    else version (Haiku) OS os = OS.haiku;    else version (Posix)   OS os = OS.otherPosix;    else OS os = OS.unknown;     /++        Byte order endianness.         Note:            This is intended for cases where you need to deal with endianness at            runtime. If you're doing something which should compile differently            depending on whether you're compiling on a big endian or little            endian machine, then please use `version (BigEndian)` and            `version (LittleEndian)`.         See_Also:            $(DDSUBLINK spec/version,PredefinedVersions, Predefined Versions)      +/    enum Endian    {        bigEndian,   /// Big endian byte order        littleEndian /// Little endian byte order    }     /// The endianness that the program was compiled for.    version (LittleEndian) Endian endian = Endian.littleEndian;    else                  Endian endian = Endian.bigEndian;    /++        Instruction Set Architecture.         Note:            This is intended for cases where you need a value representing the            instruction set architecture at runtime. If you're doing something            which should compile differently depending on instruction set            architecture, then please use `version (X86_64)`, `version (ARM)`,            etc.         See_Also:            $(DDSUBLINK spec/version,PredefinedVersions, Predefined Versions)      +/    enum ISA    {        x86,   /// Intel and AMD 32-bit processors        x86_64, /// Intel and AMD 64-bit processors        arm, /// The ARM architecture (32-bit) (AArch32 et al)        aarch64, /// The Advanced RISC Machine architecture (64-bit)        asmJS, /// The asm.js intermediate programming language        avr, /// 8-bit Atmel AVR Microcontrollers        epiphany, /// The Epiphany architecture        ppc, /// The PowerPC architecture, 32-bit        ppc64, /// The PowerPC architecture, 64-bit        ia64, /// The Itanium architecture (64-bit)        mips32, /// The MIPS architecture, 32-bit        mips64, /// The MIPS architecture, 64-bit        msp430, /// The MSP430 architecture        nvptx, /// The Nvidia Parallel Thread Execution (PTX) architecture, 32-bit        nvptx64, /// The Nvidia Parallel Thread Execution (PTX) architecture, 64-bit        riscv32, /// The RISC-V architecture, 32-bit        riscv64, /// The RISC-V architecture, 64-bit        sparc, /// The SPARC architecture, 32-bit        sparc64, /// The SPARC architecture, 64-bit        s390, /// The System/390 architecture, 32-bit        systemZ, /// The System Z architecture, 64-bit        hppa, /// The HP PA-RISC architecture, 32-bit        hppa64, /// The HP PA-RISC architecture, 64-bit        sh, /// The SuperH architecture, 32-bit        webAssembly, /// The WebAssembly virtual ISA (instruction set architecture), 32-bit        alpha, /// The Alpha architecture        loongArch32, /// The LoongAtch architecture, 32-bit        loongArch64, /// The LoongArch architecture, 64-bit        xtensa, /// The Xtensa architecture, 32-bit        unknown, /// Unknown    }     /// The instruction set architecture that the program was compiled for.    version (X86) ISA instructionSetArchitecture = ISA.x86;    else version (X86_64)   ISA instructionSetArchitecture = ISA.x86_64;    else version (ARM)      ISA instructionSetArchitecture = ISA.arm;    else version (AArch64)  ISA instructionSetArchitecture = ISA.aarch64;    else version (AsmJS)    ISA instructionSetArchitecture = ISA.asmJS;    else version (AVR)      ISA instructionSetArchitecture = ISA.avr;    else version (Epiphany) ISA instructionSetArchitecture = ISA.epiphany;    else version (PPC)      ISA instructionSetArchitecture = ISA.ppc;    else version (PPC64)    ISA instructionSetArchitecture = ISA.ppc64;    else version (IA64)     ISA instructionSetArchitecture = ISA.ia64;    else version (MIPS32)   ISA instructionSetArchitecture = ISA.mips32;    else version (MIPS64)   ISA instructionSetArchitecture = ISA.mips64;    else version (MSP430)   ISA instructionSetArchitecture = ISA.msp430;    else version (NVPTX)    ISA instructionSetArchitecture = ISA.nvptx;    else version (NVPTX64)  ISA instructionSetArchitecture = ISA.nvptx64;    else version (RISCV32)  ISA instructionSetArchitecture = ISA.riscv32;    else version (RISCV64)  ISA instructionSetArchitecture = ISA.riscv64;    else version (SPARC)    ISA instructionSetArchitecture = ISA.sparc;    else version (SPARC64)  ISA instructionSetArchitecture = ISA.sparc64;    else version (S390)     ISA instructionSetArchitecture = ISA.s390;    else version (SystemZ)  ISA instructionSetArchitecture = ISA.systemZ;    else version (HPPA)     ISA instructionSetArchitecture = ISA.hppa;    else version (HPPA64)   ISA instructionSetArchitecture = ISA.hppa64;    else version (SH)       ISA instructionSetArchitecture = ISA.sh;    else version (WebAssembly) ISA instructionSetArchitecture = ISA.webAssembly;    else version (Alpha)    ISA instructionSetArchitecture = ISA.alpha;    else version (LoongArch32) ISA instructionSetArchitecture = ISA.loongArch32;    else version (loongArch64) ISA instructionSetArchitecture = ISA.loongArch64;    else version (Xtensa)   ISA instructionSetArchitecture = ISA.xtensa;    else ISA instructionSetArchitecture = ISA.unknown;} 

Keyboard shortcuts

General

Show keyboard shortcuts
?
Focus the current search
/

Issues and pull requests

Open filters
f

Issues, pull requests and Inbox

Select next item
j↓
Select previous item
k↑
Open selected item
Enter
Dismiss filters or clear selection
Esc

Repository code

Go to file
t