diff lphobos/std/system.d @ 473:373489eeaf90

Applied downs' lphobos update
author Tomas Lindquist Olsen <tomas.l.olsen@gmail.com>
date Mon, 04 Aug 2008 19:28:49 +0200
parents
children
line wrap: on
line diff
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/lphobos/std/system.d	Mon Aug 04 19:28:49 2008 +0200
@@ -0,0 +1,95 @@
+// Written in the D programming language
+
+/**
+ * Information about the target operating system, environment, and CPU
+ * Authors: Walter Bright, www.digitalmars.com
+ * License: Public Domain
+ * Macros:
+ *	WIKI = Phobos/StdSystem
+ */
+
+/* NOTE: This file has been patched from the original DMD distribution to
+   work with the GDC compiler.
+
+   Modified by David Friedman, September 2007
+*/
+
+// Information about the target operating system, environment, and CPU
+
+module std.system;
+
+const
+{
+
+    // Operating system family
+    enum Family
+    {
+	Win32 = 1,		// Microsoft 32 bit Windows systems
+	linux,			// all linux systems
+	Unix,                  // Unix-like
+	NoSystem               // No operating system
+    }
+
+    version (Win32)
+    {
+	Family family = Family.Win32;
+    }
+    else version (linux)
+    {
+	Family family = Family.linux;
+    }
+    else version (Unix)
+    {
+	Family family = Family.Unix;
+    }	     
+    else version (NoSystem)
+    {
+	Family family = Family.NoSystem;
+    }
+    else
+    {
+	static assert(0);
+    }
+
+    // More specific operating system name
+    enum OS
+    {
+	Windows95 = 1,
+	Windows98,
+	WindowsME,
+	WindowsNT,
+	Windows2000,
+	WindowsXP,
+
+	RedHatLinux,
+    }
+
+    /// Byte order endianness
+
+    enum Endian
+    {
+	BigEndian,	/// big endian byte order
+	LittleEndian	/// little endian byte order
+    }
+
+    version(LittleEndian)
+    {
+	/// Native system endianness
+        Endian endian = Endian.LittleEndian;
+    }
+    else
+    {
+        Endian endian = Endian.BigEndian;
+    }
+}
+
+// The rest should get filled in dynamically at runtime
+
+OS os = OS.WindowsXP;
+
+// Operating system version as in
+// os_major.os_minor
+uint os_major = 4;
+uint os_minor = 0;
+
+