Additional none desktop API families triggered by changes.
authorlateralusX <lateralusx.github@gmail.com>
Mon, 7 Nov 2016 15:58:07 +0000 (16:58 +0100)
committerlateralusX <lateralusx.github@gmail.com>
Tue, 8 Nov 2016 08:09:03 +0000 (09:09 +0100)
* Changes to process.c triggered errors on none desktop API builds.
* Implementation of memory mapped files caused build errors on none desktop API builds.
* Adjustments to disable JIT caused build errors on none JIT builds.

mono/metadata/file-mmap-windows.c
mono/metadata/w32process-win32-internals.h
mono/metadata/w32process-win32-uwp.c

index b0fd5d9b8962bbfbcfefa532774b6fdb94adf6dd..3cc9124c0854ccf6626e244329df27bd8c5e90ae 100644 (file)
@@ -13,8 +13,9 @@
  */
 
 #include <config.h>
-
-#ifdef HOST_WIN32
+#include <glib.h>
+#include <mono/utils/mono-compiler.h>
+#if G_HAVE_API_SUPPORT(HAVE_CLASSIC_WINAPI_SUPPORT) && defined(HOST_WIN32)
 
 #include <glib.h>
 
@@ -410,4 +411,8 @@ gboolean mono_mmap_unmap (void *mmap_handle)
        return result;
 }
 
+#else
+
+MONO_EMPTY_SOURCE_FILE (file_mmap_windows);
+
 #endif
index 1699f95753388de317bae9c76d2dd1d2478e39e1..a5eb90a8cdd3c6b2d210af2c6c9b54a3e00065ca 100644 (file)
@@ -20,7 +20,7 @@ mono_process_init_startup_info (HANDLE stdin_handle, HANDLE stdout_handle,
                                HANDLE stderr_handle,STARTUPINFO *startinfo);
 
 gboolean
-mono_process_create_process (MonoProcInfo *mono_process_info, gunichar2 *shell_path, MonoString *cmd,
+mono_process_create_process (MonoW32ProcessInfo *mono_process_info, gunichar2 *shell_path, MonoString *cmd,
                             guint32 creation_flags, gchar *env_vars, gunichar2 *dir, STARTUPINFO *start_info,
                             PROCESS_INFORMATION *process_info);
 
@@ -35,6 +35,9 @@ mono_icall_get_priority_class (gpointer handle);
 
 MonoBoolean
 mono_icall_set_priority_class (gpointer handle, gint32 priorityClass);
+
+gboolean
+mono_process_win_enum_processes (DWORD *pids, DWORD count, DWORD *needed);
 #endif  /* !G_HAVE_API_SUPPORT(HAVE_CLASSIC_WINAPI_SUPPORT) */
 
 #endif /* __MONO_METADATA_PROCESS_INTERNALS_H__ */
index 31254dcbbe4a090c95b91d34d08e9344577d09fc..cbd46b794aa603a3aec89ba3f55843c19949b6b7 100644 (file)
@@ -10,6 +10,9 @@
 
 #if G_HAVE_API_SUPPORT(HAVE_UWP_WINAPI_SUPPORT)
 #include <windows.h>
+#include <mono/metadata/object-internals.h>
+#include "mono/metadata/w32process.h"
+#include "mono/metadata/w32process-internals.h"
 #include "mono/metadata/w32process-win32-internals.h"
 
 gboolean
@@ -25,16 +28,17 @@ mono_process_win_enum_processes (DWORD *pids, DWORD count, DWORD *needed)
 HANDLE
 ves_icall_System_Diagnostics_Process_GetProcess_internal (guint32 pid)
 {
-       HANDLE handle;
-
-       /* GetCurrentProcess returns a pseudo-handle, so use
-        * OpenProcess instead
-        */
-       handle = OpenProcess (PROCESS_ALL_ACCESS, TRUE, pid);
-       if (handle == NULL)
-               /* FIXME: Throw an exception */
-               return NULL;
-       return handle;
+       MonoError mono_error;
+       mono_error_init (&mono_error);
+
+       g_unsupported_api ("OpenProcess");
+
+       mono_error_set_not_supported (&mono_error, G_UNSUPPORTED_API, "OpenProcess");
+       mono_error_set_pending_exception (&mono_error);
+
+       SetLastError (ERROR_NOT_SUPPORTED);
+
+       return NULL;
 }
 
 void
@@ -78,7 +82,7 @@ ves_icall_System_Diagnostics_Process_GetModules_internal (MonoObject *this_obj,
 }
 
 MonoBoolean
-ves_icall_System_Diagnostics_Process_ShellExecuteEx_internal (MonoProcessStartInfo *proc_start_info, MonoProcInfo *process_info)
+ves_icall_System_Diagnostics_Process_ShellExecuteEx_internal (MonoW32ProcessStartInfo *proc_start_info, MonoW32ProcessInfo *process_info)
 {
        MonoError mono_error;
        mono_error_init (&mono_error);
@@ -125,7 +129,7 @@ mono_process_init_startup_info (HANDLE stdin_handle, HANDLE stdout_handle, HANDL
 }
 
 gboolean
-mono_process_create_process (MonoProcInfo *mono_process_info, gunichar2 *shell_path, MonoString *cmd, guint32 creation_flags,
+mono_process_create_process (MonoW32ProcessInfo *mono_process_info, gunichar2 *shell_path, MonoString *cmd, guint32 creation_flags,
                             gchar *env_vars, gunichar2 *dir, STARTUPINFO *start_info, PROCESS_INFORMATION *process_info)
 {
        MonoError       mono_error;