]> git.ipfire.org Git - thirdparty/open-vm-tools.git/commitdiff
Common source file changes; not directly applicable to open-vm-tools
authorOliver Kurth <okurth@vmware.com>
Fri, 27 Jul 2018 18:46:19 +0000 (11:46 -0700)
committerOliver Kurth <okurth@vmware.com>
Fri, 27 Jul 2018 18:46:19 +0000 (11:46 -0700)
open-vm-tools/lib/include/vmstdio.h
open-vm-tools/lib/misc/vmstdio.c

index 944ddebb76b6d592338b3605d9ff2200a3de8d4e..00adc11840009492632819d097b89288d0c12420 100644 (file)
@@ -37,6 +37,10 @@ typedef enum {
    StdIO_Success,
 } StdIO_Status;
 
+typedef void (*SnowMotionLogger)(char *buf);
+
+void
+StdIO_ToggleSnowMotionLogging(SnowMotionLogger logger);
 
 StdIO_Status
 StdIO_ReadNextLine(FILE *stream,         // IN
index 5a04d7397db3eed22338df2a979c6d3948beaaf1..6d8075eb5bde9956f98e636b28635a6a44455715 100644 (file)
 #include "vmware.h"
 #include "dynbuf.h"
 #include "vmstdio.h"
+#include "posixInt.h"
+
+
+static SnowMotionLogger snowMotionLogger = NULL;
+
+/*
+ *-----------------------------------------------------------------------------
+ *
+ * StdIO_ToggleSnowMotionLogging --
+ *
+ *    SnowMotion-specific log toggling - as per PR#2121674 and 2108730, vmx
+ *    corruption appears to occur at some arbitrary point prior to VM powerOn,
+ *    but only in CAT - it has not been reproducible locally or via manually
+ *    triggered Nimbus testruns.
+ *
+ *    To try to isolate the corruption point, add a toggled logging mechanism
+ *    that will dump the results of SuperFGets for the interval between
+ *    main initializing and VM powerOn.
+ *
+ *    This is a strictly temporary mechanism to provide the necessary logging
+ *    to debug this issue.
+ *
+ *-----------------------------------------------------------------------------
+ */
+
+void
+StdIO_ToggleSnowMotionLogging(SnowMotionLogger logger)   // IN:
+{
+   snowMotionLogger = logger;
+}
 
 
 /*
@@ -135,6 +165,10 @@ SuperFgets(FILE *stream,   // IN:
 
    *count = size;
 
+   if (snowMotionLogger != NULL) {
+      snowMotionLogger(buf);
+   }
+
    return buf;
 }