|
open-vm-tools 10.1.0
|
00001 /********************************************************* 00002 * Copyright (C) 2008-2016 VMware, Inc. All rights reserved. 00003 * 00004 * This program is free software; you can redistribute it and/or modify it 00005 * under the terms of the GNU Lesser General Public License as published 00006 * by the Free Software Foundation version 2.1 and no later version. 00007 * 00008 * This program is distributed in the hope that it will be useful, but 00009 * WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY 00010 * or FITNESS FOR A PARTICULAR PURPOSE. See the Lesser GNU General Public 00011 * License for more details. 00012 * 00013 * You should have received a copy of the GNU Lesser General Public License 00014 * along with this program; if not, write to the Free Software Foundation, Inc., 00015 * 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA. 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 /* Work around a glib limitation: it doesn't set G_INLINE_FUNC on Win32. */ 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 /* _VMWARE_TOOLS_UTILS_H_ */ 00197
1.7.3