New test.
[mono.git] / mono / metadata / process.h
1 /*
2  * process.h: System.Diagnostics.Process support
3  *
4  * Author:
5  *      Dick Porter (dick@ximian.com)
6  *
7  * (C) 2002 Ximian, Inc.
8  */
9
10 #ifndef _MONO_METADATA_PROCESS_H_
11 #define _MONO_METADATA_PROCESS_H_
12
13 #include <config.h>
14 #include <glib.h>
15
16 #include <mono/metadata/object.h>
17 #include <mono/io-layer/io-layer.h>
18
19 typedef struct 
20 {
21         HANDLE process_handle;
22         HANDLE thread_handle;
23         guint32 pid; /* Contains GetLastError () on failure */
24         guint32 tid;
25         MonoArray *env_keys;
26         MonoArray *env_values;
27 } MonoProcInfo;
28
29 typedef struct
30 {
31         MonoObject object;
32         MonoString *arguments;
33         gpointer error_dialog_parent_handle;
34         MonoString *filename;
35         MonoString *verb;
36         MonoString *working_directory;
37         MonoObject *envVars;
38         MonoBoolean create_no_window;
39         MonoBoolean error_dialog;
40         MonoBoolean redirect_standard_error;
41         MonoBoolean redirect_standard_input;
42         MonoBoolean redirect_standard_output;
43         MonoBoolean use_shell_execute;
44         guint32 window_style;
45 } MonoProcessStartInfo;
46
47 G_BEGIN_DECLS
48
49 HANDLE ves_icall_System_Diagnostics_Process_GetProcess_internal (guint32 pid);
50 MonoArray *ves_icall_System_Diagnostics_Process_GetProcesses_internal (void);
51 guint32 ves_icall_System_Diagnostics_Process_GetPid_internal (void);
52 void ves_icall_System_Diagnostics_Process_Process_free_internal (MonoObject *this, HANDLE process);
53 MonoArray *ves_icall_System_Diagnostics_Process_GetModules_internal (MonoObject *this);
54 void ves_icall_System_Diagnostics_FileVersionInfo_GetVersionInfo_internal (MonoObject *this, MonoString *filename);
55 MonoBoolean ves_icall_System_Diagnostics_Process_ShellExecuteEx_internal (MonoProcessStartInfo *proc_start_info, MonoProcInfo *process_handle);
56 MonoBoolean ves_icall_System_Diagnostics_Process_CreateProcess_internal (MonoProcessStartInfo *proc_start_info, HANDLE stdin_handle, HANDLE stdout_handle, HANDLE stderr_handle, MonoProcInfo *process_handle);
57 MonoBoolean ves_icall_System_Diagnostics_Process_WaitForExit_internal (MonoObject *this, HANDLE process, gint32 ms);
58 gint64 ves_icall_System_Diagnostics_Process_ExitTime_internal (HANDLE process);
59 gint64 ves_icall_System_Diagnostics_Process_StartTime_internal (HANDLE process);
60 gint32 ves_icall_System_Diagnostics_Process_ExitCode_internal (HANDLE process);
61 MonoString *ves_icall_System_Diagnostics_Process_ProcessName_internal (HANDLE process);
62 MonoBoolean ves_icall_System_Diagnostics_Process_GetWorkingSet_internal (HANDLE process, guint32 *min, guint32 *max);
63 MonoBoolean ves_icall_System_Diagnostics_Process_SetWorkingSet_internal (HANDLE process, guint32 min, guint32 max, MonoBoolean use_min);
64 MonoBoolean ves_icall_System_Diagnostics_Process_Kill_internal (HANDLE process, gint32 sig);
65
66 G_END_DECLS
67
68 #endif /* _MONO_METADATA_PROCESS_H_ */
69