<!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"><HEAD><TITLE>RE: [ofw] WDK build environment migration thoughts</TITLE>
<META http-equiv=Content-Type content="text/html; charset=us-ascii">
<META content="MSHTML 6.00.2900.3243" name=GENERATOR><!--[if !mso]>
<STYLE>v\:* {
        BEHAVIOR: url(#default#VML)
}
o\:* {
        BEHAVIOR: url(#default#VML)
}
w\:* {
        BEHAVIOR: url(#default#VML)
}
.shape {
        BEHAVIOR: url(#default#VML)
}
</STYLE>
<![endif]-->
<STYLE>@font-face {
        font-family: Tahoma;
}
@page Section1 {size: 8.5in 11.0in; margin: 1.0in 1.25in 1.0in 1.25in; }
P.MsoNormal {
        FONT-SIZE: 12pt; MARGIN: 0in 0in 0pt; FONT-FAMILY: "Times New Roman"
}
LI.MsoNormal {
        FONT-SIZE: 12pt; MARGIN: 0in 0in 0pt; FONT-FAMILY: "Times New Roman"
}
DIV.MsoNormal {
        FONT-SIZE: 12pt; MARGIN: 0in 0in 0pt; FONT-FAMILY: "Times New Roman"
}
A:link {
        COLOR: blue; TEXT-DECORATION: underline
}
SPAN.MsoHyperlink {
        COLOR: blue; TEXT-DECORATION: underline
}
A:visited {
        COLOR: blue; TEXT-DECORATION: underline
}
SPAN.MsoHyperlinkFollowed {
        COLOR: blue; TEXT-DECORATION: underline
}
P {
        FONT-SIZE: 12pt; MARGIN-LEFT: 0in; MARGIN-RIGHT: 0in; FONT-FAMILY: "Times New Roman"; mso-margin-top-alt: auto; mso-margin-bottom-alt: auto
}
SPAN.EmailStyle18 {
        COLOR: navy; FONT-FAMILY: Arial; mso-style-type: personal-reply
}
DIV.Section1 {
        page: Section1
}
</STYLE>
</HEAD>
<BODY lang=EN-US vLink=blue link=blue>
<DIV><SPAN class=329515506-24042008><FONT face=Arial color=#0000ff size=2>Ye, 
you've come accross the known problems.</FONT></SPAN></DIV>
<DIV><SPAN class=329515506-24042008><FONT face=Arial color=#0000ff 
size=2>branches\Connectx doesn't contain Xalex changes for WDK env 
support.</FONT></SPAN></DIV>
<DIV><SPAN class=329515506-24042008><FONT face=Arial color=#0000ff 
size=2>It is to be compiled in WDK 6000 for now.</FONT></SPAN></DIV>
<DIV><SPAN class=329515506-24042008><FONT face=Arial color=#0000ff size=2>Xalex 
will merge his changes into the OFA trunk in a couple of days and then will 
merge branches\ConnectX into it.</FONT></SPAN></DIV><BR>
<BLOCKQUOTE dir=ltr 
style="PADDING-LEFT: 5px; MARGIN-LEFT: 5px; BORDER-LEFT: #0000ff 2px solid; MARGIN-RIGHT: 0px">
  <DIV class=OutlookMessageHeader lang=en-us dir=ltr align=left>
  <HR tabIndex=-1>
  <FONT face=Tahoma size=2><B>From:</B> ofw-bounces@lists.openfabrics.org 
  [mailto:ofw-bounces@lists.openfabrics.org] <B>On Behalf Of </B>James 
  Yang<BR><B>Sent:</B> Thursday, April 24, 2008 4:50 AM<BR><B>To:</B> Alex 
  Naslednikov; Smith, Stan; Ishai Rabinovitz<BR><B>Cc:</B> 
  ofw@lists.openfabrics.org<BR><B>Subject:</B> RE: [ofw] WDK build environment 
  migration thoughts<BR></FONT><BR></DIV>
  <DIV></DIV>
  <DIV class=Section1>
  <P class=MsoNormal><FONT face=Arial color=navy size=2><SPAN 
  style="FONT-SIZE: 10pt; COLOR: navy; FONT-FAMILY: Arial">I did a quick 
  WDK(6001.1800) WS2003 build on </SPAN></FONT><FONT face=Arial color=blue 
  size=2><SPAN 
  style="FONT-SIZE: 10pt; COLOR: blue; FONT-FAMILY: Arial">branches\ConnectX</SPAN></FONT><FONT 
  face=Arial color=navy size=2><SPAN 
  style="FONT-SIZE: 10pt; COLOR: navy; FONT-FAMILY: Arial">  core and hw 
  directory.<o:p></o:p></SPAN></FONT></P>
  <P class=MsoNormal><FONT face=Arial color=navy size=2><SPAN 
  style="FONT-SIZE: 10pt; COLOR: navy; FONT-FAMILY: Arial"><o:p> </o:p></SPAN></FONT></P>
  <P class=MsoNormal><FONT face=Arial color=navy size=2><SPAN 
  style="FONT-SIZE: 10pt; COLOR: navy; FONT-FAMILY: Arial">X86 is broken: 
  <o:p></o:p></SPAN></FONT></P>
  <P class=MsoNormal><FONT face=Arial color=navy size=2><SPAN 
  style="FONT-SIZE: 10pt; COLOR: navy; FONT-FAMILY: Arial"><o:p> </o:p></SPAN></FONT></P>
  <P class=MsoNormal><FONT face=Arial color=navy size=2><SPAN 
  style="FONT-SIZE: 10pt; COLOR: navy; FONT-FAMILY: Arial">errors in directory 
  c:\ib\branchx\core\al\user <o:p></o:p></SPAN></FONT></P>
  <P class=MsoNormal><FONT face=Arial color=navy size=2><SPAN 
  style="FONT-SIZE: 10pt; COLOR: navy; FONT-FAMILY: Arial">c:\ib\branchx\core\al\al_reg_svc.c(164) 
  : error C1001: An internal error has occurred in the 
  compiler.<o:p></o:p></SPAN></FONT></P>
  <P class=MsoNormal><FONT face=Arial color=navy size=2><SPAN 
  style="FONT-SIZE: 10pt; COLOR: navy; FONT-FAMILY: Arial"><o:p> </o:p></SPAN></FONT></P>
  <P class=MsoNormal><FONT face=Arial color=navy size=2><SPAN 
  style="FONT-SIZE: 10pt; COLOR: navy; FONT-FAMILY: Arial"><o:p> </o:p></SPAN></FONT></P>
  <P class=MsoNormal><FONT face=Arial color=navy size=2><SPAN 
  style="FONT-SIZE: 10pt; COLOR: navy; FONT-FAMILY: Arial">X64 is OK with core 
  directory, but cannot complete hw directory build: (mthca seems 
  fine)<o:p></o:p></SPAN></FONT></P>
  <P class=MsoNormal><FONT face=Arial color=navy size=2><SPAN 
  style="FONT-SIZE: 10pt; COLOR: navy; FONT-FAMILY: Arial"><o:p> </o:p></SPAN></FONT></P>
  <P class=MsoNormal><FONT face=Arial color=navy size=2><SPAN 
  style="FONT-SIZE: 10pt; COLOR: navy; FONT-FAMILY: Arial">Compiling resources - 
  mlx4\kernel\bus\bus.rc<o:p></o:p></SPAN></FONT></P>
  <P class=MsoNormal><FONT face=Arial color=navy size=2><SPAN 
  style="FONT-SIZE: 10pt; COLOR: navy; FONT-FAMILY: Arial">errors in directory 
  c:\ib\branchx\hw\mlx4\kernel\bus<o:p></o:p></SPAN></FONT></P>
  <P class=MsoNormal><FONT face=Arial color=navy size=2><SPAN 
  style="FONT-SIZE: 10pt; COLOR: navy; FONT-FAMILY: Arial">c:\ib\branchx\hw\mlx4\kernel\core\ev_log.rc(2) 
  : error RC2135 : file not found:<o:p></o:p></SPAN></FONT></P>
  <P class=MsoNormal><FONT face=Arial color=navy size=2><SPAN 
  style="FONT-SIZE: 10pt; COLOR: navy; FONT-FAMILY: Arial">MSG00001.bin<o:p></o:p></SPAN></FONT></P>
  <P class=MsoNormal><FONT face=Arial color=navy size=2><SPAN 
  style="FONT-SIZE: 10pt; COLOR: navy; FONT-FAMILY: Arial">Compiling - 
  mlx4\kernel\bus\drv.c<o:p></o:p></SPAN></FONT></P>
  <P class=MsoNormal><FONT face=Arial color=navy size=2><SPAN 
  style="FONT-SIZE: 10pt; COLOR: navy; FONT-FAMILY: Arial">Compiling - 
  mlx4\kernel\bus\pci.c<o:p></o:p></SPAN></FONT></P>
  <P class=MsoNormal><FONT face=Arial color=navy size=2><SPAN 
  style="FONT-SIZE: 10pt; COLOR: navy; FONT-FAMILY: Arial">Compiling - 
  mlx4\kernel\bus\pdo.c<o:p></o:p></SPAN></FONT></P>
  <P class=MsoNormal><FONT face=Arial color=navy size=2><SPAN 
  style="FONT-SIZE: 10pt; COLOR: navy; FONT-FAMILY: Arial">Compiling - 
  mlx4\kernel\bus\wmi.c<o:p></o:p></SPAN></FONT></P>
  <P class=MsoNormal><FONT face=Arial color=navy size=2><SPAN 
  style="FONT-SIZE: 10pt; COLOR: navy; FONT-FAMILY: Arial">Linking Executable - 
  c:\ib\branchx\bin\kernel\objchk_wnet_amd64\amd64\mlx4_bus.s<o:p></o:p></SPAN></FONT></P>
  <P class=MsoNormal><FONT face=Arial color=navy size=2><SPAN 
  style="FONT-SIZE: 10pt; COLOR: navy; FONT-FAMILY: Arial">ys<o:p></o:p></SPAN></FONT></P>
  <P class=MsoNormal><FONT face=Arial color=navy size=2><SPAN 
  style="FONT-SIZE: 10pt; COLOR: navy; FONT-FAMILY: Arial">link : error LNK1181: 
  cannot open input file 
  'c:\ib\branchx\hw\mlx4\kernel\bus\o<o:p></o:p></SPAN></FONT></P>
  <P class=MsoNormal><FONT face=Arial color=navy size=2><SPAN 
  style="FONT-SIZE: 10pt; COLOR: navy; FONT-FAMILY: Arial">bjchk_wnet_amd64\amd64\bus.res'<o:p></o:p></SPAN></FONT></P>
  <P class=MsoNormal><FONT face=Arial color=navy size=2><SPAN 
  style="FONT-SIZE: 10pt; COLOR: navy; FONT-FAMILY: Arial"><o:p> </o:p></SPAN></FONT></P>
  <P class=MsoNormal><FONT face=Arial color=navy size=2><SPAN 
  style="FONT-SIZE: 10pt; COLOR: navy; FONT-FAMILY: Arial"><o:p> </o:p></SPAN></FONT></P>
  <P class=MsoNormal><FONT face=Arial color=navy size=2><SPAN 
  style="FONT-SIZE: 10pt; COLOR: navy; FONT-FAMILY: Arial">Thanks,<o:p></o:p></SPAN></FONT></P>
  <P class=MsoNormal><FONT face=Arial color=navy size=2><SPAN 
  style="FONT-SIZE: 10pt; COLOR: navy; FONT-FAMILY: Arial">James<o:p></o:p></SPAN></FONT></P>
  <P class=MsoNormal><FONT face=Arial color=navy size=2><SPAN 
  style="FONT-SIZE: 10pt; COLOR: navy; FONT-FAMILY: Arial"><o:p> </o:p></SPAN></FONT></P>
  <DIV>
  <DIV class=MsoNormal style="TEXT-ALIGN: center" align=center><FONT 
  face="Times New Roman" size=3><SPAN style="FONT-SIZE: 12pt">
  <HR tabIndex=-1 align=center width="100%" SIZE=2>
  </SPAN></FONT></DIV>
  <P class=MsoNormal><B><FONT face=Tahoma size=2><SPAN 
  style="FONT-WEIGHT: bold; FONT-SIZE: 10pt; FONT-FAMILY: Tahoma">From:</SPAN></FONT></B><FONT 
  face=Tahoma size=2><SPAN style="FONT-SIZE: 10pt; FONT-FAMILY: Tahoma"> Alex 
  Naslednikov [mailto:alexn@mellanox.co.il] <BR><B><SPAN 
  style="FONT-WEIGHT: bold">Sent:</SPAN></B> Monday, April 21, 2008 10:15 
  AM<BR><B><SPAN style="FONT-WEIGHT: bold">To:</SPAN></B> Alex Naslednikov; 
  Smith, Stan; Ishai Rabinovitz<BR><B><SPAN 
  style="FONT-WEIGHT: bold">Cc:</SPAN></B> ofw@lists.openfabrics.org<BR><B><SPAN 
  style="FONT-WEIGHT: bold">Subject:</SPAN></B> RE: [ofw] WDK build environment 
  migration thoughts</SPAN></FONT><o:p></o:p></P></DIV>
  <P class=MsoNormal><FONT face="Times New Roman" size=3><SPAN 
  style="FONT-SIZE: 12pt"><o:p> </o:p></SPAN></FONT></P>
  <P><FONT face=Arial size=2><SPAN 
  style="FONT-SIZE: 10pt; FONT-FAMILY: Arial">Hi all,<BR>I would like to repost 
  my previous message, because I haven't received yet your comments.<BR>Our 
  regression seems to be stable, so we are going to commit the change into WinOF 
  trunk the nearest time.<BR>For you convenience, I also provide some typical 
  changes as a patch (attached to this mail). Please, read the explanation below 
  before - it will help you a lot.<BR>Be aware that all the modules not 
  contained in Mellanox WinIB stack (like udapl, vnic) should be also changed 
  according to this methodology.<BR><BR>It is very large change, so I'll 
  appreciate your time and effort while reviewing the methodology and the patch 
  itself.</SPAN></FONT><o:p></o:p></P>
  <P><FONT face=Arial size=2><SPAN 
  style="FONT-SIZE: 10pt; FONT-FAMILY: Arial">Thanks,<BR></SPAN></FONT><BR><B><SPAN 
  style="FONT-WEIGHT: bold">Naslednikov Alexander (a.k.a XaleX)<BR>Windows 
  Team<BR>Mellanox Technologies</SPAN></B><o:p></o:p></P>
  <P class=MsoNormal><FONT face="Times New Roman" size=3><SPAN 
  style="FONT-SIZE: 12pt"><o:p> </o:p></SPAN></FONT></P>
  <P><FONT face=Tahoma size=1><SPAN 
  style="FONT-SIZE: 7.5pt; FONT-FAMILY: Tahoma">_____________________________________________ 
  </SPAN></FONT><o:p></o:p></P>
  <P><B><FONT face=Tahoma size=1><SPAN 
  style="FONT-WEIGHT: bold; FONT-SIZE: 7.5pt; FONT-FAMILY: Tahoma">From: 
   </SPAN></FONT></B> <FONT face=Tahoma size=1><SPAN 
  style="FONT-SIZE: 7.5pt; FONT-FAMILY: Tahoma">Alex Naslednikov  
  </SPAN></FONT><o:p></o:p></P>
  <P><B><FONT face=Tahoma size=1><SPAN 
  style="FONT-WEIGHT: bold; FONT-SIZE: 7.5pt; FONT-FAMILY: Tahoma">Sent:  </SPAN></FONT></B> 
  <FONT face=Tahoma size=1><SPAN 
  style="FONT-SIZE: 7.5pt; FONT-FAMILY: Tahoma">Thursday, April 10, 2008 4:09 
  PM</SPAN></FONT><o:p></o:p></P>
  <P><B><FONT face=Tahoma size=1><SPAN 
  style="FONT-WEIGHT: bold; FONT-SIZE: 7.5pt; FONT-FAMILY: Tahoma">To:    </SPAN></FONT></B> 
  <FONT face=Tahoma size=1><SPAN 
  style="FONT-SIZE: 7.5pt; FONT-FAMILY: Tahoma">'Smith, Stan'; Ishai 
  Rabinovitz</SPAN></FONT><o:p></o:p></P>
  <P><B><FONT face=Tahoma size=1><SPAN 
  style="FONT-WEIGHT: bold; FONT-SIZE: 7.5pt; FONT-FAMILY: Tahoma">Cc:    </SPAN></FONT></B> 
  <FONT face=Tahoma size=1><SPAN 
  style="FONT-SIZE: 7.5pt; FONT-FAMILY: Tahoma">ofw@lists.openfabrics.org</SPAN></FONT><o:p></o:p></P>
  <P><B><FONT face=Tahoma size=1><SPAN 
  style="FONT-WEIGHT: bold; FONT-SIZE: 7.5pt; FONT-FAMILY: Tahoma">Subject:       </SPAN></FONT></B> 
  <FONT face=Tahoma size=1><SPAN 
  style="FONT-SIZE: 7.5pt; FONT-FAMILY: Tahoma">RE: [ofw] WDK build environment 
  migration thoughts</SPAN></FONT><o:p></o:p></P>
  <P><FONT face=Arial size=2><SPAN 
  style="FONT-SIZE: 10pt; FONT-FAMILY: Arial">Hi 
  all,</SPAN></FONT><o:p></o:p></P>
  <P><FONT face=Arial size=2><SPAN 
  style="FONT-SIZE: 10pt; FONT-FAMILY: Arial">It's a good idea to clarify some 
  points before announcing Mellanox patch for WDK porting and __ptr64 
  problems.</SPAN></FONT><o:p></o:p></P>
  <P><FONT face=Arial size=2><SPAN 
  style="FONT-SIZE: 10pt; FONT-FAMILY: Arial">Hope, these explanations will be 
  informative enough and not so long.</SPAN></FONT><o:p></o:p></P>
  <P><B><U><FONT face=Arial size=2><SPAN 
  style="FONT-WEIGHT: bold; FONT-SIZE: 10pt; FONT-FAMILY: Arial">1. __ptr64 
  problem</SPAN></FONT></U></B><o:p></o:p></P>
  <P><FONT face=Arial size=2><SPAN 
  style="FONT-SIZE: 10pt; FONT-FAMILY: Arial">Briefly speaking, this problem 
  arises when copying 32bit len pointer into 64bit len pointer. In this 
  case,</SPAN></FONT><U> </U><U><FONT face=Arial size=2><SPAN 
  style="FONT-SIZE: 10pt; FONT-FAMILY: Arial">signed pointer 
  extension</SPAN></FONT></U> <FONT face=Arial size=2><SPAN 
  style="FONT-SIZE: 10pt; FONT-FAMILY: Arial">will take 
  place.</SPAN></FONT><o:p></o:p></P>
  <P><FONT face=Arial size=2><SPAN 
  style="FONT-SIZE: 10pt; FONT-FAMILY: Arial">How it's applicable to WinOF 
  ?  A lot of pointer were declared to be __ptr64 (i.e., to be always 
  "long", even in 32bit kernel systems), that's to preserve on unique size of 
  structs used in IOCTL calls.  The main problem it will cause is between 
  32bit user applications and 64bit kernel 
  application.</SPAN></FONT><o:p></o:p></P>
  <P><FONT face=Arial size=2><SPAN 
  style="FONT-SIZE: 10pt; FONT-FAMILY: Arial">When user code do operation like 
  </SPAN></FONT><o:p></o:p></P>
  <P><FONT face=Arial size=2><SPAN 
  style="FONT-SIZE: 10pt; FONT-FAMILY: Arial">s_ptr = 
  &my_struct;</SPAN></FONT><o:p></o:p></P>
  <P><FONT face=Arial size=2><SPAN 
  style="FONT-SIZE: 10pt; FONT-FAMILY: Arial">my_type* __ptr64 ptr = 
  s_ptr;</SPAN></FONT><o:p></o:p></P>
  <P><FONT face=Arial size=2><SPAN 
  style="FONT-SIZE: 10pt; FONT-FAMILY: Arial">Than kernel will receive ptr with 
  invalid upper bits data (4 bytes FF).</SPAN></FONT><o:p></o:p></P>
  <P><FONT face=Arial size=2><SPAN 
  style="FONT-SIZE: 10pt; FONT-FAMILY: Arial">To avoid signed pointer extension, 
  PtrToPtr64() function should be used.</SPAN></FONT><o:p></o:p></P>
  <P><FONT face=Arial size=2><SPAN 
  style="FONT-SIZE: 10pt; FONT-FAMILY: Arial">Also, I found some other places 
  where dangerous signed pointer extension took place, even on 32bit 
  kernel.</SPAN></FONT><o:p></o:p></P>
  <P><FONT face=Arial size=2><SPAN 
  style="FONT-SIZE: 10pt; FONT-FAMILY: Arial">Yet another problem that arises 
  with __ptr64 attribute is internal compiler error (C1001)  in WDK when 
  using __ptr64 pointer to function (callback)</SPAN></FONT><o:p></o:p></P>
  <P><FONT face=Arial size=2><SPAN 
  style="FONT-SIZE: 10pt; FONT-FAMILY: Arial">This problem was described in ofw 
  discussion, you can see also :</SPAN></FONT><o:p></o:p></P>
  <P><FONT face="Times New Roman" size=3><SPAN style="FONT-SIZE: 12pt"><A 
  href="http://blogs.msdn.com/texblog/archive/2005/10/31/487436.aspx"><FONT 
  face=Arial size=2><SPAN 
  style="FONT-SIZE: 10pt; FONT-FAMILY: Arial">http://blogs.msdn.com/texblog/archive/2005/10/31/487436.aspx</SPAN></FONT></A><o:p></o:p></SPAN></FONT></P>
  <P><FONT face="Times New Roman" size=3><SPAN style="FONT-SIZE: 12pt"><A 
  href="http://lists.openfabrics.org/pipermail/ofw/2007-July/001613.html"><FONT 
  face=Arial size=2><SPAN 
  style="FONT-SIZE: 10pt; FONT-FAMILY: Arial">http://lists.openfabrics.org/pipermail/ofw/2007-July/001613.html</SPAN></FONT></A></SPAN></FONT><FONT 
  face=Arial size=2><SPAN style="FONT-SIZE: 10pt; FONT-FAMILY: Arial"> (posted 
  by Jan from OFW)</SPAN></FONT><o:p></o:p></P>
  <P><FONT face=Arial size=2><SPAN 
  style="FONT-SIZE: 10pt; FONT-FAMILY: Arial">Our 
  solution:</SPAN></FONT><o:p></o:p></P>
  <P><FONT face=Arial size=2><SPAN 
  style="FONT-SIZE: 10pt; FONT-FAMILY: Arial">1. Initially, we decided to remove 
  all __ptr64 attributes except those ones inside IOCTL structures. After, put 
  PtrToPtr64() conversion on every assignment to long 
  pointer.</SPAN></FONT><o:p></o:p></P>
  <P><FONT face=Arial size=2><SPAN 
  style="FONT-SIZE: 10pt; FONT-FAMILY: Arial">(like my_type* __ptr64 ptr = 
  PtrToPtr64(s_ptr);  )</SPAN></FONT><o:p></o:p></P>
  <P><FONT face=Arial size=2><SPAN 
  style="FONT-SIZE: 10pt; FONT-FAMILY: Arial">During this solution, we changed a 
  huge amount of code, so patch became unreadable. And it was difficult to 
  validate that all long pointer (with __ptr64 attribute) were used in a proper 
  manner</SPAN></FONT><o:p></o:p></P>
  <P><FONT face=Arial size=2><SPAN 
  style="FONT-SIZE: 10pt; FONT-FAMILY: Arial">2. So, we decided about another 
  solution:</SPAN></FONT><o:p></o:p></P>
  <P><FONT face=Arial size=2><SPAN 
  style="FONT-SIZE: 10pt; FONT-FAMILY: Arial"> All __ptr64 occurrences were 
  replaced by either:</SPAN></FONT><o:p></o:p></P>
  <P><FONT face=Arial size=2><SPAN 
  style="FONT-SIZE: 10pt; FONT-FAMILY: Arial"> i) TO_LONG_PTR(type, field) 
  macro, when occurred inside structure</SPAN></FONT><o:p></o:p></P>
  <P><FONT face=Arial size=2><SPAN 
  style="FONT-SIZE: 10pt; FONT-FAMILY: Arial">ii) VOID_PTR64 macro otherwise 
  (defined as void macro)</SPAN></FONT><o:p></o:p></P>
  <P><FONT face=Arial size=2><SPAN 
  style="FONT-SIZE: 10pt; FONT-FAMILY: Arial">#define CONCAT(str1, str2) 
  str1##str2</SPAN></FONT><o:p></o:p></P>
  <P><FONT face=Arial size=2><SPAN 
  style="FONT-SIZE: 10pt; FONT-FAMILY: Arial">#define 
  TO_LONG_PTR(type,member_name) \</SPAN></FONT><o:p></o:p></P>
  <P><FONT face=Arial size=2><SPAN 
  style="FONT-SIZE: 10pt; FONT-FAMILY: Arial">    union { type 
  member_name;  uint64_t CONCAT(member_name,_padding) ; 
  }</SPAN></FONT><o:p></o:p></P>
  <P><FONT face=Arial size=2><SPAN 
  style="FONT-SIZE: 10pt; FONT-FAMILY: Arial">Thus, we can both preserve on a 
  uniform shapes of structs in user and kernel and to avoid unsafe pointer 
  arithmetic !</SPAN></FONT><o:p></o:p></P>
  <P><FONT face=Arial size=2><SPAN 
  style="FONT-SIZE: 10pt; FONT-FAMILY: Arial">The patch now is much more 
  readable, but it sill consist of thousands lines.</SPAN></FONT><o:p></o:p></P>
  <P><B><U><FONT face=Arial size=2><SPAN 
  style="FONT-WEIGHT: bold; FONT-SIZE: 10pt; FONT-FAMILY: Arial">2. Migration to 
  WDK</SPAN></FONT></U></B><o:p></o:p></P>
  <P><FONT face=Arial size=2><SPAN 
  style="FONT-SIZE: 10pt; FONT-FAMILY: Arial">Main issue here was to preserve on 
  backward compatibility with DDK</SPAN></FONT><o:p></o:p></P>
  <P><FONT face=Arial size=2><SPAN 
  style="FONT-SIZE: 10pt; FONT-FAMILY: Arial">We were able to compile our stack 
  with WDK, while the main problems we found were :</SPAN></FONT><o:p></o:p></P>
  <P><FONT face=Arial size=2><SPAN 
  style="FONT-SIZE: 10pt; FONT-FAMILY: Arial">1. WDK uses newer version of SDK 
  (SDK Vista). So, when using 2 or more versions of SDK on the same build 
  machine, one has to update </SPAN></FONT><o:p></o:p></P>
  <P><FONT face=Arial size=2><SPAN 
  style="FONT-SIZE: 10pt; FONT-FAMILY: Arial">PLATFORM_SDK_PATH variable to 
  point on the proper version of SDK (for example, 
  PLATFORM_SDK_PATH=%sysdrive%:\PROGRA~1\MI2578~1\windows\v6.1)</SPAN></FONT><o:p></o:p></P>
  <P><FONT face=Arial size=2><SPAN 
  style="FONT-SIZE: 10pt; FONT-FAMILY: Arial">2.verify.src script in WDK (new 
  add-on) checks if your SOURCES file is in appropriate 
  format.</SPAN></FONT><o:p></o:p></P>
  <P><FONT face=Arial size=2><SPAN 
  style="FONT-SIZE: 10pt; FONT-FAMILY: Arial">For example, you can't set 
  implicitly path to system .dll in TARGETLIBS, but to use 
  USE_<MODULE_NAME> =1 macro</SPAN></FONT><o:p></o:p></P>
  <P><FONT face=Arial size=2><SPAN 
  style="FONT-SIZE: 10pt; FONT-FAMILY: Arial">Example:</SPAN></FONT><o:p></o:p></P>
  <P><FONT face=Arial size=2><SPAN 
  style="FONT-SIZE: 10pt; FONT-FAMILY: Arial">Old code : 
  </SPAN></FONT><o:p></o:p></P>
  <P><FONT face=Arial size=2><SPAN 
  style="FONT-SIZE: 10pt; FONT-FAMILY: Arial"> ....</SPAN></FONT><o:p></o:p></P>
  <P><FONT face=Arial size=2><SPAN 
  style="FONT-SIZE: 10pt; FONT-FAMILY: Arial">TARGETLIBS= 
  \</SPAN></FONT><o:p></o:p></P>
  <P><FONT face=Arial size=2><SPAN 
  style="FONT-SIZE: 10pt; FONT-FAMILY: Arial">   
  $(CRT_LIB_PATH)\msvcprt.lib\</SPAN></FONT><o:p></o:p></P>
  <P><FONT face=Arial size=2><SPAN 
  style="FONT-SIZE: 10pt; FONT-FAMILY: Arial">   
  $(SDK_LIB_PATH)\Ws2_32.lib\</SPAN></FONT><o:p></o:p></P>
  <P><FONT face=Arial size=2><SPAN 
  style="FONT-SIZE: 10pt; FONT-FAMILY: Arial">   
  $(TARGETPATH)\*\mtcr.lib</SPAN></FONT><o:p></o:p></P>
  <P><FONT face=Arial size=2><SPAN 
  style="FONT-SIZE: 10pt; FONT-FAMILY: Arial"> </SPAN></FONT><o:p></o:p></P>
  <P><FONT face=Arial size=2><SPAN 
  style="FONT-SIZE: 10pt; FONT-FAMILY: Arial">New code 
  :</SPAN></FONT><o:p></o:p></P>
  <P><FONT face=Arial size=2><SPAN 
  style="FONT-SIZE: 10pt; FONT-FAMILY: Arial">USE_MSVCRT=1</SPAN></FONT><o:p></o:p></P>
  <P><FONT face=Arial size=2><SPAN 
  style="FONT-SIZE: 10pt; FONT-FAMILY: Arial">USE_NTDLL=1</SPAN></FONT><o:p></o:p></P>
  <P><FONT face=Arial size=2><SPAN 
  style="FONT-SIZE: 10pt; FONT-FAMILY: Arial"> </SPAN></FONT><o:p></o:p></P>
  <P><FONT face=Arial size=2><SPAN 
  style="FONT-SIZE: 10pt; FONT-FAMILY: Arial">TARGETLIBS= 
  \</SPAN></FONT><o:p></o:p></P>
  <P><FONT face=Arial size=2><SPAN 
  style="FONT-SIZE: 10pt; FONT-FAMILY: Arial">   
  $(SDK_LIB_PATH)\Ws2_32.lib\</SPAN></FONT><o:p></o:p></P>
  <P><FONT face=Arial size=2><SPAN 
  style="FONT-SIZE: 10pt; FONT-FAMILY: Arial">   
  $(TARGETPATH)\*\mtcr.lib</SPAN></FONT><o:p></o:p></P>
  <P><FONT face=Arial size=2><SPAN 
  style="FONT-SIZE: 10pt; FONT-FAMILY: Arial">3. Some other problems, like 
  mulitple includes error in .rc files, or problem with substituing more than 
  one symbol constant into string in Makefiles (some version of 
  WDK)</SPAN></FONT><o:p></o:p></P>
  <P class=MsoNormal><FONT face="Times New Roman" size=3><SPAN 
  style="FONT-SIZE: 12pt"><o:p> </o:p></SPAN></FONT></P>
  <P><FONT face=Arial size=2><SPAN 
  style="FONT-SIZE: 10pt; FONT-FAMILY: Arial">Currently, we continue testing and 
  will advertise these patches right after the testing will 
  finish</SPAN></FONT><o:p></o:p></P>
  <P><B><FONT face=Arial size=2><SPAN 
  style="FONT-WEIGHT: bold; FONT-SIZE: 10pt; FONT-FAMILY: Arial">Naslednikov 
  Alexander (a.k.a XaleX)</SPAN></FONT></B><o:p></o:p></P>
  <P><B><FONT face=Arial size=2><SPAN 
  style="FONT-WEIGHT: bold; FONT-SIZE: 10pt; FONT-FAMILY: Arial">Windows 
  Team</SPAN></FONT></B><o:p></o:p></P>
  <P><B><FONT face=Arial size=2><SPAN 
  style="FONT-WEIGHT: bold; FONT-SIZE: 10pt; FONT-FAMILY: Arial">Mellanox 
  Technologies</SPAN></FONT></B> <o:p></o:p></P>
  <P class=MsoNormal><FONT face="Times New Roman" size=3><SPAN 
  style="FONT-SIZE: 12pt"><o:p> </o:p></SPAN></FONT></P>
  <P><FONT face=Arial size=2><SPAN 
  style="FONT-SIZE: 10pt; FONT-FAMILY: Arial">-----Original 
  Message-----</SPAN></FONT><o:p></o:p></P>
  <P><FONT face=Arial size=2><SPAN 
  style="FONT-SIZE: 10pt; FONT-FAMILY: Arial">From: 
  ofw-bounces@lists.openfabrics.org [</SPAN></FONT><A 
  href="mailto:ofw-bounces@lists.openfabrics.org"><FONT face=Arial size=2><SPAN 
  style="FONT-SIZE: 10pt; FONT-FAMILY: Arial">mailto:ofw-bounces@lists.openfabrics.org</SPAN></FONT></A><FONT 
  face=Arial size=2><SPAN style="FONT-SIZE: 10pt; FONT-FAMILY: Arial">] On 
  Behalf Of Smith, Stan</SPAN></FONT><o:p></o:p></P>
  <P><FONT face=Arial size=2><SPAN 
  style="FONT-SIZE: 10pt; FONT-FAMILY: Arial">Sent: Tuesday, April 08, 2008 4:10 
  PM</SPAN></FONT><o:p></o:p></P>
  <P><FONT face=Arial size=2><SPAN 
  style="FONT-SIZE: 10pt; FONT-FAMILY: Arial">To: Ishai 
  Rabinovitz</SPAN></FONT><o:p></o:p></P>
  <P><FONT face=Arial size=2><SPAN 
  style="FONT-SIZE: 10pt; FONT-FAMILY: Arial">Cc: 
  ofw@lists.openfabrics.org</SPAN></FONT><o:p></o:p></P>
  <P><FONT face=Arial size=2><SPAN 
  style="FONT-SIZE: 10pt; FONT-FAMILY: Arial">Subject: [ofw] WDK build 
  environment migration thoughts</SPAN></FONT><o:p></o:p></P>
  <P><FONT face=Arial size=2><SPAN 
  style="FONT-SIZE: 10pt; FONT-FAMILY: Arial">Hello,</SPAN></FONT><o:p></o:p></P>
  <P><FONT face=Arial size=2><SPAN 
  style="FONT-SIZE: 10pt; FONT-FAMILY: Arial">  I strongly believe it would 
  help the WinOF community in transitioning to the WDK build environment if the 
  connectX branch</SPAN></FONT><o:p></o:p></P>
  <P><FONT face=Arial size=2><SPAN 
  style="FONT-SIZE: 10pt; FONT-FAMILY: Arial">(svn:gen1\branches\ConnectX) was 
  used as a WDK build environment staging grounds prior to merging the WDK 
  modifications into the mainline trunk.</SPAN></FONT><o:p></o:p></P>
  <P><FONT face=Arial size=2><SPAN 
  style="FONT-SIZE: 10pt; FONT-FAMILY: Arial">This has been talked about before 
  although it still (as of last Friday) does not build using the latest WDK 
  version.</SPAN></FONT><o:p></o:p></P>
  <P><FONT face=Arial size=2><SPAN 
  style="FONT-SIZE: 10pt; FONT-FAMILY: Arial"> </SPAN></FONT><o:p></o:p></P>
  <P><FONT face=Arial size=2><SPAN 
  style="FONT-SIZE: 10pt; FONT-FAMILY: Arial">One week prior to merging the WDK 
  fixes into the mainline trunk, if you were to push all the WDK fixes into the 
  ConnectX branch and then advertise on the ofw mailing list the availability of 
  a WDK build branch along with</SPAN></FONT><o:p></o:p></P>
  <P><FONT face=Arial size=2><SPAN 
  style="FONT-SIZE: 10pt; FONT-FAMILY: Arial">  1) how to build in the WDK 
  environment,</SPAN></FONT><o:p></o:p></P>
  <P><FONT face=Arial size=2><SPAN 
  style="FONT-SIZE: 10pt; FONT-FAMILY: Arial">     which 
  version of the WDK is required + a URL link where to get the 
  WDK.</SPAN></FONT><o:p></o:p></P>
  <P><FONT face=Arial size=2><SPAN 
  style="FONT-SIZE: 10pt; FONT-FAMILY: Arial">  2) An explanation of why 
  and how the __ptr64 attributes were removed along with 
  how</SPAN></FONT><o:p></o:p></P>
  <P><FONT face=Arial size=2><SPAN 
  style="FONT-SIZE: 10pt; FONT-FAMILY: Arial">     others 
  should correct their codes containing __ptr64 
  attributes.</SPAN></FONT><o:p></o:p></P>
  <P><FONT face=Arial size=2><SPAN 
  style="FONT-SIZE: 10pt; FONT-FAMILY: Arial">  3) updates to the WinOF 
  wiki page describing how to build in the WDK env.</SPAN></FONT><o:p></o:p></P>
  <P><FONT face=Arial size=2><SPAN 
  style="FONT-SIZE: 10pt; FONT-FAMILY: Arial">Let this branch exist for one 
  week, receiving feedback from the list and then merge into the mainline 
  trunk.</SPAN></FONT><o:p></o:p></P>
  <P><FONT face=Arial size=2><SPAN 
  style="FONT-SIZE: 10pt; FONT-FAMILY: Arial">Using this approach is certainly 
  community friendly and may prevent developer 
  surprises.</SPAN></FONT><o:p></o:p></P>
  <P><FONT face=Arial size=2><SPAN 
  style="FONT-SIZE: 10pt; FONT-FAMILY: Arial">ConnectX branch availability dates 
  plus when the actual WDK fixes would be merged into the mainline trunk would 
  be published beforehand.</SPAN></FONT><o:p></o:p></P>
  <P class=MsoNormal><FONT face="Times New Roman" size=3><SPAN 
  style="FONT-SIZE: 12pt"><o:p> </o:p></SPAN></FONT></P>
  <P><FONT face=Arial size=2><SPAN 
  style="FONT-SIZE: 10pt; FONT-FAMILY: Arial">Thanks for your 
  consideration,</SPAN></FONT><o:p></o:p></P>
  <P><FONT face=Arial size=2><SPAN 
  style="FONT-SIZE: 10pt; FONT-FAMILY: Arial">Stan.</SPAN></FONT><o:p></o:p></P>
  <P class=MsoNormal style="MARGIN-BOTTOM: 12pt"><FONT face="Times New Roman" 
  size=3><SPAN style="FONT-SIZE: 12pt"><o:p> </o:p></SPAN></FONT></P>
  <P><FONT face=Arial size=2><SPAN 
  style="FONT-SIZE: 10pt; FONT-FAMILY: Arial">_______________________________________________</SPAN></FONT><o:p></o:p></P>
  <P><FONT face=Arial size=2><SPAN 
  style="FONT-SIZE: 10pt; FONT-FAMILY: Arial">ofw mailing 
  list</SPAN></FONT><o:p></o:p></P>
  <P><FONT face=Arial size=2><SPAN 
  style="FONT-SIZE: 10pt; FONT-FAMILY: Arial">ofw@lists.openfabrics.org</SPAN></FONT><o:p></o:p></P>
  <P><FONT face="Times New Roman" size=3><SPAN style="FONT-SIZE: 12pt"><A 
  href="http://lists.openfabrics.org/cgi-bin/mailman/listinfo/ofw"><FONT 
  face=Arial size=2><SPAN 
  style="FONT-SIZE: 10pt; FONT-FAMILY: Arial">http://lists.openfabrics.org/cgi-bin/mailman/listinfo/ofw</SPAN></FONT></A><o:p></o:p></SPAN></FONT></P></DIV></BLOCKQUOTE></BODY></HTML>