-// returns the file size
-// return -1 if file is not present
-// the file should be in BINARY mode for stupid OSs that care
-int Sys_FileOpenRead (char *path, int *hndl);
+// Win32 specific
+#ifdef WIN32
+# include <windows.h>
+typedef HMODULE dllhandle_t;
+
+// Other platforms
+#else
+ typedef void* dllhandle_t;
+#endif
+
+typedef struct dllfunction_s
+{
+ const char *name;
+ void **funcvariable;
+}
+dllfunction_t;
+
+/*! Loads a library.
+ * \param dllnames a NULL terminated array of possible names for the DLL you want to load.
+ * \param handle
+ * \param fcts
+ */
+qboolean Sys_LoadLibrary (const char** dllnames, dllhandle_t* handle, const dllfunction_t *fcts);
+void Sys_UnloadLibrary (dllhandle_t* handle);
+void* Sys_GetProcAddress (dllhandle_t handle, const char* name);
+
+/// called early in Host_Init
+void Sys_InitConsole (void);
+/// called after command system is initialized but before first Con_Print
+void Sys_Init_Commands (void);
+