00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014
00015
00016
00017
00018
00019 #ifndef _VMWARE_TOOLS_UTILS_H_
00020 #define _VMWARE_TOOLS_UTILS_H_
00021
00037 #define VMTOOLS_GUEST_SERVICE "vmsvc"
00038 #define VMTOOLS_USER_SERVICE "vmusr"
00039
00040 #if defined(__cplusplus)
00041 # define VMTOOLS_EXTERN_C extern "C"
00042 #else
00043 # define VMTOOLS_EXTERN_C
00044 #endif
00045
00046 #include <glib.h>
00047 #if defined(G_PLATFORM_WIN32)
00048 # include <windows.h>
00049 #else
00050 # include <signal.h>
00051 # include <sys/time.h>
00052 #endif
00053
00054
00055
00056 #if defined(G_PLATFORM_WIN32)
00057 # if defined(G_INLINE_FUNC)
00058 # undef G_INLINE_FUNC
00059 # endif
00060 # define G_INLINE_FUNC static __inline
00061 #endif
00062
00063
00076 #if defined(G_PLATFORM_WIN32)
00077 # define VMTOOLS_GET_FILENAME_LOCAL(path, err) (gchar *) (path)
00078 #else
00079 # define VMTOOLS_GET_FILENAME_LOCAL(path, err) g_filename_from_utf8((path), \
00080 -1, \
00081 NULL, \
00082 NULL, \
00083 (err))
00084 #endif
00085
00092 #if defined(G_PLATFORM_WIN32)
00093 # define VMTOOLS_RELEASE_FILENAME_LOCAL(path) (void) (path)
00094 #else
00095 # define VMTOOLS_RELEASE_FILENAME_LOCAL(path) g_free(path)
00096 #endif
00097
00099 #define VMTOOLS_WRAP_ARRAY(a) VMTools_WrapArray((a), sizeof *(a), G_N_ELEMENTS(a))
00100
00101
00102 G_BEGIN_DECLS
00103
00104 void
00105 vm_free(void *ptr);
00106
00107 gboolean
00108 VMTools_LoadConfig(const gchar *path,
00109 GKeyFileFlags flags,
00110 GKeyFile **config,
00111 time_t *mtime);
00112
00113 gboolean
00114 VMTools_WriteConfig(const gchar *path,
00115 GKeyFile *config,
00116 GError **err);
00117
00118 gboolean
00119 VMTools_ChangeLogFilePath(const gchar *delimiter,
00120 const gchar *appendString,
00121 const gchar *domain,
00122 GKeyFile *conf);
00123
00124 gboolean
00125 VMTools_ConfigGetBoolean(GKeyFile *config,
00126 const gchar *section,
00127 const gchar *key,
00128 gboolean defValue);
00129
00130 gint
00131 VMTools_ConfigGetInteger(GKeyFile *config,
00132 const gchar *section,
00133 const gchar *key,
00134 gint defValue);
00135
00136 gchar *
00137 VMTools_ConfigGetString(GKeyFile *config,
00138 const gchar *section,
00139 const gchar *key,
00140 gchar *defValue);
00141
00142 #if defined(G_PLATFORM_WIN32)
00143
00144 gboolean
00145 VMTools_AttachConsole(void);
00146
00147 GSource *
00148 VMTools_NewHandleSource(HANDLE h);
00149
00150 #else
00151
00153 typedef gboolean (*SignalSourceCb)(const siginfo_t *, gpointer);
00154
00155 GSource *
00156 VMTools_NewSignalSource(int signum);
00157
00158 gchar *
00159 VMTools_GetLibdir(void);
00160
00161 #endif
00162
00163 GSource *
00164 VMTools_CreateTimer(gint timeout);
00165
00166 void
00167 VMTools_SetGuestSDKMode(void);
00168
00169 void
00170 VMTools_AcquireLogStateLock(void);
00171
00172 void
00173 VMTools_ReleaseLogStateLock(void);
00174
00175 void
00176 VMTools_StopLogging(void);
00177
00178 void
00179 VMTools_RestartLogging(void);
00180
00181 void
00182 VMTools_SuspendLogIO(void);
00183
00184 void
00185 VMTools_ResumeLogIO(void);
00186
00187 GArray *
00188 VMTools_WrapArray(gconstpointer data,
00189 guint elemSize,
00190 guint count);
00191
00192 G_END_DECLS
00193
00196 #endif
00197