<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
<HTML xmlns="http://www.w3.org/TR/REC-html40" xmlns:v = 
"urn:schemas-microsoft-com:vml" xmlns:o = 
"urn:schemas-microsoft-com:office:office" xmlns:w = 
"urn:schemas-microsoft-com:office:word" xmlns:m = 
"http://schemas.microsoft.com/office/2004/12/omml"><HEAD>
<META content="text/html; charset=us-ascii" http-equiv=Content-Type>
<META name=GENERATOR content="MSHTML 8.00.6001.18928">
<STYLE>@font-face {
        font-family: Cambria Math;
}
@font-face {
        font-family: Calibri;
}
@page WordSection1 {size: 8.5in 11.0in; margin: 1.0in 1.0in 1.0in 1.0in; }
P.MsoNormal {
        MARGIN: 0in 0in 0pt; FONT-FAMILY: "Calibri","sans-serif"; FONT-SIZE: 11pt
}
LI.MsoNormal {
        MARGIN: 0in 0in 0pt; FONT-FAMILY: "Calibri","sans-serif"; FONT-SIZE: 11pt
}
DIV.MsoNormal {
        MARGIN: 0in 0in 0pt; FONT-FAMILY: "Calibri","sans-serif"; FONT-SIZE: 11pt
}
A:link {
        COLOR: blue; TEXT-DECORATION: underline; mso-style-priority: 99
}
SPAN.MsoHyperlink {
        COLOR: blue; TEXT-DECORATION: underline; mso-style-priority: 99
}
A:visited {
        COLOR: purple; TEXT-DECORATION: underline; mso-style-priority: 99
}
SPAN.MsoHyperlinkFollowed {
        COLOR: purple; TEXT-DECORATION: underline; mso-style-priority: 99
}
SPAN.EmailStyle17 {
        FONT-FAMILY: "Calibri","sans-serif"; COLOR: windowtext; mso-style-type: personal-compose
}
.MsoChpDefault {
        mso-style-type: export-only
}
DIV.WordSection1 {
        page: WordSection1
}
</STYLE>
<!--[if gte mso 9]><xml>
 <o:shapedefaults v:ext="edit" spidmax="1026" />
</xml><![endif]--><!--[if gte mso 9]><xml>
 <o:shapelayout v:ext="edit">
  <o:idmap v:ext="edit" data="1" />
 </o:shapelayout></xml><![endif]--></HEAD>
<BODY lang=EN-US link=blue vLink=purple>
<DIV dir=ltr align=left><SPAN class=709192516-04082010><FONT color=#0000ff 
size=2 face=Arial>Hello,</FONT></SPAN></DIV>
<DIV dir=ltr align=left><SPAN class=709192516-04082010><FONT color=#0000ff 
size=2 face=Arial>  Sean Hefty is the maintainer of the IB Diags code; he 
is currently on vacation. </FONT></SPAN></DIV>
<DIV dir=ltr align=left><SPAN class=709192516-04082010><FONT color=#0000ff 
size=2 face=Arial></FONT></SPAN> </DIV>
<DIV dir=ltr align=left><SPAN class=709192516-04082010><FONT color=#0000ff 
size=2 face=Arial>All the corner cases look to be covered, I would recommend you 
SVN commit this.</FONT></SPAN></DIV>
<DIV dir=ltr align=left><SPAN class=709192516-04082010><FONT color=#0000ff 
size=2 face=Arial></FONT></SPAN> </DIV>
<DIV dir=ltr align=left><SPAN class=709192516-04082010><FONT color=#0000ff 
size=2 face=Arial>Sean likes to keep the Windows source as 'close' as possible 
to the Linux source to ease the burden when updating source 
files.</FONT></SPAN></DIV>
<DIV dir=ltr align=left><SPAN class=709192516-04082010><FONT color=#0000ff 
size=2 face=Arial>Things like '__cdecl' for x86 are Windows only constructs and 
Sean likes to handle these with a patch.</FONT></SPAN></DIV>
<DIV dir=ltr align=left><SPAN class=709192516-04082010><FONT color=#0000ff 
size=2 face=Arial>When Sean returns the two of you can work out the minor 
details.</FONT></SPAN></DIV>
<DIV dir=ltr align=left><SPAN class=709192516-04082010><FONT color=#0000ff 
size=2 face=Arial></FONT></SPAN> </DIV>
<DIV dir=ltr align=left><SPAN class=709192516-04082010><FONT color=#0000ff 
size=2 face=Arial>stan.</FONT></SPAN></DIV>
<DIV dir=ltr align=left><SPAN class=709192516-04082010><FONT color=#0000ff 
size=2 face=Arial></FONT></SPAN> </DIV><BR>
<DIV dir=ltr lang=en-us class=OutlookMessageHeader align=left>
<HR tabIndex=-1>
<FONT size=2 face=Tahoma><B>From:</B> ofw-bounces@lists.openfabrics.org 
[mailto:ofw-bounces@lists.openfabrics.org] <B>On Behalf Of </B>Irena 
Kruchkovsky<BR><B>Sent:</B> Wednesday, August 04, 2010 12:04 AM<BR><B>To:</B> 
ofw@lists.openfabrics.org<BR><B>Subject:</B> [ofw] [Patch] 
[Tools][infiniband-diags] ibclearerrors tool<BR></FONT><BR></DIV>
<DIV></DIV>
<DIV class=WordSection1>
<P class=MsoNormal>A tool imported from Linux.<o:p></o:p></P>
<P class=MsoNormal>The tool runs perfquery on all the nodes that appear in 
ibnetdiscover output or in a given topology file. <o:p></o:p></P>
<P class=MsoNormal><o:p> </o:p></P>
<P class=MsoNormal>Usage:<o:p></o:p></P>
<P class=MsoNormal><o:p> </o:p></P>
<P class=MsoNormal>ibclearerrors [-h] [<topology-file> | -C ca_name -P 
ca_port -t timeout_ms]<o:p></o:p></P>
<P style="TEXT-INDENT: 0.5in" class=MsoNormal>h - Help (displays this 
message)<o:p></o:p></P>
<P class=MsoNormal>        
        <topology-file> - should be in 
the format indicated by ibnetdiscover<o:p></o:p></P>
<P class=MsoNormal>        
        ca_name - the name indicated by 
ibstat<o:p></o:p></P>
<P class=MsoNormal><o:p> </o:p></P>
<P class=MsoNormal><o:p> </o:p></P>
<P class=MsoNormal><o:p> </o:p></P>
<P class=MsoNormal>Index: 
D:/Windows/MLNX_VPI/tools/infiniband-diags/src/ibclearerrors.c<o:p></o:p></P>
<P 
class=MsoNormal>===================================================================<o:p></o:p></P>
<P class=MsoNormal>--- 
D:/Windows/MLNX_VPI/tools/infiniband-diags/src/ibclearerrors.c    
(revision 0)<o:p></o:p></P>
<P class=MsoNormal>+++ 
D:/Windows/MLNX_VPI/tools/infiniband-diags/src/ibclearerrors.c (revision 
6180)<o:p></o:p></P>
<P class=MsoNormal>@@ -0,0 +1,363 @@<o:p></o:p></P>
<P class=MsoNormal>+/*<o:p></o:p></P>
<P class=MsoNormal>+ * Copyright (c) 2004-2008 Voltaire Inc.  All rights 
reserved.<o:p></o:p></P>
<P class=MsoNormal>+ *<o:p></o:p></P>
<P class=MsoNormal>+ * This software is available to you under a choice of one 
of two<o:p></o:p></P>
<P class=MsoNormal>+ * licenses.  You may choose to be licensed under the 
terms of the GNU<o:p></o:p></P>
<P class=MsoNormal>+ * General Public License (GPL) Version 2, available from 
the file<o:p></o:p></P>
<P class=MsoNormal>+ * COPYING in the main directory of this source tree, or 
the<o:p></o:p></P>
<P class=MsoNormal>+ * OpenIB.org BSD license below:<o:p></o:p></P>
<P class=MsoNormal>+ *<o:p></o:p></P>
<P class=MsoNormal>+ *     Redistribution and use in source 
and binary forms, with or<o:p></o:p></P>
<P class=MsoNormal>+ *     without modification, are 
permitted provided that the following<o:p></o:p></P>
<P class=MsoNormal>+ *     conditions are 
met:<o:p></o:p></P>
<P class=MsoNormal>+ *<o:p></o:p></P>
<P class=MsoNormal>+ *      - Redistributions of source 
code must retain the above<o:p></o:p></P>
<P class=MsoNormal>+ *        copyright 
notice, this list of conditions and the following<o:p></o:p></P>
<P class=MsoNormal>+ *        
disclaimer.<o:p></o:p></P>
<P class=MsoNormal>+ *<o:p></o:p></P>
<P class=MsoNormal>+ *      - Redistributions in binary 
form must reproduce the above<o:p></o:p></P>
<P class=MsoNormal>+ *        copyright 
notice, this list of conditions and the following<o:p></o:p></P>
<P class=MsoNormal>+ *        disclaimer in 
the documentation and/or other materials<o:p></o:p></P>
<P class=MsoNormal>+ *        provided with 
the distribution.<o:p></o:p></P>
<P class=MsoNormal>+ *<o:p></o:p></P>
<P class=MsoNormal>+ * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY 
KIND,<o:p></o:p></P>
<P class=MsoNormal>+ * EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE 
WARRANTIES OF<o:p></o:p></P>
<P class=MsoNormal>+ * MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE 
AND<o:p></o:p></P>
<P class=MsoNormal>+ * NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR 
COPYRIGHT HOLDERS<o:p></o:p></P>
<P class=MsoNormal>+ * BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, 
WHETHER IN AN<o:p></o:p></P>
<P class=MsoNormal>+ * ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT 
OF OR IN<o:p></o:p></P>
<P class=MsoNormal>+ * CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS 
IN THE<o:p></o:p></P>
<P class=MsoNormal>+ * SOFTWARE.<o:p></o:p></P>
<P class=MsoNormal>+ *<o:p></o:p></P>
<P class=MsoNormal>+ */<o:p></o:p></P>
<P class=MsoNormal>+<o:p></o:p></P>
<P class=MsoNormal>+#if HAVE_CONFIG_H<o:p></o:p></P>
<P class=MsoNormal>+#  include <config.h><o:p></o:p></P>
<P 
class=MsoNormal>+#endif                                                                
/* HAVE_CONFIG_H */<o:p></o:p></P>
<P class=MsoNormal>+<o:p></o:p></P>
<P class=MsoNormal>+#include <stdio.h><o:p></o:p></P>
<P class=MsoNormal>+#include <stdlib.h><o:p></o:p></P>
<P class=MsoNormal>+#include <string.h><o:p></o:p></P>
<P class=MsoNormal>+#include <windows.h><o:p></o:p></P>
<P class=MsoNormal>+#include <strsafe.h><o:p></o:p></P>
<P class=MsoNormal>+#include <infiniband/umad.h><o:p></o:p></P>
<P class=MsoNormal>+#include <infiniband/mad.h><o:p></o:p></P>
<P class=MsoNormal>+<o:p></o:p></P>
<P class=MsoNormal>+#include "ibdiag_common.h"<o:p></o:p></P>
<P class=MsoNormal>+<o:p></o:p></P>
<P class=MsoNormal>+#define X_PARAMLEN 254<o:p></o:p></P>
<P class=MsoNormal>+#define X_LINELEN 4096<o:p></o:p></P>
<P class=MsoNormal>+#define X_TEMPFILE "ibnetdiscoverTMP.txt"<o:p></o:p></P>
<P class=MsoNormal>+#define X_TEMPFILELEN 20<o:p></o:p></P>
<P class=MsoNormal>+<o:p></o:p></P>
<P class=MsoNormal>+<o:p></o:p></P>
<P class=MsoNormal>+<o:p></o:p></P>
<P class=MsoNormal>+static void ShowUsage()<o:p></o:p></P>
<P class=MsoNormal>+{<o:p></o:p></P>
<P class=MsoNormal>+    printf( "ibclearerrors [-h] 
[<topology-file>" \<o:p></o:p></P>
<P 
class=MsoNormal>+             
    "| -C ca_name -P ca_port -t timeout_ms]\n"<o:p></o:p></P>
<P class=MsoNormal>+        "\th\t\t - Help 
(displays this message)\n"<o:p></o:p></P>
<P class=MsoNormal>+        
"\t<topology-file>\t - should be in the format indicated by 
ibnetdiscover\n"<o:p></o:p></P>
<P class=MsoNormal>+        "\tca_name\t\t - 
the name indicated by ibstat\n");<o:p></o:p></P>
<P 
class=MsoNormal>+             
exit(1);<o:p></o:p></P>
<P class=MsoNormal>+}<o:p></o:p></P>
<P class=MsoNormal>+<o:p></o:p></P>
<P class=MsoNormal>+static void printCopyError(char* copiedVal, HRESULT 
hr)<o:p></o:p></P>
<P 
class=MsoNormal>+{            
<o:p></o:p></P>
<P 
class=MsoNormal>+             
if (hr == ERROR_INSUFFICIENT_BUFFER)<o:p></o:p></P>
<P 
class=MsoNormal>+             
{<o:p></o:p></P>
<P 
class=MsoNormal>+                             
printf("The %s length is too long %08x.\n", copiedVal, hr);<o:p></o:p></P>
<P 
class=MsoNormal>+             
}<o:p></o:p></P>
<P 
class=MsoNormal>+             
else <o:p></o:p></P>
<P 
class=MsoNormal>+             
{<o:p></o:p></P>
<P 
class=MsoNormal>+                             
printf("Error in getting the %s %08x.\n", copiedVal, hr);<o:p></o:p></P>
<P 
class=MsoNormal>+             
}<o:p></o:p></P>
<P 
class=MsoNormal>+             
exit(-1);<o:p></o:p></P>
<P class=MsoNormal>+}<o:p></o:p></P>
<P class=MsoNormal>+<o:p></o:p></P>
<P class=MsoNormal>+static int clearErrors(char* caInfo, char* lid, char* port, 
BOOL all)<o:p></o:p></P>
<P class=MsoNormal>+{<o:p></o:p></P>
<P 
class=MsoNormal>+             
char usedCommand [ X_LINELEN ];<o:p></o:p></P>
<P 
class=MsoNormal>+             
HRESULT hr;<o:p></o:p></P>
<P 
class=MsoNormal>+             
<o:p></o:p></P>
<P 
class=MsoNormal>+             
if ((caInfo == NULL) || <o:p></o:p></P>
<P 
class=MsoNormal>+                             
(lid == NULL) || (strlen(lid) <= 0)||<o:p></o:p></P>
<P 
class=MsoNormal>+                             
(port == NULL) || (strlen(port) <= 0))<o:p></o:p></P>
<P 
class=MsoNormal>+             
{<o:p></o:p></P>
<P 
class=MsoNormal>+                             
return 
1;              
<o:p></o:p></P>
<P 
class=MsoNormal>+             
}<o:p></o:p></P>
<P class=MsoNormal>+<o:p></o:p></P>
<P 
class=MsoNormal>+             
hr = StringCchPrintfEx(usedCommand,X_LINELEN,NULL,NULL,0,<o:p></o:p></P>
<P 
class=MsoNormal>+                       
"perfquery %s -R %s %s %s 0x0fff",<o:p></o:p></P>
<P 
class=MsoNormal>+                       
caInfo,<o:p></o:p></P>
<P 
class=MsoNormal>+                       
(all ? "-a" : ""),<o:p></o:p></P>
<P 
class=MsoNormal>+                                                                                             
lid, <o:p></o:p></P>
<P 
class=MsoNormal>+                                                                                             
port);<o:p></o:p></P>
<P 
class=MsoNormal>+             
if (FAILED(hr))   <o:p></o:p></P>
<P 
class=MsoNormal>+             
{<o:p></o:p></P>
<P 
class=MsoNormal>+                             
StringCchPrintfEx(usedCommand,X_LINELEN,NULL,NULL,0,"used 
Command");<o:p></o:p></P>
<P 
class=MsoNormal>+                             
printCopyError(usedCommand,hr);<o:p></o:p></P>
<P 
class=MsoNormal>+             
}<o:p></o:p></P>
<P class=MsoNormal>+<o:p></o:p></P>
<P 
class=MsoNormal>+             
if (system(usedCommand))<o:p></o:p></P>
<P 
class=MsoNormal>+             
{<o:p></o:p></P>
<P 
class=MsoNormal>+                             
return 1;<o:p></o:p></P>
<P 
class=MsoNormal>+             
}<o:p></o:p></P>
<P 
class=MsoNormal>+             
else<o:p></o:p></P>
<P 
class=MsoNormal>+             
{<o:p></o:p></P>
<P 
class=MsoNormal>+                             
return 0;<o:p></o:p></P>
<P 
class=MsoNormal>+             
}              
<o:p></o:p></P>
<P class=MsoNormal>+}<o:p></o:p></P>
<P class=MsoNormal>+<o:p></o:p></P>
<P class=MsoNormal>+static char* getLid(char* line, char* lidPrefix) 
<o:p></o:p></P>
<P class=MsoNormal>+{<o:p></o:p></P>
<P 
class=MsoNormal>+             
//<o:p></o:p></P>
<P 
class=MsoNormal>+             
//Get lid start position<o:p></o:p></P>
<P 
class=MsoNormal>+             
//<o:p></o:p></P>
<P 
class=MsoNormal>+             
char* lidStart = strstr(line, lidPrefix) + strlen(lidPrefix); <o:p></o:p></P>
<P class=MsoNormal>+<o:p></o:p></P>
<P 
class=MsoNormal>+             
//<o:p></o:p></P>
<P 
class=MsoNormal>+             
//Get the string from lidStart until the first position of a blank = exactly the 
lid<o:p></o:p></P>
<P 
class=MsoNormal>+             
//<o:p></o:p></P>
<P 
class=MsoNormal>+             
char* lid = strtok (lidStart," \t"); <o:p></o:p></P>
<P class=MsoNormal>+<o:p></o:p></P>
<P 
class=MsoNormal>+             
return lid;<o:p></o:p></P>
<P class=MsoNormal>+}<o:p></o:p></P>
<P class=MsoNormal>+<o:p></o:p></P>
<P class=MsoNormal>+int __cdecl main(int argc, char* argv[])<o:p></o:p></P>
<P class=MsoNormal>+{<o:p></o:p></P>
<P 
class=MsoNormal>+             
char topofile[X_PARAMLEN];<o:p></o:p></P>
<P 
class=MsoNormal>+             
BOOL topologyGiven = 0;<o:p></o:p></P>
<P class=MsoNormal>+<o:p></o:p></P>
<P 
class=MsoNormal>+             
char caInfo[X_LINELEN];<o:p></o:p></P>
<P 
class=MsoNormal>+             
BOOL caInfoGiven = 0;<o:p></o:p></P>
<P 
class=MsoNormal>+             
<o:p></o:p></P>
<P 
class=MsoNormal>+             
int nodes = 0;<o:p></o:p></P>
<P 
class=MsoNormal>+             
int errors = 0;<o:p></o:p></P>
<P 
class=MsoNormal>+             
<o:p></o:p></P>
<P 
class=MsoNormal>+             
FILE *fp;<o:p></o:p></P>
<P 
class=MsoNormal>+             
char line[X_LINELEN];<o:p></o:p></P>
<P 
class=MsoNormal>+             
char templine[X_LINELEN];<o:p></o:p></P>
<P class=MsoNormal>+<o:p></o:p></P>
<P 
class=MsoNormal>+             
int i;<o:p></o:p></P>
<P class=MsoNormal>+<o:p></o:p></P>
<P 
class=MsoNormal>+             
char type[10];<o:p></o:p></P>
<P 
class=MsoNormal>+             
char usedCommand[X_LINELEN];<o:p></o:p></P>
<P class=MsoNormal>+<o:p></o:p></P>
<P 
class=MsoNormal>+             
HRESULT hr;<o:p></o:p></P>
<P class=MsoNormal>+<o:p></o:p></P>
<P 
class=MsoNormal>+             
topofile[0] = '\0';<o:p></o:p></P>
<P class=MsoNormal>+<o:p></o:p></P>
<P 
class=MsoNormal>+             
for( i = 1; i < argc; i++ )<o:p></o:p></P>
<P class=MsoNormal>+    {<o:p></o:p></P>
<P class=MsoNormal>+        char* 
pArg;<o:p></o:p></P>
<P 
class=MsoNormal>+                             
char* nextArg;<o:p></o:p></P>
<P class=MsoNormal>+<o:p></o:p></P>
<P class=MsoNormal>+        pArg = 
argv[i];<o:p></o:p></P>
<P class=MsoNormal>+<o:p></o:p></P>
<P 
class=MsoNormal>+                             
if (( *pArg != '-' ) && ( *pArg != '/' ))<o:p></o:p></P>
<P 
class=MsoNormal>+                             
{<o:p></o:p></P>
<P 
class=MsoNormal>+                                             
if (strlen(topofile) == 0) <o:p></o:p></P>
<P 
class=MsoNormal>+                                             
{<o:p></o:p></P>
<P 
class=MsoNormal>+                                                             
hr = 
HRESULT_CODE(StringCchCopyNExA(topofile,X_PARAMLEN,pArg,X_PARAMLEN,NULL,NULL,0));<o:p></o:p></P>
<P 
class=MsoNormal>+                                                             
if (FAILED(hr))   <o:p></o:p></P>
<P 
class=MsoNormal>+                                                             
{<o:p></o:p></P>
<P 
class=MsoNormal>+                                                                             
StringCchPrintfEx(topofile,X_PARAMLEN,NULL,NULL,0,"topofile");<o:p></o:p></P>
<P 
class=MsoNormal>+                                                                             
printCopyError(topofile,hr);<o:p></o:p></P>
<P 
class=MsoNormal>+                                                             
}<o:p></o:p></P>
<P 
class=MsoNormal>+                                                             
topologyGiven = 1;<o:p></o:p></P>
<P 
class=MsoNormal>+                                                             
continue;<o:p></o:p></P>
<P 
class=MsoNormal>+                                             
}<o:p></o:p></P>
<P 
class=MsoNormal>+                                             
else<o:p></o:p></P>
<P 
class=MsoNormal>+                                             
{<o:p></o:p></P>
<P 
class=MsoNormal>+                                                             
ShowUsage();<o:p></o:p></P>
<P 
class=MsoNormal>+                
break;<o:p></o:p></P>
<P 
class=MsoNormal>+                                             
}                              
<o:p></o:p></P>
<P 
class=MsoNormal>+                             
}<o:p></o:p></P>
<P 
class=MsoNormal>+                                             
<o:p></o:p></P>
<P class=MsoNormal>+<o:p></o:p></P>
<P class=MsoNormal>+        // Skip leading 
dashes<o:p></o:p></P>
<P class=MsoNormal>+        while(( *pArg == 
'-' ) || ( *pArg == '/' ))<o:p></o:p></P>
<P 
class=MsoNormal>+            
pArg++;<o:p></o:p></P>
<P class=MsoNormal>+<o:p></o:p></P>
<P class=MsoNormal>+        switch( *pArg 
)<o:p></o:p></P>
<P class=MsoNormal>+        {<o:p></o:p></P>
<P class=MsoNormal>+        case 
'h':<o:p></o:p></P>
<P 
class=MsoNormal>+                             
case '?':<o:p></o:p></P>
<P 
class=MsoNormal>+                                             
ShowUsage();<o:p></o:p></P>
<P 
class=MsoNormal>+                                             
break;<o:p></o:p></P>
<P 
class=MsoNormal>+                             
case 'P':<o:p></o:p></P>
<P 
class=MsoNormal>+                             
case 'C':<o:p></o:p></P>
<P 
class=MsoNormal>+                             
case 't':<o:p></o:p></P>
<P 
class=MsoNormal>+            
if( ++i == argc )<o:p></o:p></P>
<P 
class=MsoNormal>+            
{<o:p></o:p></P>
<P 
class=MsoNormal>+                                                             
ShowUsage();<o:p></o:p></P>
<P 
class=MsoNormal>+                
break;<o:p></o:p></P>
<P 
class=MsoNormal>+            
}<o:p></o:p></P>
<P class=MsoNormal>+<o:p></o:p></P>
<P 
class=MsoNormal>+                                             
nextArg = argv[i];<o:p></o:p></P>
<P 
class=MsoNormal>+            
if( *nextArg == '-' )<o:p></o:p></P>
<P 
class=MsoNormal>+            
{<o:p></o:p></P>
<P 
class=MsoNormal>+                                                             
ShowUsage();<o:p></o:p></P>
<P 
class=MsoNormal>+                
break;<o:p></o:p></P>
<P 
class=MsoNormal>+            
}<o:p></o:p></P>
<P class=MsoNormal>+<o:p></o:p></P>
<P 
class=MsoNormal>+                                             
if (!caInfoGiven)<o:p></o:p></P>
<P 
class=MsoNormal>+                                             
{<o:p></o:p></P>
<P 
class=MsoNormal>+                                                             
StringCchPrintfEx(caInfo,X_LINELEN,NULL,NULL,0,"");<o:p></o:p></P>
<P 
class=MsoNormal>+                                             
}<o:p></o:p></P>
<P 
class=MsoNormal>+                                             
<o:p></o:p></P>
<P 
class=MsoNormal>+                                             
hr = StringCchPrintfEx(  caInfo,X_LINELEN,NULL,NULL,0,<o:p></o:p></P>
<P 
class=MsoNormal>+                                                                                                                                             
"%s -%s %s",caInfo,pArg,nextArg);<o:p></o:p></P>
<P 
class=MsoNormal>+                                             
if (FAILED(hr))   <o:p></o:p></P>
<P 
class=MsoNormal>+                                             
{<o:p></o:p></P>
<P 
class=MsoNormal>+                                                             
StringCchPrintfEx(caInfo,X_LINELEN,NULL,NULL,0,"caInfo");<o:p></o:p></P>
<P 
class=MsoNormal>+                                                             
printCopyError(caInfo,hr);<o:p></o:p></P>
<P 
class=MsoNormal>+                                             
}<o:p></o:p></P>
<P 
class=MsoNormal>+                                             
<o:p></o:p></P>
<P 
class=MsoNormal>+                                             
caInfoGiven = 1;<o:p></o:p></P>
<P 
class=MsoNormal>+            
break;<o:p></o:p></P>
<P class=MsoNormal>+        
default:<o:p></o:p></P>
<P 
class=MsoNormal>+            
printf( "Unknown parameter %s\n", pArg );<o:p></o:p></P>
<P 
class=MsoNormal>+            
ShowUsage();<o:p></o:p></P>
<P class=MsoNormal>+        }<o:p></o:p></P>
<P class=MsoNormal>+    }<o:p></o:p></P>
<P class=MsoNormal>+<o:p></o:p></P>
<P 
class=MsoNormal>+             
//<o:p></o:p></P>
<P 
class=MsoNormal>+             
// If a topology file was not given we will create one<o:p></o:p></P>
<P 
class=MsoNormal>+             
//<o:p></o:p></P>
<P 
class=MsoNormal>+             
if (!topologyGiven)<o:p></o:p></P>
<P 
class=MsoNormal>+             
{                              
<o:p></o:p></P>
<P 
class=MsoNormal>+                             
DWORD nPathLength = X_LINELEN+X_TEMPFILELEN;<o:p></o:p></P>
<P 
class=MsoNormal>+                             
char path[X_LINELEN+X_TEMPFILELEN];<o:p></o:p></P>
<P 
class=MsoNormal>+                             
int reqLen = GetTempPath(nPathLength, path);<o:p></o:p></P>
<P 
class=MsoNormal>+                             
if (reqLen > X_LINELEN)<o:p></o:p></P>
<P 
class=MsoNormal>+                             
{<o:p></o:p></P>
<P 
class=MsoNormal>+                                             
printf("Obtaining a path to create temporary files failed\n");<o:p></o:p></P>
<P 
class=MsoNormal>+                                             
exit(-1);<o:p></o:p></P>
<P 
class=MsoNormal>+                             
}              
<o:p></o:p></P>
<P 
class=MsoNormal>+                             
<o:p></o:p></P>
<P 
class=MsoNormal>+                             
hr = StringCchPrintfEx(  topofile,X_LINELEN,NULL,NULL,0,<o:p></o:p></P>
<P 
class=MsoNormal>+                                                                                                                             
"%s%s", path, X_TEMPFILE);<o:p></o:p></P>
<P 
class=MsoNormal>+                             
if (FAILED(hr))   <o:p></o:p></P>
<P 
class=MsoNormal>+                             
{<o:p></o:p></P>
<P 
class=MsoNormal>+                                             
StringCchPrintfEx(topofile,X_LINELEN,NULL,NULL,0,"topofile");<o:p></o:p></P>
<P 
class=MsoNormal>+                                             
printCopyError(topofile,hr);<o:p></o:p></P>
<P 
class=MsoNormal>+                             
}<o:p></o:p></P>
<P class=MsoNormal>+<o:p></o:p></P>
<P 
class=MsoNormal>+                             
hr = StringCchPrintfEx(  usedCommand,X_LINELEN,NULL,NULL,0,<o:p></o:p></P>
<P 
class=MsoNormal>+                                                                                                                             
"ibnetdiscover %s > %s", <o:p></o:p></P>
<P 
class=MsoNormal>+                                                                                                                             
caInfoGiven ? caInfo : "", <o:p></o:p></P>
<P 
class=MsoNormal>+                                                                                                                             
topofile );<o:p></o:p></P>
<P 
class=MsoNormal>+                             
if (FAILED(hr))   <o:p></o:p></P>
<P 
class=MsoNormal>+                             
{<o:p></o:p></P>
<P 
class=MsoNormal>+                                             
StringCchPrintfEx(usedCommand,X_LINELEN,NULL,NULL,0,"used 
Command");<o:p></o:p></P>
<P 
class=MsoNormal>+                                             
printCopyError(usedCommand,hr);<o:p></o:p></P>
<P 
class=MsoNormal>+                             
}<o:p></o:p></P>
<P 
class=MsoNormal>+                             
<o:p></o:p></P>
<P 
class=MsoNormal>+                             
if (system(usedCommand))<o:p></o:p></P>
<P 
class=MsoNormal>+                             
{<o:p></o:p></P>
<P 
class=MsoNormal>+                                             
printf("ibnetdiscover execution failed (%d)\n", GetLastError() );<o:p></o:p></P>
<P 
class=MsoNormal>+                                             
exit(1);<o:p></o:p></P>
<P 
class=MsoNormal>+                             
}<o:p></o:p></P>
<P 
class=MsoNormal>+             
}<o:p></o:p></P>
<P class=MsoNormal>+<o:p></o:p></P>
<P 
class=MsoNormal>+             
fp=fopen(topofile, "r");<o:p></o:p></P>
<P 
class=MsoNormal>+             
if(fp == NULL)<o:p></o:p></P>
<P 
class=MsoNormal>+             
{<o:p></o:p></P>
<P 
class=MsoNormal>+             
   printf("Cannot open file.\n");<o:p></o:p></P>
<P 
class=MsoNormal>+             
   exit(1);<o:p></o:p></P>
<P 
class=MsoNormal>+             
}<o:p></o:p></P>
<P class=MsoNormal>+<o:p></o:p></P>
<P 
class=MsoNormal>+             
while (fgets(line, X_LINELEN, fp) != NULL) <o:p></o:p></P>
<P 
class=MsoNormal>+             
{<o:p></o:p></P>
<P 
class=MsoNormal>+                             
if (strstr( line, "Ca" ) == line || <o:p></o:p></P>
<P 
class=MsoNormal>+                                             
strstr( line, "Rt" ) == line ||<o:p></o:p></P>
<P 
class=MsoNormal>+                                             
strstr( line, "Switch" ) == line)<o:p></o:p></P>
<P 
class=MsoNormal>+                             
{<o:p></o:p></P>
<P 
class=MsoNormal>+                                             
nodes++;<o:p></o:p></P>
<P 
class=MsoNormal>+                                             
<o:p></o:p></P>
<P 
class=MsoNormal>+                                             
//<o:p></o:p></P>
<P 
class=MsoNormal>+                                             
//First word is the type (one of the above)<o:p></o:p></P>
<P 
class=MsoNormal>+                                             
//<o:p></o:p></P>
<P 
class=MsoNormal>+                                             
hr = 
HRESULT_CODE(StringCchCopyNExA(templine,X_LINELEN,line,X_LINELEN,NULL,NULL,0));<o:p></o:p></P>
<P 
class=MsoNormal>+                                             
if (FAILED(hr))   <o:p></o:p></P>
<P 
class=MsoNormal>+                                             
{<o:p></o:p></P>
<P 
class=MsoNormal>+                                                             
StringCchPrintfEx(templine,X_LINELEN,NULL,NULL,0,"inner topology 
line");<o:p></o:p></P>
<P 
class=MsoNormal>+                                                             
printCopyError(templine,hr);<o:p></o:p></P>
<P 
class=MsoNormal>+                                             
}<o:p></o:p></P>
<P 
class=MsoNormal>+                                             
<o:p></o:p></P>
<P 
class=MsoNormal>+                                             
hr = HRESULT_CODE(StringCchCopyNExA(type,10,strtok (templine," 
\t"),10,NULL,NULL,0));<o:p></o:p></P>
<P 
class=MsoNormal>+                                             
if (FAILED(hr))   <o:p></o:p></P>
<P 
class=MsoNormal>+                                             
{<o:p></o:p></P>
<P 
class=MsoNormal>+                                                             
StringCchPrintfEx(type,10,NULL,NULL,0,"type");<o:p></o:p></P>
<P 
class=MsoNormal>+                                                             
printCopyError(type,hr);<o:p></o:p></P>
<P 
class=MsoNormal>+                                             
}<o:p></o:p></P>
<P 
class=MsoNormal>+                                             
<o:p></o:p></P>
<P 
class=MsoNormal>+                             
}<o:p></o:p></P>
<P class=MsoNormal>+<o:p></o:p></P>
<P 
class=MsoNormal>+                             
<o:p></o:p></P>
<P 
class=MsoNormal>+                             
if (strstr( line, "Switch" ) == line)<o:p></o:p></P>
<P 
class=MsoNormal>+                             
{                                              
<o:p></o:p></P>
<P 
class=MsoNormal>+                                             
errors += clearErrors(     caInfoGiven ? caInfo : "",  
<o:p></o:p></P>
<P 
class=MsoNormal>+                                                                                                                                             
getLid(line,"port 0 lid "), <o:p></o:p></P>
<P 
class=MsoNormal>+                                                                                                                                             
"255", <o:p></o:p></P>
<P 
class=MsoNormal>+                                                                                                                                             
1 );<o:p></o:p></P>
<P 
class=MsoNormal>+                             
}<o:p></o:p></P>
<P class=MsoNormal>+<o:p></o:p></P>
<P 
class=MsoNormal>+                             
if (*line == '[')<o:p></o:p></P>
<P 
class=MsoNormal>+                             
{ <o:p></o:p></P>
<P 
class=MsoNormal>+                                             
char* port;<o:p></o:p></P>
<P 
class=MsoNormal>+                                             
<o:p></o:p></P>
<P 
class=MsoNormal>+                                             
hr = 
HRESULT_CODE(StringCchCopyNExA(templine,X_LINELEN,line,X_LINELEN,NULL,NULL,0));<o:p></o:p></P>
<P 
class=MsoNormal>+                                             
if (FAILED(hr))   <o:p></o:p></P>
<P 
class=MsoNormal>+                                             
{<o:p></o:p></P>
<P 
class=MsoNormal>+                                                             
StringCchPrintfEx(templine,X_LINELEN,NULL,NULL,0,"inner topology 
line");<o:p></o:p></P>
<P 
class=MsoNormal>+                                                             
printCopyError(templine,hr);<o:p></o:p></P>
<P 
class=MsoNormal>+                                             
}<o:p></o:p></P>
<P 
class=MsoNormal>+                                             
<o:p></o:p></P>
<P 
class=MsoNormal>+                                             
port = strtok (templine,"[]"); //First word is the port in []<o:p></o:p></P>
<P 
class=MsoNormal>+                                             
<o:p></o:p></P>
<P 
class=MsoNormal>+                                             
if (strcmp(type,"Switch") != 0) //Got it from the previous line<o:p></o:p></P>
<P 
class=MsoNormal>+                                             
{<o:p></o:p></P>
<P 
class=MsoNormal>+                                                             
errors += clearErrors(     caInfoGiven ? caInfo : 
"",<o:p></o:p></P>
<P 
class=MsoNormal>+                                                                                                                                                             
getLid(line," lid "),<o:p></o:p></P>
<P 
class=MsoNormal>+                                                                                                                                                             
port,<o:p></o:p></P>
<P 
class=MsoNormal>+                                                                                                                                                             
0 );<o:p></o:p></P>
<P 
class=MsoNormal>+                                             
}<o:p></o:p></P>
<P 
class=MsoNormal>+                             
}<o:p></o:p></P>
<P class=MsoNormal>+<o:p></o:p></P>
<P 
class=MsoNormal>+                             
if (strstr( line, "ib" ) == line)<o:p></o:p></P>
<P 
class=MsoNormal>+                             
{<o:p></o:p></P>
<P 
class=MsoNormal>+                                             
printf("%s\n", line);<o:p></o:p></P>
<P 
class=MsoNormal>+                             
}<o:p></o:p></P>
<P 
class=MsoNormal>+             
}<o:p></o:p></P>
<P 
class=MsoNormal>+                             
<o:p></o:p></P>
<P 
class=MsoNormal>+             
printf ("\n## Summary: %d nodes cleared %d errors\n", nodes, 
errors);<o:p></o:p></P>
<P 
class=MsoNormal>+             
fclose (fp);<o:p></o:p></P>
<P class=MsoNormal>+<o:p></o:p></P>
<P 
class=MsoNormal>+             
//<o:p></o:p></P>
<P 
class=MsoNormal>+             
// If we created our own topology file - we sould delete it<o:p></o:p></P>
<P 
class=MsoNormal>+             
//<o:p></o:p></P>
<P 
class=MsoNormal>+             
if (strstr( topofile, X_TEMPFILE ))<o:p></o:p></P>
<P 
class=MsoNormal>+             
{<o:p></o:p></P>
<P 
class=MsoNormal>+                             
hr = StringCchPrintfEx(  usedCommand,X_LINELEN,NULL,NULL,0, "del %s", 
topofile );<o:p></o:p></P>
<P 
class=MsoNormal>+                             
if (FAILED(hr))   <o:p></o:p></P>
<P 
class=MsoNormal>+                             
{<o:p></o:p></P>
<P 
class=MsoNormal>+                                             
StringCchPrintfEx(usedCommand,X_LINELEN,NULL,NULL,0,"used 
Command");<o:p></o:p></P>
<P 
class=MsoNormal>+                                             
printCopyError(usedCommand,hr);<o:p></o:p></P>
<P 
class=MsoNormal>+                             
}<o:p></o:p></P>
<P 
class=MsoNormal>+                             
<o:p></o:p></P>
<P 
class=MsoNormal>+                             
if (system(usedCommand))<o:p></o:p></P>
<P 
class=MsoNormal>+                             
{<o:p></o:p></P>
<P 
class=MsoNormal>+                                             
printf("Temporary file cleanup failed\n");<o:p></o:p></P>
<P 
class=MsoNormal>+                                             
exit(1);<o:p></o:p></P>
<P 
class=MsoNormal>+                             
}<o:p></o:p></P>
<P 
class=MsoNormal>+             
}<o:p></o:p></P>
<P 
class=MsoNormal>+             
<o:p></o:p></P>
<P 
class=MsoNormal>+             
return 0;<o:p></o:p></P>
<P class=MsoNormal>+}<o:p></o:p></P>
<P class=MsoNormal>+<o:p></o:p></P>
<P class=MsoNormal>+<o:p></o:p></P>
<P class=MsoNormal>+<o:p></o:p></P>
<P class=MsoNormal>+<o:p></o:p></P>
<P class=MsoNormal>Index: 
D:/Windows/MLNX_VPI/tools/infiniband-diags/src/ibclearerrors/ibclearerrors.rc<o:p></o:p></P>
<P 
class=MsoNormal>===================================================================<o:p></o:p></P>
<P class=MsoNormal>--- 
D:/Windows/MLNX_VPI/tools/infiniband-diags/src/ibclearerrors/ibclearerrors.rc      
(revision 0)<o:p></o:p></P>
<P class=MsoNormal>+++ 
D:/Windows/MLNX_VPI/tools/infiniband-diags/src/ibclearerrors/ibclearerrors.rc   
(revision 6180)<o:p></o:p></P>
<P class=MsoNormal>@@ -0,0 +1,47 @@<o:p></o:p></P>
<P class=MsoNormal>+/*<o:p></o:p></P>
<P class=MsoNormal>+ * Copyright (c) 2009 Intel Corporation.  All rights 
reserved.<o:p></o:p></P>
<P class=MsoNormal>+ *<o:p></o:p></P>
<P class=MsoNormal>+ * This software is available to you under the OpenIB.org 
BSD license<o:p></o:p></P>
<P class=MsoNormal>+ * below:<o:p></o:p></P>
<P class=MsoNormal>+ *<o:p></o:p></P>
<P class=MsoNormal>+ *     Redistribution and use in source 
and binary forms, with or<o:p></o:p></P>
<P class=MsoNormal>+ *     without modification, are 
permitted provided that the following<o:p></o:p></P>
<P class=MsoNormal>+ *     conditions are 
met:<o:p></o:p></P>
<P class=MsoNormal>+ *<o:p></o:p></P>
<P class=MsoNormal>+ *      - Redistributions of source 
code must retain the above<o:p></o:p></P>
<P class=MsoNormal>+ *        copyright 
notice, this list of conditions and the following<o:p></o:p></P>
<P class=MsoNormal>+ *        
disclaimer.<o:p></o:p></P>
<P class=MsoNormal>+ *<o:p></o:p></P>
<P class=MsoNormal>+ *      - Redistributions in binary 
form must reproduce the above<o:p></o:p></P>
<P class=MsoNormal>+ *        copyright 
notice, this list of conditions and the following<o:p></o:p></P>
<P class=MsoNormal>+ *        disclaimer in 
the documentation and/or other materials<o:p></o:p></P>
<P class=MsoNormal>+ *        provided with 
the distribution.<o:p></o:p></P>
<P class=MsoNormal>+ *<o:p></o:p></P>
<P class=MsoNormal>+ * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY 
KIND,<o:p></o:p></P>
<P class=MsoNormal>+ * EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE 
WARRANTIES OF<o:p></o:p></P>
<P class=MsoNormal>+ * MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE 
AND<o:p></o:p></P>
<P class=MsoNormal>+ * NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR 
COPYRIGHT HOLDERS<o:p></o:p></P>
<P class=MsoNormal>+ * BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, 
WHETHER IN AN<o:p></o:p></P>
<P class=MsoNormal>+ * ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT 
OF OR IN<o:p></o:p></P>
<P class=MsoNormal>+ * CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS 
IN THE<o:p></o:p></P>
<P class=MsoNormal>+ * SOFTWARE.<o:p></o:p></P>
<P class=MsoNormal>+ *<o:p></o:p></P>
<P class=MsoNormal>+ * $Id$<o:p></o:p></P>
<P class=MsoNormal>+ */<o:p></o:p></P>
<P class=MsoNormal>+<o:p></o:p></P>
<P class=MsoNormal>+<o:p></o:p></P>
<P class=MsoNormal>+#include <oib_ver.h><o:p></o:p></P>
<P class=MsoNormal>+<o:p></o:p></P>
<P class=MsoNormal>+#define 
VER_FILETYPE                                                
VFT_APP<o:p></o:p></P>
<P class=MsoNormal>+#define 
VER_FILESUBTYPE                                        
VFT2_UNKNOWN<o:p></o:p></P>
<P class=MsoNormal>+<o:p></o:p></P>
<P class=MsoNormal>+#ifdef DBG<o:p></o:p></P>
<P class=MsoNormal>+#define VER_FILEDESCRIPTION_STR    
"InfiniBand Fabric Clear Errors(Debug)"<o:p></o:p></P>
<P class=MsoNormal>+#else<o:p></o:p></P>
<P class=MsoNormal>+#define VER_FILEDESCRIPTION_STR    
"InfiniBand Fabric Clear Errors"<o:p></o:p></P>
<P class=MsoNormal>+#endif<o:p></o:p></P>
<P class=MsoNormal>+<o:p></o:p></P>
<P class=MsoNormal>+#define 
VER_INTERNALNAME_STR                      
"ibclearerrors.exe"<o:p></o:p></P>
<P class=MsoNormal>+#define 
VER_ORIGINALFILENAME_STR              
"ibclearerrors.exe"<o:p></o:p></P>
<P class=MsoNormal>+<o:p></o:p></P>
<P class=MsoNormal>+#include <common.ver><o:p></o:p></P>
<P class=MsoNormal>Index: 
D:/Windows/MLNX_VPI/tools/infiniband-diags/src/ibclearerrors/SOURCES<o:p></o:p></P>
<P 
class=MsoNormal>===================================================================<o:p></o:p></P>
<P class=MsoNormal>--- 
D:/Windows/MLNX_VPI/tools/infiniband-diags/src/ibclearerrors/SOURCES  
(revision 0)<o:p></o:p></P>
<P class=MsoNormal>+++ 
D:/Windows/MLNX_VPI/tools/infiniband-diags/src/ibclearerrors/SOURCES               
(revision 6180)<o:p></o:p></P>
<P class=MsoNormal>@@ -0,0 +1,31 @@<o:p></o:p></P>
<P class=MsoNormal>+TARGETNAME = ibclearerrors<o:p></o:p></P>
<P class=MsoNormal>+TARGETPATH = 
..\..\..\..\bin\user\obj$(BUILD_ALT_DIR)<o:p></o:p></P>
<P class=MsoNormal>+TARGETTYPE = PROGRAM<o:p></o:p></P>
<P class=MsoNormal>+<o:p></o:p></P>
<P class=MsoNormal>+UMTYPE = console<o:p></o:p></P>
<P class=MsoNormal>+UMENTRY = main<o:p></o:p></P>
<P class=MsoNormal>+<o:p></o:p></P>
<P class=MsoNormal>+USE_MSVCRT = 1<o:p></o:p></P>
<P class=MsoNormal>+<o:p></o:p></P>
<P class=MsoNormal>+SOURCES = ..\ibclearerrors.c ibclearerrors.rc<o:p></o:p></P>
<P 
class=MsoNormal>+             
<o:p></o:p></P>
<P class=MsoNormal>+INCLUDES = 
..\..\include;..\..\include\windows;\<o:p></o:p></P>
<P 
class=MsoNormal>+                             
   ..\..\..\..\ulp\libibmad\include;\<o:p></o:p></P>
<P 
class=MsoNormal>+                             
   ..\..\..\..\ulp\libibumad\include;\<o:p></o:p></P>
<P 
class=MsoNormal>+                             
   ..\..\..\..\inc;..\..\..\..\inc\user;\<o:p></o:p></P>
<P 
class=MsoNormal>+                             
   ..\..\..\..\inc\user\linux;<o:p></o:p></P>
<P class=MsoNormal>+<o:p></o:p></P>
<P class=MsoNormal>+C_DEFINES = $(C_DEFINES) /DHAVE_CONFIG_H<o:p></o:p></P>
<P class=MsoNormal>+<o:p></o:p></P>
<P class=MsoNormal>+TARGETLIBS = \<o:p></o:p></P>
<P 
class=MsoNormal>+             
$(SDK_LIB_PATH)\kernel32.lib  \<o:p></o:p></P>
<P 
class=MsoNormal>+             
$(SDK_LIB_PATH)\ws2_32.lib                     
\<o:p></o:p></P>
<P class=MsoNormal>+!if $(FREEBUILD)<o:p></o:p></P>
<P 
class=MsoNormal>+             
$(TARGETPATH)\*\libibmad.lib \<o:p></o:p></P>
<P 
class=MsoNormal>+             
$(TARGETPATH)\*\libibumad.lib               
<o:p></o:p></P>
<P class=MsoNormal>+!else<o:p></o:p></P>
<P 
class=MsoNormal>+             
$(TARGETPATH)\*\libibmadd.lib               
\<o:p></o:p></P>
<P 
class=MsoNormal>+             
$(TARGETPATH)\*\libibumadd.lib            
<o:p></o:p></P>
<P class=MsoNormal>+!endif<o:p></o:p></P>
<P class=MsoNormal>+<o:p></o:p></P>
<P class=MsoNormal>+MSC_WARNING_LEVEL = /W3 /WX /wd4007<o:p></o:p></P>
<P class=MsoNormal>Index: 
D:/Windows/MLNX_VPI/tools/infiniband-diags/src/ibclearerrors/makefile<o:p></o:p></P>
<P 
class=MsoNormal>===================================================================<o:p></o:p></P>
<P class=MsoNormal>--- 
D:/Windows/MLNX_VPI/tools/infiniband-diags/src/ibclearerrors/makefile   
(revision 0)<o:p></o:p></P>
<P class=MsoNormal>+++ 
D:/Windows/MLNX_VPI/tools/infiniband-diags/src/ibclearerrors/makefile                
(revision 6180)<o:p></o:p></P>
<P class=MsoNormal>@@ -0,0 +1,7 @@<o:p></o:p></P>
<P class=MsoNormal>+#<o:p></o:p></P>
<P class=MsoNormal>+# DO NOT EDIT THIS FILE!!!  Edit .\sources. if you want 
to add a new source<o:p></o:p></P>
<P class=MsoNormal>+# file to this component.  This file merely indirects 
to the real make file<o:p></o:p></P>
<P class=MsoNormal>+# that is shared by all the driver components of the OpenIB 
Windows project.<o:p></o:p></P>
<P class=MsoNormal>+#<o:p></o:p></P>
<P class=MsoNormal>+<o:p></o:p></P>
<P class=MsoNormal>+!INCLUDE ..\..\..\..\inc\openib.def<o:p></o:p></P>
<P class=MsoNormal>Index: 
D:/Windows/MLNX_VPI/tools/infiniband-diags/src/dirs<o:p></o:p></P>
<P 
class=MsoNormal>===================================================================<o:p></o:p></P>
<P class=MsoNormal>--- 
D:/Windows/MLNX_VPI/tools/infiniband-diags/src/dirs         
(revision 6179)<o:p></o:p></P>
<P class=MsoNormal>+++ 
D:/Windows/MLNX_VPI/tools/infiniband-diags/src/dirs      
(revision 6180)<o:p></o:p></P>
<P class=MsoNormal>@@ -16,4 +16,5 @@<o:p></o:p></P>
<P 
class=MsoNormal>                
sminfo                  
\<o:p></o:p></P>
<P 
class=MsoNormal>                
smpdump                           
\<o:p></o:p></P>
<P 
class=MsoNormal>                
smpquery           
\<o:p></o:p></P>
<P 
class=MsoNormal>-              
vendstat<o:p></o:p></P>
<P class=MsoNormal>\ No newline at end of file<o:p></o:p></P>
<P 
class=MsoNormal>+             
vendstat        \<o:p></o:p></P>
<P class=MsoNormal>+        
ibclearerrors<o:p></o:p></P>
<P class=MsoNormal>\ No newline at end of 
file<o:p></o:p></P></DIV></BODY></HTML>