open-vm-tools 10.0.0

- Main Page
- Modules
- Data Structures
- Files

- File List
- Globals

utils.h
Go to the documentation of this file.
1 /*********************************************************
2 * Copyright (C) 2008-2015 VMware, Inc. All rights reserved.
3 *
4 * This program is free software; you can redistribute it and/or modify it
5 * under the terms of the GNU Lesser General Public License as published
6 * by the Free Software Foundation version 2.1 and no later version.
7 *
8 * This program is distributed in the hope that it will be useful, but
9 * WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY
10 * or FITNESS FOR A PARTICULAR PURPOSE. See the Lesser GNU General Public
11 * License for more details.
12 *
13 * You should have received a copy of the GNU Lesser General Public License
14 * along with this program; if not, write to the Free Software Foundation, Inc.,
15 * 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.
16 *
17 *********************************************************/
18
19 #ifndef _VMWARE_TOOLS_UTILS_H_
20 #define _VMWARE_TOOLS_UTILS_H_
21
37 #define VMTOOLS_GUEST_SERVICE "vmsvc"
38 #define VMTOOLS_USER_SERVICE "vmusr"
39
40 #if defined(__cplusplus)
41 # define VMTOOLS_EXTERN_C extern "C"
42 #else
43 # define VMTOOLS_EXTERN_C
44 #endif
45
46 #include <glib.h>
47 #if defined(G_PLATFORM_WIN32)
48 # include <windows.h>
49 #else
50 # include <signal.h>
51 # include <sys/time.h>
52 #endif
53
54
55 /* Work around a glib limitation: it doesn't set G_INLINE_FUNC on Win32. */
56 #if defined(G_PLATFORM_WIN32)
57 # if defined(G_INLINE_FUNC)
58 # undef G_INLINE_FUNC
59 # endif
60 # define G_INLINE_FUNC static __inline
61 #endif
62
63
76 #if defined(G_PLATFORM_WIN32)
77 # define VMTOOLS_GET_FILENAME_LOCAL(path, err) (gchar *) (path)
78 #else
79 # define VMTOOLS_GET_FILENAME_LOCAL(path, err) g_filename_from_utf8((path), \
80 -1, \
81 NULL, \
82 NULL, \
83 (err))
84 #endif
85
92 #if defined(G_PLATFORM_WIN32)
93 # define VMTOOLS_RELEASE_FILENAME_LOCAL(path) (void) (path)
94 #else
95 # define VMTOOLS_RELEASE_FILENAME_LOCAL(path) g_free(path)
96 #endif
97
99 #define VMTOOLS_WRAP_ARRAY(a) VMTools_WrapArray((a), sizeof *(a), G_N_ELEMENTS(a))
100
101
102 G_BEGIN_DECLS
103
104 void
105 vm_free(void *ptr);
106
107 gboolean
108 VMTools_LoadConfig(const gchar *path,
109 GKeyFileFlags flags,
110 GKeyFile **config,
111 time_t *mtime);
112
113 gboolean
114 VMTools_WriteConfig(const gchar *path,
115 GKeyFile *config,
116 GError **err);
117
118 gboolean
119 VMTools_ChangeLogFilePath(const gchar *delimiter,
120 const gchar *appendString,
121 const gchar *domain,
122 GKeyFile *conf);
123
124 #if defined(G_PLATFORM_WIN32)
125
126 gboolean
127 VMTools_AttachConsole(void);
128
129 GSource *
130 VMTools_NewHandleSource(HANDLE h);
131
132 #else
133
135 typedef gboolean (*SignalSourceCb)(const siginfo_t *, gpointer);
136
137 GSource *
138 VMTools_NewSignalSource(int signum);
139
140 gchar *
141 VMTools_GetLibdir(void);
142
143 #endif
144
145 GSource *
146 VMTools_CreateTimer(gint timeout);
147
148 void
149 VMTools_SetGuestSDKMode(void);
150
151 void
152 VMTools_AcquireLogStateLock(void);
153
154 void
155 VMTools_ReleaseLogStateLock(void);
156
157 void
158 VMTools_StopLogging(void);
159
160 void
161 VMTools_RestartLogging(void);
162
163 void
164 VMTools_SuspendLogIO(void);
165
166 void
167 VMTools_ResumeLogIO(void);
168
169 GArray *
170 VMTools_WrapArray(gconstpointer data,
171 guint elemSize,
172 guint count);
173
174 G_END_DECLS
175
178 #endif /* _VMWARE_TOOLS_UTILS_H_ */
179
VMTools_StopLogging
void VMTools_StopLogging(void)
Definition: vmtoolsLog.c:1244
VMTools_WrapArray
GArray * VMTools_WrapArray(gconstpointer data, guint elemSize, guint count)
Definition: vmtools.c:61
VMTools_SetGuestSDKMode
void VMTools_SetGuestSDKMode(void)
Definition: vmtoolsLog.c:1313
VMTools_RestartLogging
void VMTools_RestartLogging(void)
Definition: vmtoolsLog.c:1256
VMTools_AcquireLogStateLock
void VMTools_AcquireLogStateLock(void)
Definition: vmtoolsLog.c:1221
VMTools_LoadConfig
gboolean VMTools_LoadConfig(const gchar *path, GKeyFileFlags flags, GKeyFile **config, time_t *mtime)
Definition: vmtoolsConfig.c:324
VMTools_WriteConfig
gboolean VMTools_WriteConfig(const gchar *path, GKeyFile *config, GError **err)
Definition: vmtoolsConfig.c:468
VMTools_ReleaseLogStateLock
void VMTools_ReleaseLogStateLock(void)
Definition: vmtoolsLog.c:1232
VMTools_SuspendLogIO
void VMTools_SuspendLogIO(void)
Definition: vmtoolsLog.c:1267
VMTools_ResumeLogIO
void VMTools_ResumeLogIO(void)
Definition: vmtoolsLog.c:1278
VMTools_CreateTimer
GSource * VMTools_CreateTimer(gint timeout)
Create a timer based on a monotonic clock source.
Definition: monotonicTimer.c:169
VMTools_NewSignalSource
GSource * VMTools_NewSignalSource(int signum)
Definition: signalSource.c:256
vm_free
G_BEGIN_DECLS void vm_free(void *ptr)
Definition: vmtools.c:128
SignalSourceCb
gboolean(* SignalSourceCb)(const siginfo_t *, gpointer)
Definition: utils.h:135