-// 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 (const 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
+{
+ const char *name;
+ void **funcvariable;
+}
+dllfunction_t;
+
+// "dllnames" is an NULL terminated array of possible names for the DLL you want to load
+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 after Com_InitArgv
+void Sys_Shared_EarlyInit (void);
+// called after Host_init
+void Sys_Shared_LateInit (void);