src/os/windows/vm/os_windows.hpp

changeset 3031
b1cbb0907b36
parent 2520
63d374c54045
child 3085
3cd0157e1d4d
     1.1 --- a/src/os/windows/vm/os_windows.hpp	Sat Jul 23 10:42:20 2011 -0400
     1.2 +++ b/src/os/windows/vm/os_windows.hpp	Fri Apr 15 09:34:43 2011 -0400
     1.3 @@ -24,7 +24,6 @@
     1.4  
     1.5  #ifndef OS_WINDOWS_VM_OS_WINDOWS_HPP
     1.6  #define OS_WINDOWS_VM_OS_WINDOWS_HPP
     1.7 -
     1.8  // Win32_OS defines the interface to windows operating systems
     1.9  
    1.10  class win32 {
    1.11 @@ -55,6 +54,9 @@
    1.12    static julong available_memory();
    1.13    static julong physical_memory() { return _physical_memory; }
    1.14  
    1.15 +  // load dll from Windows system directory or Windows directory
    1.16 +  static HINSTANCE load_Windows_dll(const char* name, char *ebuf, int ebuflen);
    1.17 +
    1.18   public:
    1.19    // Generic interface:
    1.20  
    1.21 @@ -132,4 +134,100 @@
    1.22  
    1.23  } ;
    1.24  
    1.25 +// JDK7 requires VS2010
    1.26 +#if _MSC_VER < 1600
    1.27 +#define JDK6_OR_EARLIER 1
    1.28 +#endif
    1.29 +
    1.30 +
    1.31 +
    1.32 +class WinSock2Dll: AllStatic {
    1.33 +public:
    1.34 +  static BOOL WSAStartup(WORD, LPWSADATA);
    1.35 +  static struct hostent* gethostbyname(const char *name);
    1.36 +  static BOOL WinSock2Available();
    1.37 +#ifdef JDK6_OR_EARLIER
    1.38 +private:
    1.39 +  static int (PASCAL FAR* _WSAStartup)(WORD, LPWSADATA);
    1.40 +  static struct hostent *(PASCAL FAR *_gethostbyname)(...);
    1.41 +  static BOOL initialized;
    1.42 +
    1.43 +  static void initialize();
    1.44 +#endif
    1.45 +};
    1.46 +
    1.47 +class Kernel32Dll: AllStatic {
    1.48 +public:
    1.49 +  static BOOL SwitchToThread();
    1.50 +  static SIZE_T GetLargePageMinimum();
    1.51 +
    1.52 +  static BOOL SwitchToThreadAvailable();
    1.53 +  static BOOL GetLargePageMinimumAvailable();
    1.54 +
    1.55 +  // Help tools
    1.56 +  static BOOL HelpToolsAvailable();
    1.57 +  static HANDLE CreateToolhelp32Snapshot(DWORD,DWORD);
    1.58 +  static BOOL Module32First(HANDLE,LPMODULEENTRY32);
    1.59 +  static BOOL Module32Next(HANDLE,LPMODULEENTRY32);
    1.60 +
    1.61 +  static BOOL GetNativeSystemInfoAvailable();
    1.62 +  static void GetNativeSystemInfo(LPSYSTEM_INFO);
    1.63 +
    1.64 +private:
    1.65 +  // GetLargePageMinimum available on Windows Vista/Windows Server 2003
    1.66 +  // and later
    1.67 +  static SIZE_T (WINAPI *_GetLargePageMinimum)(void);
    1.68 +  static BOOL initialized;
    1.69 +
    1.70 +  static void initialize();
    1.71 +
    1.72 +#ifdef JDK6_OR_EARLIER
    1.73 +private:
    1.74 +  static BOOL (WINAPI *_SwitchToThread)(void);
    1.75 +  static HANDLE (WINAPI* _CreateToolhelp32Snapshot)(DWORD,DWORD);
    1.76 +  static BOOL (WINAPI* _Module32First)(HANDLE,LPMODULEENTRY32);
    1.77 +  static BOOL (WINAPI* _Module32Next)(HANDLE,LPMODULEENTRY32);
    1.78 +  static void (WINAPI *_GetNativeSystemInfo)(LPSYSTEM_INFO);
    1.79 +#endif
    1.80 +
    1.81 +};
    1.82 +
    1.83 +class Advapi32Dll: AllStatic {
    1.84 +public:
    1.85 +  static BOOL AdjustTokenPrivileges(HANDLE, BOOL, PTOKEN_PRIVILEGES, DWORD, PTOKEN_PRIVILEGES, PDWORD);
    1.86 +  static BOOL OpenProcessToken(HANDLE, DWORD, PHANDLE);
    1.87 +  static BOOL LookupPrivilegeValue(LPCTSTR, LPCTSTR, PLUID);
    1.88 +
    1.89 +  static BOOL AdvapiAvailable();
    1.90 +
    1.91 +#ifdef JDK6_OR_EARLIER
    1.92 +private:
    1.93 +  static BOOL (WINAPI *_AdjustTokenPrivileges)(HANDLE, BOOL, PTOKEN_PRIVILEGES, DWORD, PTOKEN_PRIVILEGES, PDWORD);
    1.94 +  static BOOL (WINAPI *_OpenProcessToken)(HANDLE, DWORD, PHANDLE);
    1.95 +  static BOOL (WINAPI *_LookupPrivilegeValue)(LPCTSTR, LPCTSTR, PLUID);
    1.96 +  static BOOL initialized;
    1.97 +
    1.98 +  static void initialize();
    1.99 +#endif
   1.100 +};
   1.101 +
   1.102 +class PSApiDll: AllStatic {
   1.103 +public:
   1.104 +  static BOOL EnumProcessModules(HANDLE, HMODULE *, DWORD, LPDWORD);
   1.105 +  static DWORD GetModuleFileNameEx(HANDLE, HMODULE, LPTSTR, DWORD);
   1.106 +  static BOOL GetModuleInformation(HANDLE, HMODULE, LPMODULEINFO, DWORD);
   1.107 +
   1.108 +  static BOOL PSApiAvailable();
   1.109 +
   1.110 +#ifdef JDK6_OR_EARLIER
   1.111 +private:
   1.112 +  static BOOL (WINAPI *_EnumProcessModules)(HANDLE, HMODULE *, DWORD, LPDWORD);
   1.113 +  static BOOL (WINAPI *_GetModuleFileNameEx)(HANDLE, HMODULE, LPTSTR, DWORD);;
   1.114 +  static BOOL (WINAPI *_GetModuleInformation)(HANDLE, HMODULE, LPMODULEINFO, DWORD);
   1.115 +  static BOOL initialized;
   1.116 +
   1.117 +  static void initialize();
   1.118 +#endif
   1.119 +};
   1.120 +
   1.121  #endif // OS_WINDOWS_VM_OS_WINDOWS_HPP

mercurial