I have tried to fix the problems in this new patch. Thank you for the
review.
The agreement, however, puzzles me a little. Date seems not suitable for the
first blank according to the preceded text, but I can find no more phrase
for that.
Best wishes,
Yiwen
On Mon, Aug 18, 2008 at 2:06 PM, Yiwen Zhang <[EMAIL PROTECTED]> wrote:
>
>
> On 8/18/08, Adar Dembo <[EMAIL PROTECTED]> wrote:
>>
>> > This is my patch for 2008.08.08 release. This patch adds a
>> > simple "Record" panel to vmware-toolbox and "record" command
>> > to vmware-toolbox-cmd.
>> > I configured the build by "--without-procps --disable-unity",
>> > since I didn't install the two packages.
>> > I have tested the patch on rhel5, suse10 and ubuntu7.04.
>>
>> Thanks! I haven't reviewed the entire patch yet, but here are some
>> suggestions to get started:
>> - Please clean up your patch and make it conform to the open-vm-tools
>> coding style. You can see the coding style here:
>> http://open-vm-tools.wiki.sourceforge.net/CodingStandards. If something
>> is unclear or ambiguous, feel free to ask. Some specific things I
>> immediately noticed:
>> - Configure your editor to use levels of indentation sized to 3 spaces.
>> - No tabs; use an appropriate number of spaces instead.
>> - Continuation lines should obey the nesting of parenthesization.
>> - All arguments to new functions should have comment annotations next to
>> them (such as IN, OUT, or IN/OUT).
>> - New copyright preambles should be dated to 2008.
>> - The second line in the RecordCommand function header's "Side effects"
>> section needs more indentation.
>
>
> Thank you for your comment. I will double check.
>
> - I gather that you're familiar with the subcommands of the
>> BDOOR_CMD_STATELOGGER backdoor command through working with internal
>> engineers? I'm going to try and get the actual header documenting the
>> commands released so that you need not hard-code the values 1 and 2 in calls
>> to Record_Control.
>> - I think Record_Control should actually be in lib/guestApp/guestApp.c,
>> not in toolboxcmd-record.c. I'd rather that the GTK toolbox didn't depend on
>> any toolboxcmd* files, since the toolbox* and toolboxcmd* group of files can
>> be considered to be separate UI front-ends to a shared back-end.
>
>
> This is the point. I was trying to give it a proper place but I was not
> sure which lib it should be. Thanks.
>
> > I get the contribution agreement document, but I am not sure
>> > if paper form or electronic form is required.
>>
>> The agreement should be faxed or scanned and e-mailed.
>> http://open-vm-tools.sourceforge.net/contribute.php has more information;
>> choose whichever method is more convenient for you, and let me know if
>> neither are doable and we can work something else out.
>>
>> -------------------------------------------------------------------------
>> This SF.Net email is sponsored by the Moblin Your Move Developer's
>> challenge
>> Build the coolest Linux based applications with Moblin SDK & win great
>> prizes
>> Grand prize is a trip for two to an Open Source event anywhere in the
>> world
>> http://moblin-contest.org/redirect.php?banner_id=100&url=/
>> _______________________________________________
>> open-vm-tools-devel mailing list
>> open-vm-tools-devel@lists.sourceforge.net
>> https://lists.sourceforge.net/lists/listinfo/open-vm-tools-devel
>>
>
>
diff --git a/lib/guestApp/guestApp.c b/lib/guestApp/guestApp.c
index f319224..755cb89 100644
--- a/lib/guestApp/guestApp.c
+++ b/lib/guestApp/guestApp.c
@@ -1847,6 +1847,33 @@ GuestApp_RpcSendOneCPName(char const *cmd, // IN: RPCI command
}
#endif
+/*
+ *-----------------------------------------------------------------------------
+ *
+ * GuestApp_ControlRecord --
+ *
+ * Start or stop recording proccess, flagged by mode.
+ * mode 1 for start and mode 2 for stop.
+ *
+ * Results:
+ * 1 if the call is successful.
+ *
+ * Side effects:
+ * Host VMware product starts or stops recording this vm.
+ *
+ *-----------------------------------------------------------------------------
+ */
+
+uint16
+GuestApp_ControlRecord(int32 mode) // IN: flag of starting or stopping recording
+{
+ Backdoor_proto bp;
+ bp.in.size = mode;
+ bp.in.cx.halfs.low = BDOOR_CMD_STATELOGGER;
+ Backdoor(&bp);
+ return bp.out.ax.halfs.low;
+}
+
#ifdef __cplusplus
}
#endif
diff --git a/lib/include/guestApp.h b/lib/include/guestApp.h
index 9a4eada..fa93922 100644
--- a/lib/include/guestApp.h
+++ b/lib/include/guestApp.h
@@ -195,6 +195,8 @@ WCHAR *GuestApp_GetDictEntryDefaultW(GuestApp_Dict *dict,
Bool GuestApp_FindProgram(const char *program);
#endif
+uint16
+GuestApp_ControlRecord(int32 mode); // IN
#ifdef __cplusplus
}
#endif
diff --git a/toolbox/Makefile.am b/toolbox/Makefile.am
index c8e082d..a00c1eb 100644
--- a/toolbox/Makefile.am
+++ b/toolbox/Makefile.am
@@ -63,6 +63,7 @@ if HAVE_X11
vmware_toolbox_SOURCES += toolboxOptions.c
vmware_toolbox_SOURCES += toolboxScripts.c
vmware_toolbox_SOURCES += toolboxShrink.c
+ vmware_toolbox_SOURCES += toolboxRecord.c
# Here's something wacky: automake will muck up the translation of this
# conditional if it is indented. For more details, see:
@@ -106,6 +107,7 @@ vmware_toolbox_cmd_SOURCES += toolboxcmd-scripts.c
vmware_toolbox_cmd_SOURCES += toolboxcmd-shrink.c
vmware_toolbox_cmd_SOURCES += toolboxcmd-stat.c
vmware_toolbox_cmd_SOURCES += toolboxcmd-time.c
+vmware_toolbox_cmd_SOURCES += toolboxcmd-record.c
if HAVE_ICU
vmware_toolbox_cmd_LDADD += @ICU_LIBS@
diff --git a/toolbox/Makefile.in b/toolbox/Makefile.in
index db516c0..fef3790 100644
--- a/toolbox/Makefile.in
+++ b/toolbox/Makefile.in
@@ -71,13 +71,14 @@ binPROGRAMS_INSTALL = $(INSTALL_PROGRAM)
PROGRAMS = $(bin_PROGRAMS)
am__vmware_toolbox_SOURCES_DIST = debugStdio.c toolbox-gtk.c \
toolboxAbout.c toolboxDevices.c toolboxOptions.c \
- toolboxScripts.c toolboxShrink.c
+ toolboxScripts.c toolboxShrink.c toolboxRecord.c
@[EMAIL PROTECTED] = debugStdio.$(OBJEXT) \
@HAVE_X11_TRUE@ toolbox-gtk.$(OBJEXT) toolboxAbout.$(OBJEXT) \
@HAVE_X11_TRUE@ toolboxDevices.$(OBJEXT) \
@HAVE_X11_TRUE@ toolboxOptions.$(OBJEXT) \
@HAVE_X11_TRUE@ toolboxScripts.$(OBJEXT) \
[EMAIL PROTECTED]@ toolboxShrink.$(OBJEXT)
[EMAIL PROTECTED]@ toolboxShrink.$(OBJEXT) \
[EMAIL PROTECTED]@ toolboxRecord.$(OBJEXT)
vmware_toolbox_OBJECTS = $(am_vmware_toolbox_OBJECTS)
am__DEPENDENCIES_1 =
@[EMAIL PROTECTED] = \
@@ -86,7 +87,8 @@ am__DEPENDENCIES_1 =
am_vmware_toolbox_cmd_OBJECTS = debugStdio.$(OBJEXT) \
toolbox-cmd.$(OBJEXT) toolboxcmd-devices.$(OBJEXT) \
toolboxcmd-scripts.$(OBJEXT) toolboxcmd-shrink.$(OBJEXT) \
- toolboxcmd-stat.$(OBJEXT) toolboxcmd-time.$(OBJEXT)
+ toolboxcmd-stat.$(OBJEXT) toolboxcmd-time.$(OBJEXT) \
+ toolboxcmd-record.$(OBJEXT)
vmware_toolbox_cmd_OBJECTS = $(am_vmware_toolbox_cmd_OBJECTS)
vmware_toolbox_cmd_DEPENDENCIES = ../libguestlib/libguestlib.la \
../lib/guestInfo/libGuestInfo.a ../lib/guestApp/libGuestApp.a \
@@ -279,7 +281,7 @@ COMMON = ../lib/conf/libConf.a ../lib/eventManager/libEventManager.a \
@[EMAIL PROTECTED] = debugStdio.c toolbox-gtk.c \
@HAVE_X11_TRUE@ toolboxAbout.c toolboxDevices.c \
@HAVE_X11_TRUE@ toolboxOptions.c toolboxScripts.c \
[EMAIL PROTECTED]@ toolboxShrink.c
[EMAIL PROTECTED]@ toolboxShrink.c toolboxRecord.c
@HAVE_ICU_FALSE@@[EMAIL PROTECTED] = $(LINK)
@HAVE_ICU_TRUE@@[EMAIL PROTECTED] = $(LIBTOOL) --tag=CXX $(AM_LIBTOOLFLAGS) \
@HAVE_ICU_TRUE@@HAVE_X11_TRUE@ $(LIBTOOLFLAGS) --mode=link $(CXX) $(AM_CXXFLAGS) \
@@ -290,7 +292,7 @@ vmware_toolbox_cmd_LDADD = ../libguestlib/libguestlib.la \
$(COMMON) $(am__append_3)
vmware_toolbox_cmd_SOURCES = debugStdio.c toolbox-cmd.c \
toolboxcmd-devices.c toolboxcmd-scripts.c toolboxcmd-shrink.c \
- toolboxcmd-stat.c toolboxcmd-time.c
+ toolboxcmd-stat.c toolboxcmd-time.c toolboxcmd-record.c
@[EMAIL PROTECTED] = $(LINK)
@[EMAIL PROTECTED] = $(LIBTOOL) --tag=CXX $(AM_LIBTOOLFLAGS) \
@HAVE_ICU_TRUE@ $(LIBTOOLFLAGS) --mode=link $(CXX) \
@@ -384,6 +386,8 @@ distclean-compile:
@AMDEP_TRUE@@am__include@ @[EMAIL PROTECTED]/$(DEPDIR)/[EMAIL PROTECTED]@
@AMDEP_TRUE@@am__include@ @[EMAIL PROTECTED]/$(DEPDIR)/[EMAIL PROTECTED]@
@AMDEP_TRUE@@am__include@ @[EMAIL PROTECTED]/$(DEPDIR)/[EMAIL PROTECTED]@
[EMAIL PROTECTED]@@am__include@ @[EMAIL PROTECTED]/$(DEPDIR)/[EMAIL PROTECTED]@
[EMAIL PROTECTED]@@am__include@ @[EMAIL PROTECTED]/$(DEPDIR)/[EMAIL PROTECTED]@
.c.o:
@am__fastdepCC_TRUE@ $(COMPILE) -MT $@ -MD -MP -MF $(DEPDIR)/$*.Tpo -c -o $@ $<
diff --git a/toolbox/toolbox-cmd.c b/toolbox/toolbox-cmd.c
index 0b4887e..a3dd0a4 100644
--- a/toolbox/toolbox-cmd.c
+++ b/toolbox/toolbox-cmd.c
@@ -71,11 +71,13 @@ static int DiskCommand(char **argv, int argc);
static int StatCommand(char **argv, int argc);
static int ScriptCommand(char **argv, int argc);
static int TimeSyncCommand(char **argv, int argc);
+static int RecordCommand(char **argv, int argc);
static void DeviceHelp(char *progName);
static void DiskHelp(char *progName);
static void ScriptHelp(char *progName);
static void StatHelp(char *progName);
static void TimeSyncHelp(char *progName);
+static void RecordHelp(char *progName);
static void ToolboxCmdHelp(char *progName);
static const CmdTable * ParseCommand(char **argv, int argc);
static Bool CheckArgumentLength(char **argv, int argc);
@@ -91,6 +93,7 @@ static const CmdTable commands[] = {
{ "disk", DiskCommand, TRUE, DiskHelp},
{ "stat", StatCommand, FALSE, StatHelp},
{ "device", DeviceCommand, FALSE, DeviceHelp},
+ { "record", RecordCommand, FALSE, RecordHelp},
{ "help", HelpCommand, FALSE, ToolboxCmdHelp},
{ NULL, } };
@@ -185,7 +188,8 @@ ToolboxCmdHelp(char *progName)
" device\n"
" script\n"
" disk\n"
- " stat\n\n"
+ " stat\n"
+ " record\n\n"
"For additional information please visit http://www.vmware.com/support/\n\n",
progName, progName, progName, progName);
}
@@ -313,6 +317,32 @@ StatHelp(char *progName) // IN: The name of the program obtained from argv[0]
" cpulimit: Prints cput limit\n", progName);
}
+/*
+ *-----------------------------------------------------------------------------
+ *
+ * StatHelp --
+ *
+ * Prints the help for the stat command.
+ *
+ * Results:
+ * None.
+ *
+ * Side effects:
+ * None.
+ *
+ *-----------------------------------------------------------------------------
+ */
+
+static void
+RecordHelp(char *progName) // IN: The name of the program obtained from argv[0]
+{
+ printf("record: control recording process inside guest\n"
+ "Usage: %s record <subcommand>\n\n"
+ "Subcommands\n"
+ " start: start recording\n"
+ " stop: stop recording\n", progName);
+}
+
/*
*-----------------------------------------------------------------------------
@@ -582,7 +612,40 @@ TimeSyncCommand(char **argv, // IN: command line arguments
return EX_USAGE;
}
+/*
+ *-----------------------------------------------------------------------------
+ *
+ * RecordCommand --
+ *
+ * Parse and Handle recording commands.
+ *
+ * Results:
+ * Returns EXIT_SUCCESS on success.
+ * Returns the appropriate exit code errors.
+ *
+ * Side effects:
+ * Might start and stop recording, guest os may be suspended
+ * to wait for the recording panel in host.
+ *
+ *-----------------------------------------------------------------------------
+ */
+static int
+RecordCommand(char **argv, // IN: Command line arguments
+ int argc) // IN: Length of command line argumenst
+{
+ if (CheckArgumentLength(argv, argc)) {
+ if (strcmp(argv[optind], "start") == 0) {
+ return Record_StartRecording();
+ } else if (strcmp(argv[optind], "stop") == 0) {
+ return Record_StopRecording();
+ } else {
+ fprintf(stderr, "Unknown subcommand");
+ }
+ }
+ RecordHelp(argv[0]);
+ return EX_USAGE;
+}
/*
*-----------------------------------------------------------------------------
*
diff --git a/toolbox/toolbox-gtk.c b/toolbox/toolbox-gtk.c
index a49bd55..1bedcec 100644
--- a/toolbox/toolbox-gtk.c
+++ b/toolbox/toolbox-gtk.c
@@ -586,16 +586,20 @@ ToolsMain_Create(void)
#ifdef GTK2
gtk_notebook_append_page(GTK_NOTEBOOK(notebookMain), Scripts_Create(ToolsMain),
- gtk_label_new_with_mnemonic(TAB_LABEL_SCRIPTS));
+ gtk_label_new_with_mnemonic(TAB_LABEL_SCRIPTS));
gtk_notebook_append_page(GTK_NOTEBOOK(notebookMain), Shrink_Create(ToolsMain),
gtk_label_new_with_mnemonic(TAB_LABEL_SHRINK));
+ gtk_notebook_append_page(GTK_NOTEBOOK(notebookMain), Record_Create(ToolsMain),
+ gtk_label_new_with_mnemonic(TAB_LABEL_RECORD));
gtk_notebook_append_page(GTK_NOTEBOOK(notebookMain), About_Create(ToolsMain),
gtk_label_new_with_mnemonic(TAB_LABEL_ABOUT));
#else
gtk_notebook_append_page(GTK_NOTEBOOK(notebookMain), Scripts_Create(ToolsMain),
- gtk_label_new(TAB_LABEL_SCRIPTS));
+ gtk_label_new(TAB_LABEL_SCRIPTS));
gtk_notebook_append_page(GTK_NOTEBOOK(notebookMain), Shrink_Create(ToolsMain),
gtk_label_new(TAB_LABEL_SHRINK));
+ gtk_notebook_append_page(GTK_NOTEBOOK(notebookMain), Record_Create(ToolsMain),
+ gtk_lable_new(TAB_LABEL_RECORD));
gtk_notebook_append_page(GTK_NOTEBOOK(notebookMain), About_Create(ToolsMain),
gtk_label_new(TAB_LABEL_ABOUT));
#endif
diff --git a/toolbox/toolboxCmdInt.h b/toolbox/toolboxCmdInt.h
index f3a8f0c..2cfbc9b 100644
--- a/toolbox/toolboxCmdInt.h
+++ b/toolbox/toolboxCmdInt.h
@@ -80,4 +80,10 @@ int Stat_GetMemorySwapped(void);
int Stat_GetMemoryLimit(void);
int Stat_GetMemoryReservation(void);
+/*
+ * Record commands
+ */
+Bool Record_StartRecording(void);
+Bool Record_StopRecording(void);
+
#endif /*_TOOLBOX_CMD_H_*/
diff --git a/toolbox/toolboxGtkInt.h b/toolbox/toolboxGtkInt.h
index 3f9c42f..1cb1d78 100644
--- a/toolbox/toolboxGtkInt.h
+++ b/toolbox/toolboxGtkInt.h
@@ -48,12 +48,14 @@
#define TAB_LABEL_DEVICES "De_vices"
#define TAB_LABEL_SCRIPTS "Scri_pts"
#define TAB_LABEL_SHRINK "Shrin_k"
+#define TAB_LABEL_RECORD "_Record"
#define TAB_LABEL_ABOUT "Abo_ut"
#else
#define TAB_LABEL_OPTIONS "Options"
#define TAB_LABEL_DEVICES "Devices"
#define TAB_LABEL_SCRIPTS "Scripts"
#define TAB_LABEL_SHRINK "Shrink"
+#define TAB_LABEL_RECORD "Record"
#define TAB_LABEL_ABOUT "About"
#endif
@@ -69,6 +71,7 @@ GtkWidget* Devices_Create(GtkWidget* mainWnd);
GtkWidget* Options_Create(GtkWidget* mainWnd);
GtkWidget* Scripts_Create(GtkWidget* mainWnd);
GtkWidget* Shrink_Create(GtkWidget* mainWnd);
+GtkWidget* Record_Create(GtkWidget* mainWnd);
void Options_OnTimeSyncToggled(gpointer btn, gpointer data);
void Devices_OnDeviceToggled(gpointer btn, gpointer data);
diff --git a/toolbox/toolboxRecord.c b/toolbox/toolboxRecord.c
new file mode 100644
index 0000000..84bec08
--- /dev/null
+++ b/toolbox/toolboxRecord.c
@@ -0,0 +1,125 @@
+/*********************************************************
+ * Copyright (C) 2008 VMware, Inc. All rights reserved.
+ *
+ * This program is free software; you can redistribute it and/or modify it
+ * under the terms of the GNU Lesser General Public License as published
+ * by the Free Software Foundation version 2.1 and no later version.
+ *
+ * This program is distributed in the hope that it will be useful, but
+ * WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY
+ * or FITNESS FOR A PARTICULAR PURPOSE. See the Lesser GNU General Public
+ * License for more details.
+ *
+ * You should have received a copy of the GNU Lesser General Public License
+ * along with this program; if not, write to the Free Software Foundation, Inc.,
+ * 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.
+ *
+ *********************************************************/
+
+/*
+ * toolboxRecord.c --
+ *
+ * The record tab for the linux gtk toolbox.
+ */
+
+#include "toolboxGtkInt.h"
+
+static void Record_OnStart(gpointer, gpointer);
+static void Record_OnStop(gpointer, gpointer);
+
+/*
+ *-----------------------------------------------------------------------------
+ *
+ * Record_Create --
+ *
+ * Create, layout, and init the Record tab UI and all its widgets.
+ *
+ * Results:
+ * The Record tab widget (it's a vbox).
+ *
+ * Side effects:
+ * None.
+ *
+ *-----------------------------------------------------------------------------
+ */
+GtkWidget*
+Record_Create(GtkWidget* mainWnd)
+{
+ GtkWidget* recordtab;
+ GtkWidget* hbox[2];
+ GtkWidget* startbtn;
+ GtkWidget* stopbtn;
+ recordtab = gtk_vbox_new(FALSE, 50);
+ gtk_widget_show(recordtab);
+ hbox[0] = gtk_hbox_new(FALSE, 10);
+ hbox[1] = gtk_hbox_new(FALSE, 10);
+ gtk_widget_show(hbox[0]);
+ gtk_widget_show(hbox[1]);
+ gtk_box_pack_start(GTK_BOX(recordtab), hbox[0], FALSE, FALSE, 0);
+ gtk_box_pack_start(GTK_BOX(recordtab), hbox[1], FALSE, FALSE, 0);
+#ifdef GTK2
+ startbtn = gtk_button_new_with_mnemonic("Sta_rt");
+ stopbtn = gtk_button_new_with_mnemonic("S_top");
+#else
+ startbtn = gtk_button_new_with_label("Start");
+ stopbtn = gtk_button_new_with_label("Stop");
+#endif
+ gtk_widget_show(startbtn);
+ gtk_box_pack_start(GTK_BOX(hbox[1]), startbtn, FALSE, FALSE, 10);
+ gtk_widget_set_usize(startbtn, 70, 25);
+ gtk_signal_connect(GTK_OBJECT(startbtn), "clicked",
+ GTK_SIGNAL_FUNC(Record_OnStart), NULL);
+ gtk_widget_show(stopbtn);
+ gtk_box_pack_end(GTK_BOX(hbox[1]), stopbtn, FALSE, FALSE, 10);
+ gtk_widget_set_usize(stopbtn, 70, 6);
+ gtk_signal_connect(GTK_OBJECT(stopbtn), "clicked",
+ GTK_SIGNAL_FUNC(Record_OnStop), NULL);
+ return recordtab;
+}
+
+/*
+ *-----------------------------------------------------------------------------
+ *
+ * Record_OnStart --
+ *
+ * Callback for the gtk signal "clicked" on the Record tab's start
+ * button.
+ *
+ * Results:
+ * None.
+ *
+ * Side effects:
+ * Host VMware product starts recording this vm.
+ *
+ *-----------------------------------------------------------------------------
+ */
+void
+Record_OnStart(gpointer btn, // IN: unused
+ gpointer data) // IN: unused
+{
+ GuestApp_ControlRecord(1);
+}
+
+/*
+ *-----------------------------------------------------------------------------
+ *
+ * Record_OnStop --
+ *
+ * Callback for the gtk signal "clicked" on the Record tab's stop
+ * button.
+ *
+ * Results:
+ * None.
+ *
+ * Side effects:
+ * Host VMware product stops recording this vm.
+ *
+ *-----------------------------------------------------------------------------
+ */
+void
+Record_OnStop(gpointer btn, // IN: unused
+ gpointer data) // IN: unused
+{
+ GuestApp_ControlRecord(2);
+}
+
diff --git a/toolbox/toolboxcmd-record.c b/toolbox/toolboxcmd-record.c
new file mode 100644
index 0000000..7ebd2d3
--- /dev/null
+++ b/toolbox/toolboxcmd-record.c
@@ -0,0 +1,70 @@
+/*********************************************************
+ * Copyright (C) 2008 VMware, Inc. All rights reserved.
+ *
+ * This program is free software; you can redistribute it and/or modify it
+ * under the terms of the GNU Lesser General Public License as published
+ * by the Free Software Foundation version 2.1 and no later version.
+ *
+ * This program is distributed in the hope that it will be useful, but
+ * WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY
+ * or FITNESS FOR A PARTICULAR PURPOSE. See the Lesser GNU General Public
+ * License for more details.
+ *
+ * You should have received a copy of the GNU Lesser General Public License
+ * along with this program; if not, write to the Free Software Foundation, Inc.,
+ * 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.
+ *
+ *********************************************************/
+
+/*
+ * toolboxcmd-record.c --
+ *
+ * Record operations for toolbox command line console.
+ */
+
+#include "toolboxCmdInt.h"
+
+/*
+ *-----------------------------------------------------------------------------
+ *
+ * Record_StartRecording --
+ *
+ * Start recording proccess.
+ *
+ * Results:
+ * TRUE if the call is successful, FALSE otherwise.
+ *
+ * Side effects:
+ * Host VMware product starts recording this vm.
+ *
+ *-----------------------------------------------------------------------------
+ */
+
+Bool
+Record_StartRecording(void)
+{
+ return (GuestApp_ControlRecord(1) == 1);
+}
+
+/*
+ *-----------------------------------------------------------------------------
+ *
+ * Record_StopRecording --
+ *
+ * Stop recording proccess,
+ *
+ * Results:
+ * TRUE if the call is successful, FALSE otherwise.
+ *
+ * Side effects:
+ * Host VMware product stops recording this vm.
+ *
+ *-----------------------------------------------------------------------------
+ */
+
+Bool
+Record_StopRecording(void)
+{
+ return (GuestApp_ControlRecord(2) == 1);
+}
+
-------------------------------------------------------------------------
This SF.Net email is sponsored by the Moblin Your Move Developer's challenge
Build the coolest Linux based applications with Moblin SDK & win great prizes
Grand prize is a trip for two to an Open Source event anywhere in the world
http://moblin-contest.org/redirect.php?banner_id=100&url=/
_______________________________________________
open-vm-tools-devel mailing list
open-vm-tools-devel@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/open-vm-tools-devel