-//
-// host
-//
-extern cvar_t sys_ticrate;
-extern cvar_t developer;
-
-extern qboolean host_initialized; // true if into command execution
-extern double host_frametime;
-extern double host_realframetime; // LordHavoc: the real frametime, before slowmo and clamping are applied (used for console scrolling)
-extern int host_framecount; // incremented every frame, never reset
-extern double realtime; // not bounded in any way, changed at
- // start of every frame, never reset
-
-void Host_ClearMemory (void);
-void Host_ServerFrame (void);
-void Host_InitCommands (void);
-void Host_Init (void);
+extern cvar_t developer;
+extern cvar_t developer_loadfile;
+extern cvar_t developer_loading;
+
+/* Preprocessor macros to identify platform
+ DP_OS_NAME - "friendly" name of the OS, for humans to read
+ DP_OS_STR - "identifier" of the OS, more suited for code to use
+ DP_ARCH_STR - "identifier" of the processor architecture
+ */
+#if defined(__linux__)
+# define DP_OS_NAME "Linux"
+# define DP_OS_STR "linux"
+#elif defined(WIN64)
+# define DP_OS_NAME "Windows64"
+# define DP_OS_STR "win64"
+#elif defined(WIN32)
+# define DP_OS_NAME "Windows"
+# define DP_OS_STR "win32"
+#elif defined(__FreeBSD__)
+# define DP_OS_NAME "FreeBSD"
+# define DP_OS_STR "freebsd"
+#elif defined(__NetBSD__)
+# define DP_OS_NAME "NetBSD"
+# define DP_OS_STR "netbsd"
+#elif defined(__OpenBSD__)
+# define DP_OS_NAME "OpenBSD"
+# define DP_OS_STR "openbsd"
+#elif defined(MACOSX)
+# define DP_OS_NAME "Mac OS X"
+# define DP_OS_STR "osx"
+#elif defined(__MORPHOS__)
+# define DP_OS_NAME "MorphOS"
+# define DP_OS_STR "morphos"
+#else
+# define DP_OS_NAME "Unknown"
+#endif
+
+#if defined(__GNUC__)
+# if defined(__i386__)
+# define DP_ARCH_STR "686"
+# elif defined(__x86_64__)
+# define DP_ARCH_STR "x86_64"
+# elif defined(__powerpc__)
+# define DP_ARCH_STR "ppc"
+# endif
+#elif defined(WIN64)
+# define DP_ARCH_STR "x86_64"
+#elif defined(WIN32)
+# define DP_ARCH_STR "x86"
+#endif
+
+// incremented every frame, never reset
+extern int host_framecount;
+// not bounded in any way, changed at start of every frame, never reset
+extern double realtime;
+
+void Host_InitCommands(void);
+void Host_Main(void);